From Page 8 of the document:=====
The directive “
Version 1.10 of the language does not require shaders to include this 
directive, and shaders that#version directive will be treated as targeting 
version 1.10. The behavior of shaders
do not include a 
targeting version 1.10 will not be effected by any changes introduced in 
version 1.20.
=====
You would have thought that a 1.2 compiler would be able to compile all earlier 
version of the language but they decided to implement it such you must tell the 
compile your using 1.2 of the language. 
Also, about the CPP part of my question, I see the shader language supports 
many of these directives.. Is there any way to externally (i.e. in OSG) to set 
a "#define" variable?? For example, With the CPP, I use "cpp -DVariable=10 
infile.txt outfile.txt". And then I'd do a:
    fragProgram->loadShaderSourceFromFile("outfile.txt");
Do I have to create a "#define Variable 10" string and prepend it to my shader 
code (which isn't easy if I use "loadShaderSourceFromFile()"). Is there some 
other way? Anybody use the shader's conditional compile directives?
Paul P.



----- Original Message ----
From: Gordon Tomlinson <[EMAIL PROTECTED]>
To: OpenSceneGraph Users <osg-users@lists.openscenegraph.org>
Sent: Monday, July 7, 2008 5:34:18 PM
Subject: Re: [osg-users] Centroid Varying Shader Variable

And the answer was ?



-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
[EMAIL PROTECTED]
Sent: Monday, July 07, 2008 5:31 PM
To: OpenSceneGraph Users
Subject: Re: [osg-users] Centroid Varying Shader Variable

Never mind.... I guess I found my answers here:
http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf

Paul P.

----- Original Message ----
From: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
To: osg-users@lists.openscenegraph.org
Sent: Monday, July 7, 2008 3:19:12 PM
Subject: [osg-users] Centroid Varying Shader Variable

I'm attempting to define a "centroid varying variable":
<http://www.opengl.org/pipeline/article/vol003_6/>
Why do I need the "#version 120" line?
I send my shader programs through the C-Preprocessor (cpp) before giving
them to OSG and CPP doesn't like this line (clearly it thinks its a command
it should understand).. I assume this line is defining the Shader Version to
use (1.2). If I don't have this line, the shader compiler doesn't like the
"centroid" word.
Setting OSG_NOTIFY_LEVEL seems to report that glslLanguageVersion=1.2 even
when I don't use #version.
Is there some other way to tell the shader compiler/OSG that that the shader
is a 1.2 shader? While I'm at it, does the shader compiler natively support
any CPP directives (i.e. # commands).?
Paul P.


      
_______________________________________________
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


_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
#version 120” is required in any shader that uses version 1.20 of the language. 
... 


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

Reply via email to