tellaman

02-04-2003, 12:39 PM

i'm trying to generate tangent space basis vectors like this (i hope you get the idea)

S vector: i subdivide my sphere into parallels, if seen from above you get many circles, for each vertex my s vector is tangent to these circles in a counter-clockwise manner

T vector: i subdivide my sphere into meridians, my t vector is tangent to HALF meridians, going from south pole to north pole

SxT vector: i simply use vertex normal

i'm aware of the fact that this could cause some siungularities at poles but that's not the problem i'm discussing in this topic

unfortunately this method seem to generate incorrect results with directional lights (under some directions) and in particular with point lights

i mean, imagine i'm using a bubble-like normal map, some bubbles reflect light as if they were convex, some as if they were concave

working with cylinders or toruses causes no similar problem

i also tried to get my sxt vector by crossing s and t, and even tried to get t vec by crossing vertex normal and s vec, but no luck

every vector i'm working with is normalized so that should not be the prob

i've also looked into nvidia sdk and i can see that they are generating basis vectors with the algorithm kilgard described in his bumpskin paper, but i dont really get how the algorithm works (it also contains 12 variables for 9 equations?!?) and i guess there's a much simpler way to generate basis vecs for a sphere

any hint on how to map it correctly wuold be highly appreciated

thanks

[This message has been edited by tellaman (edited 02-04-2003).]

S vector: i subdivide my sphere into parallels, if seen from above you get many circles, for each vertex my s vector is tangent to these circles in a counter-clockwise manner

T vector: i subdivide my sphere into meridians, my t vector is tangent to HALF meridians, going from south pole to north pole

SxT vector: i simply use vertex normal

i'm aware of the fact that this could cause some siungularities at poles but that's not the problem i'm discussing in this topic

unfortunately this method seem to generate incorrect results with directional lights (under some directions) and in particular with point lights

i mean, imagine i'm using a bubble-like normal map, some bubbles reflect light as if they were convex, some as if they were concave

working with cylinders or toruses causes no similar problem

i also tried to get my sxt vector by crossing s and t, and even tried to get t vec by crossing vertex normal and s vec, but no luck

every vector i'm working with is normalized so that should not be the prob

i've also looked into nvidia sdk and i can see that they are generating basis vectors with the algorithm kilgard described in his bumpskin paper, but i dont really get how the algorithm works (it also contains 12 variables for 9 equations?!?) and i guess there's a much simpler way to generate basis vecs for a sphere

any hint on how to map it correctly wuold be highly appreciated

thanks

[This message has been edited by tellaman (edited 02-04-2003).]