authoring of procedural rocks in the blacksmith realtime short
TRANSCRIPT
Authoring of procedural environments in The Blacksmith real time short
Veselin EfremovUnity Technologies
About...
● Veselin Efremov● “The Blacksmith”
real time short
This talk...
● Overview○ common approaches for environment authoring in
games○ available tools
● Objective● The method we used: pipeline description
○ A: High quality unique objects○ B: Quick variation for backdrop objects
● Applications and opportunities
Overview
Common approaches in current gamesCan we go procedural?
Overview
Common approaches in current games
● current state (summer 2014)● previous generation games
Overview
Common approaches in current games
● manually sculpted● photogrammetry
Overview
Common approaches in current games
● manually sculpted● photogrammetry
Overview
Common approaches in current games
● photogrammetry○ hard to do properly, especially bigger cliffs○ limited man power in production team - 1 artist○ needs scouting for suitable real-world objects○ often soft edges on big objects
Overview
State of procedural environment assetsWe looked at:
● Terragen● Vue
Overview
State of procedural environment assets
We looked at some Terragen and Vue user galleries
Objective
To author rock formations which are:
● natural looking● as detailed as our budget allows (2048; 4096
textures)● not time consuming to make. Not a modeler!
Pipeline
Use-case:
A: High quality unique objectsB: Variation in backdrop objects
Pipeline
Unique objects
● A procedural generation tool to create the hi-poly object ● Mesh exported and cleaned up● Automatically optimised and auto-unwrapped
Pipeline
Unique objects
● Projection of Normal map, AO map● Low poly mesh, normal map and AO map to dDo → a
base set of textures● Substance Painter – particle brushes for adding specific
features in the texture (e.g. leaks)
Pipeline
Unique objects
● A terrain generation software to author the object● Mesh exported and cleaned up● Automatically optimised and auto-unwrapped
PipelineTerragen
Martin Huisman
http://www.cgscenery.com/
Pipeline
Unique objects
● A procedural generation tool to create the hi-poly object ● Mesh exported and cleaned up in MeshLab (free tool)● Automatically optimised and auto-unwrapped
Pipeline
Unique objects
● A procedural generation tool to create the hi-poly object ● Mesh exported and cleaned up● Automatically optimised and auto-unwrapped in ZBrushIntermediate optimization step in MeshLab if the polycount is too great
Pipeline
Unique objects
● Projection of Normal map, AO map in xNormal● Low poly mesh, normal map and AO map to dDo → a
base set of textures● Substance Painter – particle brushes for adding specific
features in the texture (e.g. leaks)
PipelineProblem
Can’t export a texture from terragen
PipelineProblem
Can’t export a texture from terragenWe have a very dense mesh -> maybe vertex colors will do?
Pipeline
Unique objects
● Projection of Normal map, AO map in xNormal● Low poly mesh, normal map and AO map to dDo →
albedo texture● Substance Painter – particle brushes for adding specific
features in the texture (e.g. leaks)
Pipeline
Unique objects
● Projection of Normal map, AO map in xNormal● Low poly mesh, normal map and AO map to dDo → a
base set of textures● Substance Painter – particle brushes for adding specific
features in the texture (e.g. leaks)
Pipeline
First test
one continuous canyon segment
tons of problems
still has potential
Pipeline
After some experiments...
one rock wall
very promising
Add image
Pipeline
After some experiments...
single object instanced, scaled, rotated, squashed
Pipeline
After some experiments...
rock slate for the shore
Nuisances
OBJ takes forever to save and load
Terragen -> PLYMeshLab -> OBJ3DS Max -> FBX
PipelineQuick and easy custom backdrop objects
PipelineUse-case B:We create a generic, reusable set of textures (albedo, specular, smoothness, normal and occlusion maps), and apply it to a large variety of in-game assets.
Pipeline1. Several 16bit height maps are exported from Terragen
and made tileable (Photoshop)2. A basic shape is created in 3DS Max and is tessellated.3. The height map is used to displace it. Simple planar
mapping is applied.4. Automatic optimization is used to create the final low
poly mesh.
Pipeline5. The normals from the original (smooth) mesh are
copied.6. A shader for procedurally mixing a second set of tileable
textures is applied to add variety (snow, moss, sand, dust, etc.)
7. Vertex alpha and colors are used for manual per instance control for additional color variation.
Problem:
Since it’s displaced from a height map, there are stretches
Problem:
Wasn’t really a problem in our case
Maybe it’s worth exploring using vector displacement instead of height in the future
Problem:
All the shapes shading info comes from the normal map The normal map is projected from a plane
How do we make it work for any geometry?
Solution:
Project the normals from the original mesh, before it was displaced
Used Noors Normal Thiefhttp://www.scriptspot.com/3ds-max/scripts/noors-normal-thief
To recap:
Application● various environments
○ canyons○ rocky deserts○ caves○ icebergs○ …
● teams of any size○ cost-efficient, fast, and high quality
Ideas to exploreIf we only had more time
● Adding details like cliffs on top of heightmap-based terrains
● Clouds - render elements
Ideas to explore● Adding details like cliffs on top of heightmap-based
terrains● Clouds - render elements
Overview
Procedural clouds
Terragen and Vue user galleries
Overview
Procedural clouds
We can export a lot of elements
Thank you