Hi Rubén,

Have a look at osg::State::_useModelViewAndProjectionUniforms to see
if it's set to true.  For builds the set the CMAke option
OSG_GL_FIXED_FUNCTION_AVAILABLE to OFF this variable should be set to
true by default.  This member variable tells osg::State to pass the
projection and modelview matrices setting to the associated uniforms.

Robert.

On Wed, Sep 7, 2011 at 9:31 AM, Rubén Díaz <[email protected]> wrote:
> 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
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to