[osg-users] osgText and OpenGL ES 3

Benjamin Rollet benjamin.rollet at sogeti.com
Tue Aug 2 07:20:16 PDT 2016


Thanks for your answer Sebastian.

I am using the gl3TextVertexShader and gl3TextFragmentShader shaders from the example, juste modifying the version to be GLES 3 compatible: #version 300 es

Here is the code:

Code:

static const char *gl3TextVertexShader = {
    "#version 300 es\n"
    "in vec4 osg_Vertex;\n"
    "in vec4 osg_Color;\n"
    "in vec4 osg_MultiTexCoord0;\n"
    "uniform mat4 osg_ModelViewProjectionMatrix;\n"
    "out vec2 texCoord;\n"
    "out vec4 vertexColor;\n"
    "void main(void)\n"
    "{\n"
    "    gl_Position = osg_ModelViewProjectionMatrix * osg_Vertex;\n"
    "    texCoord = osg_MultiTexCoord0.xy;\n"
    "    vertexColor = osg_Color; \n"
    "}\n"
};

static const char *gl3TextFragmentShader = {
    "#version 300 es\n"
    "uniform sampler2D GlyphTexture;\n"
    "in vec2 texCoord;\n"
    "in vec4 vertexColor;\n"
    "out vec4 color;\n"
    "void main(void)\n"
    "{\n"
    "    color = vertexColor * texture(GlyphTexture, texCoord).rrrr;\n"
    "}\n"
};




Following the example and your recommendation, I specified the uniform (not present in the original example):

Code:

osg::Group* rootNode = new osg::Group;

    osgText::Font* font = osgText::readFontFile("fonts/ArialMT.ttf");

    //osg::setNotifyLevel(osg::INFO);

    osg::Geode* geode  = new osg::Geode;
    rootNode->addChild(geode);

    bool useVBOs = true;
    osg::Program* program = new osg::Program;
    program->addShader(new osg::Shader(osg::Shader::VERTEX, gl3TextVertexShader));
    program->addShader(new osg::Shader(osg::Shader::FRAGMENT, gl3TextFragmentShader));
    
    osg::ref_ptr<osg::Uniform> textTexture = new osg::Uniform("GlyphTexture",0);

    osg::StateSet* ss = geode->getOrCreateStateSet();
    ss->addUniform(textTexture);
    ss->setAttributeAndModes(program, osg::StateAttribute::ON);




But the result is the same.
What I am doing wrong?

Cheers,
Benjamin

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








More information about the osg-users mailing list