Detail Maps and Basic Instanced Rocks

Hey all,

We've recently done some testing involving the use of two normal maps on objects, one to give an objects overall shape and form while the other gives a tiled detail map. To put it simply, we use two UV channels -- the first is a tiled UV map used for the diffuse and normal map for the material (ex: rock, sand, etc) and the second is a UV map with unique UV space for the normal map baked from a high res source to give the object's shape. This will give an object a non-tiled look from long and moderate distances but will give a very detailed look when up close due to the tiling of the material map.

We've had this idea floating around the office for quite a few months now. The basic idea is simple, but the implementation hit a few snags. Using two tangent space normal maps would cause additional tangent information stored in the vertex stream. Baking down both the detail map and shape normal map into a single tangent space normal map would require a large resolution texture (1024 or larger).

The solution we've chosen was using object space normal maps for the object form. This made our shader heavier, but it seemed the lesser of the three evils especially with a lot of objects in the scene at once since having a lot of vertex data or extremely large maps could cause much greater performance issues.

Here's a step by step example of what we're going for..

1. This is the basic low-poly object without any texture maps applied. Not too pretty, eh? It's a about 1.4k polygons for reference sake.

2. This is the low-poly with the object space normal map applied. It was created from a high-poly to low-poly bakedown.

3. This is our object with both the object space normal map and now the tangent space normal map applied to help define the material's detail. Notice how it's much more high frequency in detail.

4. As you can see the ambient occlusion map being applied here really brings depth to the rock. For more on creating ambient occlusion maps, click here.

5. Here's the final texture, the diffuse map. It gives our rock the color variation and any non-lighting oriented detail.

These are just some of the things we're working on here. I'd love to see what you guys are working on!


Posted 10-09-2009 2:24 AM by Alex "Turbosmooth Operator"

Comments

shinkenshin wrote re: Detail Maps and Basic Instanced Rocks
on 10-09-2009 7:35 AM

Cool!! ...Very interesting work!

Nelxon wrote re: Detail Maps and Basic Instanced Rocks
on 10-14-2009 10:17 AM

That's really nice, I would love to see move examples like this.

Alex "Turbosmooth Operator" wrote re: Detail Maps and Basic Instanced Rocks
on 10-15-2009 5:43 PM

Thanks guys!

Any ideas or suggestions of what you'd like to see, Nelson?

Nelxon wrote re: Detail Maps and Basic Instanced Rocks
on 10-16-2009 8:17 AM

Examples with decals would be awesome, maybe something like bullet holes in a wall. Also How different light set ups can effect the overall feel/mood of an environment.

Keep up the great work.

Tom wrote re: Detail Maps and Basic Instanced Rocks
on 12-05-2009 5:13 AM

Great work!

(Will this ever turn into a downloadable example for users?)

If one told me the last shot came from Unreal 3.0, I'd believe him :) Looks really HQ. Just wondering How 'expensive' these type of techniques are when using it a lot in a scene?

Alex "Turbosmooth Operator" wrote re: Detail Maps and Basic Instanced Rocks
on 12-05-2009 7:42 PM

Hey Tom!

I'll definitely talk to John about a possible release of an example using these methods. This was originally nothing more than a proof-of-concept as we couldn't determine if a high resolution tangent normal map's performance hit would be offset by the shader. It was a concept being used in a currently WIP example.



Please login to post comments.