[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