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