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

Christian Buchner christian.buchner at gmail.com
Mon Mar 14 05:07:18 PDT 2016


Hi,

I am not sure if the original poster is aware of this, the
osgvertexattributes osg sample code is able to generate shaders from fixed
function pipeline state sets in the scene graph and applies these shaders
to the geometry.

http://trac.openscenegraph.org/projects/osg//browser/OpenSceneGraph/trunk/examples/osgvertexattributes/osgvertexattributes.cpp

Christian

2016-03-14 11:02 GMT+01:00 Sebastian Messerschmidt <
sebastian.messerschmidt at gmx.de>:

> 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>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 listosg-users at lists.openscenegraph.orghttp://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
>
> _______________________________________________
> 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/1b3202cc/attachment-0003.htm>


More information about the osg-users mailing list