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

2016-03-14 Thread Hyun Kwon
Hi Chris,


From: osg-users [osg-users-boun...@lists.openscenegraph.org] on behalf of Chris 
Hanson [xe...@alphapixel.com]
Sent: Monday, March 14, 2016 12:09 PM
To: OpenSceneGraph Users
Subject: Re: [osg-users] Running OSG models on OpenGLES2.0

So, to really help you any further, we'd probably need to see the model and how 
it renders on desktop and GLES2. Otherwise, it's too non-specific of a question 
to have a singular answer.

Remember, desktop FFP GL has a LOT of features, many of which may not be 
emulated by whatever shader you've attached to make GLES2 work.

I agree, but some information can not be disclosed here. So, from what I 
understood so far, if someone like me integrated the OSG layer into some 
OpenGLES system, there's not much way (examples) to validate the platform. In 
that way, I thought I'd be able to isolate problems at least.

Thanks,
-hyun


On Mon, Mar 14, 2016 at 12:48 PM, Hyun Kwon 
<hyun.k...@xilinx.com<mailto:hyun.k...@xilinx.com>> wrote:
Hi,


From: osg-users 
[osg-users-boun...@lists.openscenegraph.org<mailto:osg-users-boun...@lists.openscenegraph.org>]
 on behalf of Chris Hanson [xe...@alphapixel.com<mailto:xe...@alphapixel.com>]
Sent: Monday, March 14, 2016 9:58 AM
To: OpenSceneGraph Users
Subject: Re: [osg-users] Running OSG models on OpenGLES2.0

"The fragment language has no default precision qualifier for floating point 
types.  Hence for float, floating
point vector and matrix variable declarations, either the declaration must 
include a precision qualifier or
the default float precision must have been previously declared. Similarly, 
there is no default precision
qualifier for any of the image types,  or any of the following sampler types in 
any of the languages:"
So basically I always had the luck to have sloppy drivers :-) and one must 
indeed add the precision qualifiers or define the default precision.

  I think the NVidia drivers play sloppy. Others may be the same way.

Thanks for the input. Now it comes back to my original question. I've added 
precision qualifiers to compile shaders, but the models from 
OpenSceneGraph-Data still don't get rendered correctly (similar to the model 
that I have). I can run all of those fine on desktop with OpenGL. Maybe most of 
those are not OpenGLES2.0 compatible. I guess there's some incompatibility 
between pieces.

Thanks,
-hyun

Cheers
Sebastian.


--
Chris 'Xenon' Hanson, omo sanza lettere. xe...@alphapixel.com 
http://www.alphapixel.com/
Training • Consulting • Contracting
3D • Scene Graphs (Open Scene Graph/OSG) • OpenGL 2 • OpenGL 3 • OpenGL 4 • 
GLSL • OpenGL ES 1 • OpenGL ES 2 • OpenCL
Legal/IP • Code Forensics • Digital Imaging • GIS • GPS • osgEarth • Terrain • 
Telemetry • Cryptography • LIDAR • Embedded • Mobile • iPhone/iPad/iOS • Android
@alphapixel<https://twitter.com/alphapixel> 
facebook.com/alphapixel<http://facebook.com/alphapixel> (775) 623-PIXL [7495]


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@lists.openscenegraph.org<mailto:osg-users@lists.openscenegraph.org>
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




--
Chris 'Xenon' Hanson, omo sanza lettere. xe...@alphapixel.com 
http://www.alphapixel.com/
Training • Consulting • Contracting
3D • Scene Graphs (Open Scene Graph/OSG) • OpenGL 2 • OpenGL 3 • OpenGL 4 • 
GLSL • OpenGL ES 1 • OpenGL ES 2 • OpenCL
Legal/IP • Code Forensics • Digital Imaging • GIS • GPS • osgEarth • Terrain • 
Telemetry • Cryptography • LIDAR • Embedded • Mobile • iPhone/iPad/iOS • Android
@alphapixel<https://twitter.com/alphapixel> 
facebook.com/alphapixel<http://facebook.com/alphapixel> (775) 623-PIXL [7495]


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@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


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

2016-03-14 Thread Hyun Kwon
Hi,


From: osg-users [osg-users-boun...@lists.openscenegraph.org] on behalf of Chris 
Hanson [xe...@alphapixel.com]
Sent: Monday, March 14, 2016 9:58 AM
To: OpenSceneGraph Users
Subject: Re: [osg-users] Running OSG models on OpenGLES2.0

"The fragment language has no default precision qualifier for floating point 
types.  Hence for float, floating
point vector and matrix variable declarations, either the declaration must 
include a precision qualifier or
the default float precision must have been previously declared. Similarly, 
there is no default precision
qualifier for any of the image types,  or any of the following sampler types in 
any of the languages:"
So basically I always had the luck to have sloppy drivers :-) and one must 
indeed add the precision qualifiers or define the default precision.

  I think the NVidia drivers play sloppy. Others may be the same way.

