Hi,
Thanks for your reply!
Well, I've tried with the "osg_" uniforms instead of the typical "gl_" uniforms.
Still not good. My model appears but the camera matrix uniform just doesn't
update by using
Code:
_viewer->getCamera()->setViewMatrix(osgMat);
The shader I am using is:
Code:
static const char gVertexShader[] =
"varying vec4 color; \n"
"const vec3 lightPos =vec3(100.0, 100.0, 100.0); \n"
"const vec4 cessnaColor =vec4(0.8, 0.0, 0.0, 1.0); \n"
"const vec4 lightAmbient =vec4(0.1, 0.1, 0.1, 1.0); \n"
"const vec4 lightDiffuse =vec4(0.4, 0.4, 0.4, 1.0); \n"
"const vec4 lightSpecular =vec4(0.8, 0.8, 0.8, 1.0); \n"
"uniform mat4 osg_ModelViewMatrix;
\n"
"uniform mat4 osg_ModelViewProjectionMatrix;
\n"
"uniform mat3 osg_NormalMatrix;
\n"
"void DirectionalLight(in vec3 normal, \n"
" in vec3 ecPos, \n"
" inout vec4 ambient, \n"
" inout vec4 diffuse, \n"
" inout vec4 specular) \n"
"{ \n"
" float nDotVP; \n"
" vec3 L = normalize(osg_ModelViewMatrix*vec4(lightPos, 0.0)).xyz; \n"
" nDotVP = max(0.0, dot(normal, L)); \n"
" \n"
" if (nDotVP > 0.0) { \n"
" vec3 E = normalize(-ecPos); \n"
" vec3 R = normalize(reflect( L, normal )); \n"
" specular = pow(max(dot(R, E), 0.0), 16.0) * lightSpecular; \n"
" } \n"
" ambient = lightAmbient; \n"
" diffuse = lightDiffuse * nDotVP; \n"
"} \n"
"void main() { \n"
" vec4 ambiCol = vec4(0.0); \n"
" vec4 diffCol = vec4(0.0); \n"
" vec4 specCol = vec4(0.0); \n"
" gl_Position = osg_ModelViewProjectionMatrix * gl_Vertex; \n"
" vec3 normal = normalize(osg_NormalMatrix * gl_Normal); \n"
" vec4 ecPos = osg_ModelViewMatrix * gl_Vertex; \n"
" DirectionalLight(normal, ecPos.xyz, ambiCol, diffCol, specCol); \n"
" color = cessnaColor * (ambiCol + diffCol + specCol); \n"
"} \n";
static const char gFragmentShader[] =
"precision mediump float; \n"
"varying mediump vec4 color; \n"
"void main() { \n"
" gl_FragColor = color; \n"
"} \n";
No idea what's going wrong...
Cheers,
Rubén
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=42473#42473
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org