Thanks for the suggestions, Robert! I was just investigating such possibilities, shows I'm on the right track...
/Andreas

On 2017-09-22 12:13, Robert Osfield wrote:
Hi Andreas.

On 22 September 2017 at 09:40, Andreas Ekstrand <andreas.ekstr...@remograph.com <mailto:andreas.ekstr...@remograph.com>> wrote:

    I'm using osgText to show vertex numbers. Often enough it's only
    0,1,2 for triangles but it can be several hundred thousands of them.

    It's never been optimal, I know - and I guess this is the time to
    do something about it, I will look into an alternative way without
    osgText. Any suggestions are welcome!


On the OSG side I steadily shifting osgText to using shaders for effects and simplifying the CPU side.  Not all the way there yet but that's the direction I'm going with it.  Simplifying the CPU side will mean less custom data manipulation that is different frrom osg::Geometry that just pushes arrays and primitives to GL.  With these evolution of osgText the overhead for creating new text should be lower.

However, osgText it will always be a general purpose text implementation rather than a highly tuned for a specific purpose.  In your case it might be simpler to do some specifically your task.  If you have just 0..9 characters and a limited number of characters you start thinking about doing far more on the GPU.

For instance you could use a single textured quad for each label, passing in the characters to render via a uniform array or packed uniforms and have a shader work out what texture coordinates into the glyph texture atlas to use to render each character, then in the fragment shader get the appropriate samples for each character.  I have used this approach on client project to make a very lightweight system for rendering labels, it was a closed source project so not something I can share the implementation, but it does at least show it works.

Another approach you could take is just create your own osg::Geometry and reuse the osgText::Font/osgText::GlyhTexture. In the end basic rendering of text is just texture quads, osgText can be used to provide the texture atlas you need so most of the awkward work is done for you already.

Robert.






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

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

Reply via email to