[osg-users] Running OSG models on OpenGLES2.0
Sebastian Messerschmidt
sebastian.messerschmidt at gmx.de
Mon Mar 14 06:36:32 PDT 2016
Hi Chrisitan,
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
Thanks for the pointer, but I was under the impression this done
automatically by osg when the core profile is used
(setUseVertexAttributeAliasing and setUseModelViewAndProjectionUniforms
on the State).
Anyways, the example illustrates how to traverse a scene to adapt to
modern OpenGL.
Cheers
Sebastian
>
> Christian
>
>
> Hi Sebastian,
>
> Thanks for the reply.
>
> ------------------------------------------------------------------------
> *From:* osg-users [osg-users-bounces at lists.openscenegraph.org
> <mailto:osg-users-bounces at lists.openscenegraph.org>] on behalf of
> Sebastian Messerschmidt [sebastian.messerschmidt at gmx.de
> <mailto: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
>>> <mailto:osg-users-bounces at lists.openscenegraph.org>] on
>>> behalf of Chris Hanson [xenon at alphapixel.com
>>> <mailto: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
>>> <mailto: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
>> <mailto:osg-users at lists.openscenegraph.org>
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> <mailto:osg-users at lists.openscenegraph.org>
> http://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/0092164a/attachment-0003.htm>
More information about the osg-users
mailing list