Oh yes, Robert,
that's the most obvious and quickest solution, sorry for the silly question!
Once loaded my shader source code from the file, I'll replace all the 
occurrences of "MVP_matrix" with "osg_ModelViewProjectionMatrix", and OSG will 
update it for me during rendering traversal.

Thanks a lot! :)
Gianluca

Da: osg-users [mailto:osg-users-boun...@lists.openscenegraph.org] Per conto di 
Robert Osfield
Inviato: martedì 2 settembre 2014 13:56
A: OpenSceneGraph Users
Oggetto: Re: [osg-users] how to set the model view projection matrix for my own 
vertex shader

Hi Gianluca,
osg_ModelViewProjectionMatrix is the OSG's equivilant to 
gl_ModelViewProjectMatrix, and there is a mechanism in osg::State that can 
replace gl_ModelViewMatrixProjectMatrix usage in shaders with the osg_ 
equivalent at runtime.  There isn't however a general customizable support for 
setting and substituting your own uniforms in this role.
In your own application I'd suggest when you set up your osg::Shader with the 
shader source you replace the MVP_matrix usage with gl_ or osg_ equivalent.
Robert.

On 2 September 2014 10:59, Gianluca Natale 
<nat...@europe.altair.com<mailto:nat...@europe.altair.com>> wrote:
Hi all.
First of all, sorry if mine is a silly question, I'm quite new to using shaders 
in OSG.

My scenario is this:
I have a vertex shader that gets as uniform in-variable the model view 
projection matrix, "MVP_matrix" is the name of that variable in my shader.
The shader is written in GL4.3, so I cannot rely upon the deprecated built-in 
variable gl_ModelViewProjection matrix.
Now, I have to attach such shader in a program that is set in a state set used 
to render my geometry (that state set is attached to the geode that contains my 
drawable, where the geometry is defined).
So, I would like that OSG automatically passes the model view projection matrix 
to my shader during rendering traversal.
I've seen in some OSG code that there is a predefined in-variable called 
"osg_ModelViewProjectionMatrix" that I think is filled by OSG during rendering 
traversal with the current model view projection matrix. Is that correct?
So, should I rely upon it in my shader, basically replacing my "MVP_matrix" 
with "osg_ModelViewProjectionMatrix"?

Further question: unfortunately the shader I have to use is shared among other 
applications in my company, and not all of them use OSG for rendering (some use 
pure OpenGL) :(
So it's likely that I cannot modify it (otherwise I should ask all developers 
to change the name of the in-variable they pass directly to the shader to 
"osg_ModelViewProjectionMatrix").
Hence the question: if I'm forced to use "MVP_matrix", is there a way I can 
tell OSG to set automatically the value of "osg_ModelViewProjectionMatrix" to 
"MVP_matrix" at run-time, i.e. during rendering traversal?

Thanks,
Gianluca


_______________________________________________
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

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

Reply via email to