Re: [osg-users] Problems using shader attributes

2012-07-09 Thread Robert Osfield
Hi Preet,

The OSG provides more than just support for passing data to OpenGL, it
does culling and this requires knowledge of the bounding volume of the
object.  I would recommend sticking with using the standard
osg::Geometry::setVertexArray(..) for passing in the vertex positions
of your data so that the OSG can compute the bounding volumes
automatically for you.

Robert.

On 30 June 2012 08:02, Preet  wrote:
> Hiya.
>
> I'm trying to pass attributes to my vertex shader, but have come
> across several issues.These issues only occur when I use OSG -- if I
> try to do the same thing with straight OpenGL calls, it works fine.
> I've set "setUseModelViewAndProjectionUniforms(true)" and
> "setUseVertexAttributeAliasing(false)". I add vertex attributes to my
> geometry by calling "setVertexAttribArray". I don't explicitly specify
> any other arrays (I don't call "setVertexArray" or anything like
> that).
>
> * Assigning a position attribute to '0' works as expected and my
> geometry shows up. Moving that position attribute to another slot
> doesn't work. I explicitly call "setCullingActive(false)" on my
> geometry and set zNear zFar on my camera but when I try to render the
> scene I get what I think are scene culling related issues:
>
> cull_draw() 0x15cd420
> _clampProjectionMatrix not applied, invalid depth range, znear =
> 3.40282e+38  zfar = -3.40282e+38
> end cull_draw() 0x15cd420
>
>
> * I also tried playing around with a normal attribute. I just take the
> normal and pass it as a varying to the fragment shader where it
> directly sets the fragment color to the value of the normal. I get a
> sane result when I set the normal attribute to slot 1,2 or 6 or 7. If
> I set the normal attribute slot to anything else I get random gray
> shapes obscuring the viewport:
>
> normal attribute set to slot 1: http://i.imgur.com/C5MQ7.png
> normal attribute set to slot 4: http://i.imgur.com/5tGoS.png
> same scene in app that uses straight opengl calls:
> http://i.imgur.com/C5MQ7.png  (note that the normal values are
> different as well, I don't know why this is as I pass in the same
> values to both)
>
> So, does anyone know what's going on? Why can I arbitrarily set
> attributes to whatever slots I want in my 'raw' OpenGL program, but
> not with OpenSceneGraph?
>
>
> I'm using OpenSceneGraph 3.0.1 with an Nvidia card that supports
> OpenGL 4.2 on Linux.
>
>
> Preet
> ___
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Problems using shader attributes

2012-06-30 Thread Preet
-> small edit: the correctly rendered scene with straight opengl:
http://i.imgur.com/gLLdM.png
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Problems using shader attributes

2012-06-30 Thread Preet
Hiya.

I'm trying to pass attributes to my vertex shader, but have come
across several issues.These issues only occur when I use OSG -- if I
try to do the same thing with straight OpenGL calls, it works fine.
I've set "setUseModelViewAndProjectionUniforms(true)" and
"setUseVertexAttributeAliasing(false)". I add vertex attributes to my
geometry by calling "setVertexAttribArray". I don't explicitly specify
any other arrays (I don't call "setVertexArray" or anything like
that).

* Assigning a position attribute to '0' works as expected and my
geometry shows up. Moving that position attribute to another slot
doesn't work. I explicitly call "setCullingActive(false)" on my
geometry and set zNear zFar on my camera but when I try to render the
scene I get what I think are scene culling related issues:

cull_draw() 0x15cd420
_clampProjectionMatrix not applied, invalid depth range, znear =
3.40282e+38  zfar = -3.40282e+38
end cull_draw() 0x15cd420


* I also tried playing around with a normal attribute. I just take the
normal and pass it as a varying to the fragment shader where it
directly sets the fragment color to the value of the normal. I get a
sane result when I set the normal attribute to slot 1,2 or 6 or 7. If
I set the normal attribute slot to anything else I get random gray
shapes obscuring the viewport:

normal attribute set to slot 1: http://i.imgur.com/C5MQ7.png
normal attribute set to slot 4: http://i.imgur.com/5tGoS.png
same scene in app that uses straight opengl calls:
http://i.imgur.com/C5MQ7.png  (note that the normal values are
different as well, I don't know why this is as I pass in the same
values to both)

So, does anyone know what's going on? Why can I arbitrarily set
attributes to whatever slots I want in my 'raw' OpenGL program, but
not with OpenSceneGraph?


I'm using OpenSceneGraph 3.0.1 with an Nvidia card that supports
OpenGL 4.2 on Linux.


Preet
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org