Sign in to follow this  
noatom

Why to we need per vertex tangent?(normal mapping)

Recommended Posts

I just started learning about normal mapping and I can't understand why do we need tangents for every vertex?

So in the plane of a triangle we have the texture space or tangent space.Where we can move the texture in all directions,rotate it etc.

But in my book says: if we use texture space for normal mapping,we will get a triangulated appearance since the tangent space is constant over the face of the triangle.(This is if we use tangent(or texture) space per TRIANGLE!).

So how does using a tangent per vertex fix this? And what does "triangulated" mean?
I can't understand why rotating and translating the texture using just texture space per TRIANGLE.

Share this post


Link to post
Share on other sites
You can't send per-triangle attributes to the GPU. Well, you could probably hack something up with instancing and/or a GS, but it seems of dubious benefit and just adding the attribute per-vertex is the simplest solution.

Share this post


Link to post
Share on other sites
Because vertex shaders only look at the vertex they're processing, not at the other vertices they're connected with.
The Geometry shader is able to do that, but it breaks a lot of concurrency which is the strong point of GPUs, and hence that's why GS are so slow and rarely used (that, plus other factors in the GS break parallelism).

This is also why two triangles can share the same vertex, yet duplicate that vertex because they need totally different normals (unless you're using carefully layed out vertices using flat shading).
A cube only needs 8 vertices yet the traditional way of rendering it is using 24 vertices (again, unless you're using flat shading and carefully connected vertices; the order becomes important because the normal of the leading vertex, which is the first vertex being processed, is used).

Funny though, because you realized about this problem with Tangents, but not with Normals [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this