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
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org