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 <[email protected]>
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: [email protected]
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
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
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
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org