[osg-users] TBN Matrix for Normal Mapping - OSG and GLSL

Jordi Torres jtorresfabra at gmail.com
Wed Nov 8 00:19:07 PST 2017


Hi Romulo,

You can use TangentSpaceGenerator to get the values of the T B and N. Here
you have a code example:
https://github.com/sketchfab/osg/blob/5d35b2a2d55e92b4c736ea5edcd9eeedf9ea6786/src/osgPlugins/gles/TangentSpaceVisitor.cpp#L46

Cheers.

2017-11-07 21:48 GMT+01:00 Rômulo Cerqueira <romulogcerqueira at gmail.com>:

> Hi,
>
> I have used normal mapping using GLSL and OSG for my application (an
> imaging sonar simulation) and I got problems by calculating the TBN matrix
> on shaders. The normal vectors contain lower resolution on border in
> comparison with the center of image.
>
> Follows my vertex code:
>
> Code:
>
> #version 130
>
> out vec3 pos;
> out vec3 normal;
> out mat3 TBN;
>
> void main() {
>     pos = (gl_ModelViewMatrix * gl_Vertex).xyz;
>     normal = gl_NormalMatrix * gl_Normal.xyz;
>
>     vec3 n = normalize(normal);
>     vec3 t = normalize(cross(normal, vec3(-1,0,0)));
>     vec3 b = cross(t, n) + cross(n, t);
>     TBN = transpose(mat3(t,b,n));
>
>     gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
>     gl_TexCoord[0] = gl_MultiTexCoord0;
> }
>
>
>
>
> Part of my fragment code:
>
> Code:
>
> #version 130
>
> in vec3 pos;
> in vec3 normal;
> in mat3 TBN;
> uniform sampler2D normalTexture;
>
> void main() {
>     vec3 newNormal = (texture2D(normalTexture, gl_TexCoord[0].st).rgb *
> 2.0 - 1) * TBN;
>     newNormal = normalize(newNormal);
> ...
> }
>
>
>
>
> The resulting figure is attached.
>
> How can I calculate the TBN matrix to compute the normal mapping properly?
>
> Thanks in advance,
>
>
> ...
>
> Thank you!
>
> Cheers,
> Rômulo[/img]
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=72324#72324
>
>
>
>
> Attachments:
> http://forum.openscenegraph.org//files/screenshot_from_
> 2017_11_06_23_00_48_832.png
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>



-- 
Jordi Torres
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20171108/b594528b/attachment.html>


More information about the osg-users mailing list