Hi,

Ok, I've decided to follow your idea and do it with the osg shaders but I'm 
getting the next error


Code:
FRAGMENT glCompileShader "" FAILED
FRAGMENT Shader "" infolog:
(0) : error C0000: syntax error, unexpected $end at token "<EOF>"
(0) : error C0501: type name expected at token "<null atom>"

VERTEX glCompileShader "" FAILED
VERTEX Shader "" infolog:
(0) : error C0000: syntax error, unexpected $end at token "<EOF>"
(0) : error C0501: type name expected at token "<null atom>"

GEOMETRY glCompileShader "" FAILED
GEOMETRY Shader "" infolog:
(0) : error C0000: syntax error, unexpected $end at token "<EOF>"
(0) : error C0501: type name expected at token "<null atom>"

glLinkProgram "" FAILED
Program "" infolog:
Vertex info
-----------
(0) : error C0000: syntax error, unexpected $end at token "<EOF>"
(0) : error C0501: type name expected at token "<null atom>"

Geometry info
-------------
(0) : error C0000: syntax error, unexpected $end at token "<EOF>"
(0) : error C0501: type name expected at token "<null atom>"

Fragment info
-------------
(0) : error C0000: syntax error, unexpected $end at token "<EOF>"
(0) : error C0501: type name expected at token "<null atom>"




Here I have where I initialize the shader:


Code:
osg::StateSet* brickState = node->getOrCreateStateSet();

        osg::Program* brickProgramObject        = new osg::Program;
        osg::Shader* brickVertexObject          = new osg::Shader( 
osg::Shader::VERTEX );
        osg::Shader* brickFragmentObject        = new osg::Shader( 
osg::Shader::FRAGMENT );
        osg::Shader* brickGeometryObject        = new osg::Shader( 
osg::Shader::GEOMETRY );

        brickProgramObject->addShader( brickFragmentObject );
        brickProgramObject->addShader( brickVertexObject   );
        brickProgramObject->addShader( brickGeometryObject );

        brickVertexObject->readShaderFile  ( osg::Shader::VERTEX   , 
"/home/Pau/OSG/Test1/Debug/Shaders/TestG80_VS.glsl" );
        brickFragmentObject->readShaderFile( osg::Shader::FRAGMENT , 
"/home/Pau/OSG/Test1/Debug/Shaders/TestG80_GS2.glsl" );
        brickGeometryObject->readShaderFile( osg::Shader::GEOMETRY , 
"/home/Pau/OSG/Test1/Debug/Shaders/TestG80_FS.glsl" );

        brickProgramObject->setParameter( GL_GEOMETRY_INPUT_TYPE_EXT   , 
GL_POINTS );
        brickProgramObject->setParameter( GL_GEOMETRY_OUTPUT_TYPE_EXT  , 
GL_TRIANGLE_STRIP );
        brickProgramObject->setParameter( GL_GEOMETRY_VERTICES_OUT_EXT , 16 );


        glGenTextures(1, &triTableTex );
        glActiveTexture(GL_TEXTURE2);
        glEnable(GL_TEXTURE_2D);

        glBindTexture(GL_TEXTURE_2D, triTableTex);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);

        glTexImage2D( GL_TEXTURE_2D, 0, GL_ALPHA16I_EXT, 16, 256, 0, 
GL_ALPHA_INTEGER_EXT, GL_INT, &triTable);

        float isolevel = 0.2;
        osg::Uniform* triTableU = new osg::Uniform("triTableTex", 0 );
        osg::Uniform* isolevelU = new osg::Uniform("isolevel", isolevel );

        osg::Uniform* vtxDecal0U = new osg::Uniform("vertDecals[0]", 
osg::Vec3f( 0.0f                    , 0.0f                         , 0.0f       
                   ) );
        osg::Uniform* vtxDecal1U = new osg::Uniform("vertDecals[1]", 
osg::Vec3f( this->m_vStep.x , 0.0f                         , 0.0f               
           ) );
        osg::Uniform* vtxDecal2U = new osg::Uniform("vertDecals[2]", 
osg::Vec3f( this->m_vStep.x , this->m_vStep.y      , 0.0f                       
   ) );
        osg::Uniform* vtxDecal3U = new osg::Uniform("vertDecals[3]", 
osg::Vec3f( 0.0f                    , this->m_vStep.y      , 0.0f               
           ) );
        osg::Uniform* vtxDecal4U = new osg::Uniform("vertDecals[4]", 
osg::Vec3f( 0.0f                    , 0.0f                         , 
this->m_vStep.z       ) );
        osg::Uniform* vtxDecal5U = new osg::Uniform("vertDecals[5]", 
osg::Vec3f( this->m_vStep.x , 0.0f                         , this->m_vStep.z    
   ) );
        osg::Uniform* vtxDecal6U = new osg::Uniform("vertDecals[6]", 
osg::Vec3f( this->m_vStep.x , this->m_vStep.y      , this->m_vStep.z       ) );
        osg::Uniform* vtxDecal7U = new osg::Uniform("vertDecals[7]", 
osg::Vec3f( 0.0f                    , this->m_vStep.y      , this->m_vStep.z    
   ) );

        brickState->addUniform( triTableU );
        brickState->addUniform( isolevelU );
        brickState->addUniform( vtxDecal0U );
        brickState->addUniform( vtxDecal1U );
        brickState->addUniform( vtxDecal2U );
        brickState->addUniform( vtxDecal3U );
        brickState->addUniform( vtxDecal4U );
        brickState->addUniform( vtxDecal5U );
        brickState->addUniform( vtxDecal6U );
        brickState->addUniform( vtxDecal7U );

        brickState->setAttributeAndModes( brickProgramObject, 
osg::StateAttribute::ON );



I have to say that the same shaders are running in a OGL code... What's wrong?


Thank you!

Cheers,
Pau[/code]

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=15869#15869





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to