Tessellation why use a normalmap anymore?

Started by
5 comments, last by davepermen 13 years, 3 months ago
I have to ask why would you want to use a normalmap anymore if you have Tessellation available to you to make a very dense mesh and just use per-vertex lighting? I am guessing normalmap method would be faster, but wouldn't the per-vertex have better IQ?

I ask as I have no idea, just speculation on my part!

Thanks!

image
Advertisement
Well, tessellation still has a high cost, and you can't afford to tessellate every single object in a scene. Tessellation is not the be-all end-all to 3D graphics. It's usefulness is actually relatively limited to certain situations.
Someday you'll be right, normal maps will be a thing of the past, but for now we have to worry about things like availability and performance (like you also said). Not all hardware supports tessellation and performing tessellation isn't cheap. Normal maps are almost considered trivial these days, but I can imagine this situation being reversed some day because tessellation CAN reduce memory bandwidth.
You'll still need some sort of map to generate the tessellation from, unless all what you're doing is making a model smoother/rounder, which isn't the main purpose of a normal map. So in the end, tessellation is just a new way of displaying a "normal" map (actually, a displacement map) in a volumetric way.

Also, per-vertex lighting will not look better (unless *all* triangles in the scene are small enough to occupy a single screen pixel each), because vertex lighting calculate the final light value at the vertex and interpolates that value across the flat triangle. Per pixel lighting, even without a normal map, interpolates the vertex normals across the triangle and calculate the light value at each pixel.

Even a flat plane would need dozens of millions of triangles to correctly display a specular reflection.
Detail tesselation only generate more triangles as you move closer. It saves memory and make smoother steps between low and high detail levels for the items that can't be divided into separate parts. Using detail tesselation on flat walls or small dynamic items only takes more performance to do less than deep bump mapping and multi resolution items.
One big problem about tesselation is that it creates small triangles.

Many small triangles mean many edge fragments, which adds pressure to pixel shaders and blending stage.
Quote:Original post by samoth
One big problem about tesselation is that it creates small triangles.

Many small triangles mean many edge fragments, which adds pressure to pixel shaders and blending stage.


It also means many more verts, too.
Yes, correct. But transforming a few hundred thousand (or a million or two) vertices extra is probably not as much of a problem as shading and blending a significant proportion of the pixels (maybe something like 20-30%) twice or thrice needlessly. Pixel shaders are usually not computionally cheap and usually involve several texture lookups too, and blending can become one huge bottleneck.
texture maps can be filtered very well, resulting in a high quality low flickering image. antialiasing of subpixel or few-pixel triangles is much more work, and normally much lower in quality.

the result: a normalmap looks different even if the geometry would be identical. that difference can be very pleasing to the eye (i prefer it). and, it's still much cheaper to render.
If that's not the help you're after then you're going to have to explain the problem better than what you have. - joanusdmentia

My Page davepermen.net | My Music on Bandcamp and on Soundcloud

This topic is closed to new replies.

Advertisement