Thanks for the input. Now it comes back to my original question. I've added 
precision qualifiers to compile shaders, but the models from 
OpenSceneGraph-Data still don't get rendered correctly (similar to the model 
that I have). I can run all of those fine on desktop with OpenGL. Maybe most of 
those are not OpenGLES2.0 compatible. I guess there's some incompatibility 
between pieces.

Thanks,
-hyun

Cheers
Sebastian.


--
Chris 'Xenon' Hanson, omo sanza lettere. xe...@alphapixel.com 
http://www.alphapixel.com/
Training • Consulting • Contracting
3D • Scene Graphs (Open Scene Graph/OSG) • OpenGL 2 • OpenGL 3 • OpenGL 4 • 
GLSL • OpenGL ES 1 • OpenGL ES 2 • OpenCL
Legal/IP • Code Forensics • Digital Imaging • GIS • GPS • osgEarth • Terrain • 
Telemetry • Cryptography • LIDAR • Embedded • Mobile • iPhone/iPad/iOS • Android
@alphapixel 
facebook.com/alphapixel (775) 623-PIXL [7495]


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@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


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

2016-03-14 Thread Hyun Kwon
Hi Sebastian,

Thanks for the reply.


From: osg-users [osg-users-boun...@lists.openscenegraph.org] on behalf of 
Sebastian Messerschmidt [sebastian.messerschm...@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:

cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_OSG_EXAMPLES=ON \
-DOPENGL_PROFILE=GLES2 \
-DOPENGL_glu_LIBRARY= \
-DGL_HEADER_HAS_GLINT64:INTERNAL=0 \
-DGL_HEADER_HAS_GLUINT64:INTERNAL=0 \
-DOSG_GLU_AVAILABLE=OFF \
-DOSG_GL1_AVAILABLE=OFF \
-DOSG_GL2_AVAILABLE=OFF \
-DOSG_GL3_AVAILABLE=OFF \
-DOSG_GLES1_AVAILABLE=OFF \
-DOSG_GLES2_AVAILABLE=ON \
-DOPENGL_egl_LIBRARY='-lEGL' \
-DOPENGL_LIBRARY='-lGLESv2' \
-DOSG_GL_DISPLAYLISTS_AVAILABLE=OFF \
-DOSG_GL_MATRICES_AVAILABLE=OFF \
-DOSG_GL_VERTEX_FUNCS_AVAILABLE=OFF \
-DOSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE=OFF \
-DOSG_GL_FIXED_FUNCTION_AVAILABLE=OFF \
-DOSG_CPP_EXCEPTIONS_AVAILABLE=OFF \
-DPOPPLER_HAS_CAIRO_EXITCODE=0 \

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.

Thanks,
-hyun

Thanks,
-hyun


Cheers
Sebastian


From: osg-users 
[osg-users-boun...@lists.openscenegraph.org]
 on behalf of Chris Hanson [xe...@alphapixel.com]
Sent: Friday, March 11, 2016 5:27 PM
To: OpenSceneGraph Users

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

2016-03-12 Thread Hyun Kwon
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.

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?

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

Thanks,
-hyun


From: osg-users [osg-users-boun...@lists.openscenegraph.org] on behalf of Chris 
Hanson [xe...@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@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


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

2016-03-11 Thread Hyun Kwon
Hi,

I'm trying to run some complex OSG models from someone else on OpenGLES2. I've 
built the OSG with configuration as described here (slightly different for OSG 
versions): 
http://trac.openscenegraph.org/projects/osg//wiki/Community/OpenGL-ES. I've 
tried different versions of OSG (2.9.6, 3.0.1, 3.4.0) to make sure, and what I 
see is pretty much the same.

I added the precision qualifiers to the OSG model, and shaders compiled. When I 
run, I don't see any notable messages, even with OSG_NOTIFY_LEVEL=DEBUG, but 
the rendered result doesn't look correct: Most of surfaces are transparent.

GraphicsWindowX11::init() - eglInitialize() succeeded eglMajorVersion=1 
iMinorVersion=4
GraphicsWindowX11::init() - window created =1
Warning: detected OpenGL error 'invalid enumerant' at Before 
Renderer::compile

In order to narrow down the problem, I'm trying some examples in 
OpenSceneGraph-Data. I still had to add the precision qualifiers to compile, 
and I don't see anything on the screen with most of examples. The 
glsl_simple.osgt only renders the bottom row of shapes unless I modified the 
vertex shader code manually.

So what I'm not sure is if OSG models are completely independent from API 
(OpenGL, OpenGLES,,,) because I had to add those precision qualifiers to 
compile. Has anyone successfully run the OSG models (from OpenSceneGraph-Data) 
on any OpenGLES2.0 platform without any modification? Any tips or input would 
be appreciated.

Thanks,
-hyun


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@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org