Hi Rômulo,
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.
You cannot get a valid Co-TangentSpace by taking only the normal into account considering arbitrary geometries. There are multiple ways to tackle this however: First is to calculate the mesh's tangentspace beforehand and pass the tangent and binormal via vertex attributes. See the osgUtil::TangentSpaceGenerator (example in the osg::CookBook AFAIK).
Second one is to calculate it in the view-space. Beware of dragons, since the precision will be awful for big coordinates:
http://www.thetenthplanet.de/archives/1180 hth Sebastian
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@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org