I’m trying to learn the shading language from “OpenGL Shading language orange book”, but I 've difficulty with understanding the predefined/user-defined/built-in variable functionality.
Regarding the brick example in the book, as far as I can gather, vertex shader intrinsic (predefined) in/out variables have " gl_XXX " prefix in their syntax. “in” variables are provided by pipeline itself and out variables should be supplied by the vertex shader, correct?
But some user-defined variables in program e.g. MVMatrix, MVPMatrix etc… is refered in book as predefined variables, if it’s so why “gl_XXX” prefix is not maintained.
If it’s something else why they are used uninitialized?
But some user-defined variables in program e.g. MVMatrix, MVPMatrix etc… is refered in book as predefined variables, if it’s so why “gl_XXX” prefix is not maintained.
I can’t speak to what the book is talking about, not having read it (I read the specification instead). But I can say that those are not predefined variables as far as GLSL is concerned. Perhaps this is simply a typo in the book, or perhaps they’re using that phrase in a different context (which is misleading and not a good idea, but not strictly erroneous).
Hmm, that’s quite misleading, there is a fully-fledged code for vertex and fragment shader with that syntax. I also have GLSL Quik Reference Guide where depicts the built-in uniforms/functions, VS variables, FS variables etc… and the purpose they are serving is pretty explicit.
Why? If they wrote that GLSL code, then they’re not using built-in variables. So the C/C++ code that uses it must be expecting these uniforms and filling them in with data.
Please, don’t state something that is not written in the book!
OpenGL Shading language is a really great book, and everything is described correctly. But there are a lot of details neglected by beginners.
Built-in variables are referred through the book as special input(4.2.2) and output variables(4.2.5).
Candela, my advice is to find some easy tutorial (like lighthouse3d), and get sense of using shaders. Then go back to Orange book and read it carefully. It is worth reading, but it is hard to understand for beginners.