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

Sebastian Messerschmidt sebastian.messerschmidt at gmx.de
Mon Mar 14 03:02:19 PDT 2016


Am 14.03.2016 um 09:16 schrieb Hyun Kwon:
>
> Hi Sebastian,
>
> Thanks for the reply.
>
>     ------------------------------------------------------------------------
>     *From:* osg-users [osg-users-bounces at lists.openscenegraph.org] on
>     behalf of Sebastian Messerschmidt [sebastian.messerschmidt at gmx.de]
>     *Sent:* Sunday, March 13, 2016 4:03 AM
>     *To:* OpenSceneGraph Users
>     *Subject:* Re: [osg-users] Running OSG models on OpenGLES2.0
>
>     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 have Xilinx ZynqMP SoC with MALI 400MP, and I'm running Ubuntu on 
> it. I also have Yocto built rootfs. I've integrated the MALI OpenGLES2 
> library/driver there, and I'm building OSG manually. It fails to 
> compile if I don't add the precision for float & int in shaders. The 
> OSG build configuration is more or less as below (it's for 3.4.0), 
> with some addition to point to EGL/OPENGLES2 libraries and headers:
>
>     ...
>>     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 achieve.
>     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.
>
> If there are already OSG models confirmed to work with OpenGLES2, I'd 
> use those to validate my platform. But, none of examples in 
> OpenSceneGraph-Data shows correct results on my platform (nothing 
> displayed except the glsl_simple.osgt)comparing to results from 
> desktop with OpenGL. Once my platform is confirmed to work, I will be 
> able to focus on debugging the model. With lack of OSG / shader 
> experience, I can't easily tell where the issue comes from, and I'm 
> looking for references for validation.
Can't you try some other GLES applications(plain OpenGL-ES without OSG)  
and check their shader code? I believe there is a problem with your 
system/driver, as there is no need to explicitly issuing the precision 
in normal cases.
All models should work in theory if you have some minimal shader for it.
Out of my head a minimal shader should look like the following. It will 
display a red-colored version of your geometry.

Vertex:
#version 100
attribute vec4 osg_Vertex;
uniform mat4 osg_ModelViewProjectionMatrix;

void main()
{
     gl_Position = osg_ModelViewProjectionMatrix * osg_Vertex;
}

Fragment:

#version 100

void main()
{
     gl_FragColor = vec4(1,0,0,1);
}

Setting this shader to you scene should display everything correct. If 
my code is valid, it should compile without any precision qualifiers.

Cheers
Sebastian

>
> Thanks,
> -hyun
>
>
>>     Thanks,
>>     -hyun
>
>
>     Cheers
>     Sebastian
>>
>>     ------------------------------------------------------------------------
>>     *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
>
>
>
>
> 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/20160314/b1dfa44d/attachment-0003.htm>


More information about the osg-users mailing list