Structure of a shader's code
The shader's text is a C++ file and contains the void main()
function. This function works on GPU and is called once for processing every object (vertex, primitive, or pixel, depending on the shader's type). The main()
function has no parameters. All the necessary parameters such as coordinates, colors, and textures are held by built-in GLSL variables such as gl_Color
and gl_Position
. Also, you can use your own custom parameters passed from your CPU code, such as float time
(see the Passing a float parameter to a shader section).
The simplest code for the fragment shader will look as follows:
#version 120 void main() { gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 ); }
This shader will render everything in the red color. Namely, if you enable the shader and then draw lines, images, and any other objects, then OpenGL will call the shader's main()
function for each drawn pixel, and the shader will set the pixel color to red. Let's study the shader's code in detail.
The...