[osg-users] Running OSG models on OpenGLES2.0

Sebastian Messerschmidt sebastian.messerschmidt at gmx.de
Sun Mar 13 04:03:48 PDT 2016

Hi Hyun,

> Hi Chris,
> I tried most of examples. Now I'm focusing on glsl_simple.osgt as it 
> looks simple, but only the second row of shapes shows. If I modify the 
> vertex shader a little, I get to see both first/second row.
Can you tell us which platform you are using?  You usually don't have to 
add precision qualifiers to make shaders work.
> I've received some OSG model (file.osg) from someone, and I was able 
> to run it on the desktop (OpenGL). I was told the OSG model runs on 
> OpenGLES2.0. For me to run it on OpenGLES2, I added the precision 
> qualifiers to build, but the result still doesn't look correct. I'm 
> not sure if more / what modification is needed. For example, I 
> modified the OSG shader generator, but it didn't help. Does OSG layers 
> completely abstract underlying APIs (OpenGL, OpenGLES,,,), meaning the 
> OSG models are API independent? or does each OSG model have some API 
> specific code? For example, I don't see any precision qualifiers in 
> OSG examples, and does that mean those models are not for OpenGLES2.0?
OSG doesn't completely abstract the APIs, but it can be built 
specifically to work with OpenGL ES, by using the compiler flags you 
used. You will however have to put some work into it, since you will 
have to write shaders. Since you are not telling us which "shader 
generator" you are using, it is hard to guess what you are trying to 
There is not something like "models for OpenGLES2.0". You will have to 
write appropriate shaders and might have to run some visitors to change 
fixed function pipeline functions in to uniforms/attributes of the model.
For instance osg::Material is not working outside the compatibility 
-profiles, so might have to run a visitor, that parses osg::Material 
instances and replaces them with uniforms or per-vertex attributes which 
you will have to evaluate in the shader.

> I'm trying to figure out where the issue comes from: OSG model, OSG 
> layers, OpenGLES library.

Chris asked you for an example model that is not working. You mentioned 
the glsl-simple model, which from a glance doesn't have ES-compatible 
code. The easiest thing to do is to start with a model(preferably not 
containing shaders) and a simple ES-Shader.
Unfortunately the examples here are relatively rare. Might be a great 
opportunity to create some minimalistic core/ES-based shader example and 
to extend the OpenGL-ES pseudo loader.

> Thanks,
> -hyun

> ------------------------------------------------------------------------
> *From:* osg-users [osg-users-bounces at lists.openscenegraph.org] on 
> behalf of Chris Hanson [xenon at alphapixel.com]
> *Sent:* Friday, March 11, 2016 5:27 PM
> *To:* OpenSceneGraph Users
> *Subject:* Re: [osg-users] Running OSG models on OpenGLES2.0
> OGL ES requires a shader.​
> Many of the OSG-Data models don't have shaders built into them, and 
> will not transform and rasterize as a result.
> Which OSG model did you try that had most surfaces transparent?
> This email and any attachments are intended for the sole use of the 
> named recipient(s) and contain(s) confidential information that may be 
> proprietary, privileged or copyrighted under applicable law. If you 
> are not the intended recipient, do not read, copy, or forward this 
> email message or any attachments. Delete this email message and any 
> attachments immediately.
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20160313/44b7b30a/attachment-0002.htm>

More information about the osg-users mailing list