Author : Nate Broach


Reply
Reply
 
Thread Tools Display Modes
Sean VanGorder's Avatar
Old (#1)
Is there anywhere I can find a comprehensive list of what tangent basis various apps use for rendering normal maps? If not, could we create one here?

For instance, I know 3ds Max uses +X and -Y, which is different from some other apps. With all the programs I use, it can become slightly confusing trying to remember if I need to flip the green channel or not. Any insight is appreciated.
Available for full time and freelance work
Tweeeet
Bloog
Offline , Polycount.com Editor, 1,746 Posts, Join Date May 2009, Location Redwood City, CA Send a message via AIM to Sean VanGorder Send a message via Skype™ to Sean VanGorder  
   Reply With Quote

SpeCter's Avatar
Old (#2)
I think it would be wiser to point out how the most common engines handle that.
Every program for rendering normal maps lets you decide how you want that.
Offline , polycounter, 1,116 Posts, Join Date Dec 2008, Location Germany Send a message via ICQ to SpeCter  
   Reply With Quote

m4dcow's Avatar
Old (#3)
Maya renders +y by default (right handed), but you can change this behaviour as you go. However tangent basis != handedness which is what you are looking for in your post.
Offline , polygon, 745 Posts, Join Date Jan 2010, Location St.Lucia, West indies  
   Reply With Quote

Sean VanGorder's Avatar
Old (#4)
Good point, tangent basis isn't really the same thing as handedness. I guess I had assumed that the handedness was derived from the tangent basis. Or maybe I'm just completely off track.
Available for full time and freelance work
Tweeeet
Bloog
Offline , Polycount.com Editor, 1,746 Posts, Join Date May 2009, Location Redwood City, CA Send a message via AIM to Sean VanGorder Send a message via Skype™ to Sean VanGorder  
   Reply With Quote

leechdemon's Avatar
Old (#5)
(If this is maintained, a simple "Software - Orienation" list would make life easier. Also, a Wiki Page might make more sense..)

AFAIK, xNormals uses the same basis as Max; if you're saying Max is +X/-Y, then xNormals is the same thing. I believe the Photoshop plugin defaults to the +X/+Y. So,
Max : +X, -Y
Maya: +X, +Y
xNormals : +X, -Y
Photoshop nVidia Plugin : +X, +Y
Like m4dcow mentioned, there's a way to change this setting in each of these programs; this is mostly helpful in making sure your settings match across your pipeline.

Some other good reading on how the Tangent Basis is calculated in several different packages (in case your developer starts shaking his fist at you): http://www.polycount.com/forum/showthread.php?t=84616
Offline , spline, 217 Posts, Join Date Mar 2010, Location Ann Arbor, MI Send a message via AIM to leechdemon  
   Reply With Quote

leechdemon's Avatar
Old (#6)
Quote:
Originally Posted by SeanEG View Post
I guess I had assumed that the handedness was derived from the tangent basis.
If Handedness = Polygon Winding direction, then I believe it depends. Our software derives tangents from the winding direction, but I guess that's not always standard, which freaks my devs out whenever they run across it (sort of like calling the sky Green or something).
Offline , spline, 217 Posts, Join Date Mar 2010, Location Ann Arbor, MI Send a message via AIM to leechdemon  
   Reply With Quote

perna's Avatar
Old (#7)
It's not that simple. The axes thing is insignificant compared to the other differences between apps in calculating normal maps
3pointstudios.com - Game Art Outsourcing
Offline , veteran polycounter, 4,100 Posts, Join Date Oct 2004, Location UK Send a message via ICQ to perna Send a message via MSN to perna Send a message via Yahoo to perna  
   Reply With Quote

almighty_gir's Avatar
Old (#8)
what Perna said.

like, if i remember rightly, i read on the UDN site some time that they used an in-house app for generating their normals (makes sense), but that means that potentially there is no app on earth that would generate normals the same way Epic do.

which is of course, a problem.

edit:
http://udn.epicgames.com/Three/Impor...hTutorial.html

apparently the tool they used is called "SHTools".

Last edited by almighty_gir; 06-23-2011 at 02:16 PM..
Offline , veteran polycounter, 4,286 Posts, Join Date Nov 2004,  
   Reply With Quote

leechdemon's Avatar
Old (#9)
... sure, but assuming you're not using in-house software, it's possible to take a Normal Map generated in xNormals (or whatever) and view it correctly in Max (or whatever). A Tangent-Space Normal Map relies on accurate normals, tangents, and axis inversion all working in unison. Assuming you've got the first two, the second is an easy toggle; I think the OP was just asking for a list of what to flip to and when.

Alternatively, if, say, Maya tangent generation differs from Max tangent generation, then that would still be a good thing to have a list of somewhere. A list of tangent/inversion compatibilities.
Offline , spline, 217 Posts, Join Date Mar 2010, Location Ann Arbor, MI Send a message via AIM to leechdemon  
   Reply With Quote

sprunghunt's Avatar
Old (#10)
Quote:
Originally Posted by almighty_gir View Post

edit:
http://udn.epicgames.com/Three/Impor...hTutorial.html

apparently the tool they used is called "SHTools".
I've used SHTools a long time ago. We don't use it anymore even for unreal games.

I believe it was developed when epic was first using normalmaps because you couldn't bake normalmaps in max. It was that long ago.
---------------------------------------
sci-fi base
Robot Hunters Room
CER level
Offline , polycounter, 1,284 Posts, Join Date Apr 2005, Location Massachusetts  
   Reply With Quote

bugo's Avatar
Old (#11)
I had to use that, sucks ass, there's no antialiasing.
Offline , dedicated polycounter, 1,459 Posts, Join Date Feb 2006, Location Redmond WA Send a message via MSN to bugo Send a message via Skype™ to bugo  
   Reply With Quote

metalliandy's Avatar
Old (#12)
Off the top of my head...

Max X+Y-Z+
Maya X+Y+Z+
ZBrush X-Y+Z+ (not 100% sure)
UDK X+Y-Z+
Marmoset X+Y+Z+
IDTech X+Y+Z+
CryEngine 3 X+Y-Z+
Blender 2.4x+ X-Y-Z+
Blender 2.57+ X+Y+Z+ (now uses mikktspace by default)
xNormal X+Y+Z+ (also uses mikktspace by default)
CrazyBump X+Y+Z+
Nvidia Filter X+Y-Z+
PixPlant X+Y-Z+
nDo2 X+Y+Z+

Feel free to correct them, if i got any wrong

While the axis that different programs use are insignificant when compared to the other complications, i still think it would be a good idea to get these on the Wiki, as when i was first starting out it used to drive me crazy trying to find them all out.

Last edited by metalliandy; 11-20-2011 at 12:01 PM..
Offline , dedicated polycounter, 1,671 Posts, Join Date Mar 2007, Location United Kingdom (Hampshire)  
   Reply With Quote

passerby's Avatar
Old (#13)
you forgot ue3/udk X+Y-Z+
Online , card carrying polycounter, 2,233 Posts, Join Date Nov 2010, Location Halifax, NS, Canada  
   Reply With Quote

SpeCter's Avatar
Old (#14)
@passerby:
Fifth row, take a good look and try again ;)
Offline , polycounter, 1,116 Posts, Join Date Dec 2008, Location Germany Send a message via ICQ to SpeCter  
   Reply With Quote

passerby's Avatar
Old (#15)
blah im stupid today
Online , card carrying polycounter, 2,233 Posts, Join Date Nov 2010, Location Halifax, NS, Canada  
   Reply With Quote

metalliandy's Avatar
Old (#16)
I updated my post to include CryEngine 3, which uses X+Y-Z+
Offline , dedicated polycounter, 1,671 Posts, Join Date Mar 2007, Location United Kingdom (Hampshire)  
   Reply With Quote

Ace-Angel's Avatar
Old (#17)
We seriously need a standard...
There's a very good chance that I experienced MORE problems, then all the internet put together in the area of 3D. Talk about being original for once...
Offline , veteran polycounter, 4,497 Posts, Join Date Apr 2011, Location Canada  
   Reply With Quote

Scruples's Avatar
Old (#18)
Inverting the Green channel results in a percieved increase in quality for compressed normal maps, this is why it's all over the place.

Also...isn't tangent basis something completely different?, isn't this swizzle coordinates?.

Last edited by Scruples; 06-30-2011 at 10:17 PM..
Offline , triangle, 342 Posts, Join Date Nov 2010,  
   Reply With Quote

bugo's Avatar
Old (#19)
Right Scruples, my question is, why are you guys worried about the XYZ negatives and positives if tangent basis doesn't mean that at all? For me tangent basis always meant the amount of angle the vertex normal converts the tangent of the surface, not the RGB info on the map. Am I wrong here?

We also had a long conversation about this not so long ago, comparing different tangent basis inbetween softwares here: http://www.polycount.com/forum/showthread.php?t=68173
Offline , dedicated polycounter, 1,459 Posts, Join Date Feb 2006, Location Redmond WA Send a message via MSN to bugo Send a message via Skype™ to bugo  
   Reply With Quote

Sean VanGorder's Avatar
Old (#20)
Yeah, tangent basis wasn't the best term to use when creating the thread. I had assumed the "handedness", or direction of the Y axis, was derived from the tangent basis. Mods can feel free to change the thread title.
Available for full time and freelance work
Tweeeet
Bloog
Offline , Polycount.com Editor, 1,746 Posts, Join Date May 2009, Location Redwood City, CA Send a message via AIM to Sean VanGorder Send a message via Skype™ to Sean VanGorder  
   Reply With Quote

throttlekitty's Avatar
Old (#21)
Quote:
Originally Posted by Scruples View Post
Inverting the Green channel results in a percieved increase in quality for compressed normal maps, this is why it's all over the place.
Not quite, try again.

Quote:
Also...isn't tangent basis something completely different?, isn't this swizzle coordinates?.
Swizzling (as it applies to images) is swapping color channels around when exporting said image, such as DXT5NM

@metalliandy, Blender pushing for a tangent space standard is pretty cool
Offline , polycounter, 949 Posts, Join Date Dec 2008, Location South Dakota Send a message via ICQ to throttlekitty Send a message via AIM to throttlekitty Send a message via Yahoo to throttlekitty  
   Reply With Quote

kodde's Avatar
Old (#22)
Isn't tangent basis how you calculate the bitangent/binormal and tangent components that come along with the vertex normals?
Offline , dedicated polycounter, 1,366 Posts, Join Date Dec 2004, Location Malmö, Sweden  
   Reply With Quote

r_fletch_r's Avatar
Old (#23)
Quote:
Originally Posted by kodde View Post
Isn't tangent basis how you calculate the bitangent/binormal and tangent components that come along with the vertex normals?
that was my understanding. folks seem to be mixing it up with every other normal map buzz word.
Offline , veteran polycounter, 2,970 Posts, Join Date Feb 2010, Location Ireland  
   Reply With Quote

metalliandy's Avatar
Old (#24)
Quote:
Originally Posted by Scruples View Post
Inverting the Green channel results in a percieved increase in quality for compressed normal maps, this is why it's all over the place.

Also...isn't tangent basis something completely different?, isn't this swizzle coordinates?.
The direction of the axis has absolutely no effect on the quality of the results you get. The only reason there is a difference, is because some shaders are coded to use a preferred set up

Quote:
Originally Posted by bugo View Post
Right Scruples, my question is, why are you guys worried about the XYZ negatives and positives if tangent basis doesn't mean that at all? For me tangent basis always meant the amount of angle the vertex normal converts the tangent of the surface, not the RGB info on the map. Am I wrong here?

We also had a long conversation about this not so long ago, comparing different tangent basis inbetween softwares here: http://www.polycount.com/forum/showthread.php?t=68173
Quote:
Originally Posted by SeanEG View Post
Yeah, tangent basis wasn't the best term to use when creating the thread. I had assumed the "handedness", or direction of the Y axis, was derived from the tangent basis. Mods can feel free to change the thread title.
Yea Axis and Tangent space are different. I posted the axis values, because i knew what Sean meant and its good to finally get a list of these down somewhere
He corrected himself in post 4 too

@Sean, maybe message a mod to change the thread title and edit your first post?

Quote:
Originally Posted by throttlekitty View Post

@metalliandy, Blender pushing for a tangent space standard is pretty cool
Yea, its a move in the right direction
Offline , dedicated polycounter, 1,671 Posts, Join Date Mar 2007, Location United Kingdom (Hampshire)  
   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Copyright 1998-2012 A. Risch