www.jpct.net

jPCT-AE - a 3d engine for Android => Support => Topic started by: Shot on July 27, 2013, 09:18:49 pm

Title: Normal matrix
Post by: Shot on July 27, 2013, 09:18:49 pm
Is there a way to send a normal matrix (transpose of inverse of model view matrix) to shader for every object in a scene?
Title: Re: Normal matrix
Post by: EgonOlsen on July 27, 2013, 10:00:09 pm
You don't have to. I think the source of the shaders in the HelloShader example show what to do instead.
Title: Re: Normal matrix
Post by: Shot on July 27, 2013, 10:06:28 pm
Yep, I saw it, but imho it's not correct because after this operation normal may not be prependicular to its' surface. See this explanation: http://www.lighthouse3d.com/tutorials/glsl-tutorial/the-normal-matrix/ (http://www.lighthouse3d.com/tutorials/glsl-tutorial/the-normal-matrix/)
Title: Re: Normal matrix
Post by: Thomas. on July 28, 2013, 11:01:12 am
Calculation normals from modelViewMatrix is faster and for orthogonal transformations it is fine (transpose and invert is about O(300)) ;)
Title: Re: Normal matrix
Post by: Shot on July 28, 2013, 11:16:03 am
I see, but what about non-orthogonal transformations? Is it a proper way of thinking: orthogonal camera == orthogonal transformations and perspective camera == non-orthogonal transformations?
Title: Re: Normal matrix
Post by: Thomas. on July 28, 2013, 06:20:36 pm
No, non orthogonal transformation is for example scale in x axis