, OpenGL ( Direct3D!) // , , , .
, GLSL. , , . , .
, , ubershader, , main() // , . , .
#ifdefs main(). , - #defines, Gouraud. #define WATER, , #define DISTORT - , , #define FOG ,...
ubershader, #define glCompileShader.
, . - , - GLSL.
, , GLSL, . ubershader 1, 2,... main(). # 1, , # 2, // , # 3, ... , NOP, .
, , #define, . , , , WATER , , , #define.
, .