View Full Version : PPL and geometry normals

V-man

03-25-2003, 07:57 PM

When doing PPL, do I need to take geometry normals (vertex normals) into consideration in any way?

The lighting is done in tangent space and vertex normals is used in the construction of the orthonomal basis, but when doing the dot3 lighting, should the vertex normals be interpolated across the polygon and "perturbed" by the normal map.

Banzai

03-25-2003, 11:49 PM

Originally posted by V-man:

When doing PPL, do I need to take geometry normals (vertex normals) into consideration in any way?

The lighting is done in tangent space and vertex normals is used in the construction of the orthonomal basis, but when doing the dot3 lighting, should the vertex normals be interpolated across the polygon and "perturbed" by the normal map.

Yes, the vertex normals are interpolated

together with the tangents and binormals.

If you interpolate tangents and binormals

only your lighting equation will become

incorrect.

jwatte

03-26-2003, 07:01 PM

The actual normal you use is only the data that comes out of the normal map (possibly transformed by the inverse of the tangent basis into object space). Only "fake" du/dv "bump mapping" would use the interpolated normal and perturb it.

Note that you can do per-pixel lighting, using the regular interpolated (and normalized) normal, and no normal map; per-pixel lighting "only" means that the light equation is evaluated per pixel, given vectors that are interpolated per-vertex.

V-man

03-28-2003, 08:15 AM

Well we have 2 people saying different things so I guess some people have other methods.

Banzai, how do you do the interpolation of the orthonormal basis? Are you using fp for this?

JustHanging

03-28-2003, 08:24 AM

You use the normal, tangent and binormal at each vertex to transform the light vector into tangent space, and then you interpolate the light vector across the polygon. Right? I'm no expert here, I must say.

-Ilkka

V-man

03-28-2003, 09:04 AM

Yes, that's the basic idea.

diffuse = light vector DOT normal is done at each pixel that way.

The only real problem is the ^shininess thing for specular. If I want to do shininess=100 for example, ... deep deep trouble!

pow function required.

JustHanging

03-28-2003, 09:53 AM

Yeah. I guess what people usually do is approximate some fixed exponent with some other formula that can be calculated in the combiners. I think they can crank it up to 32 or maybe 64. Preferably you'd have of course several different exponents to choose from for different materials. Of course if you can use dependent reads, you can just make a lookup.

-Ilkka

Powered by vBulletin® Version 4.2.2 Copyright © 2014 vBulletin Solutions, Inc. All rights reserved.