gl FragColor03

gl_FragColor.                                                     terug naar de inleiding

gl_FragColor is een speciale, of gereserveerde, variabele van het type vector4.
gl_FragColor is een 4 dimensionale vector met de kanalen of assen R, G, B en alfa, met waarden tussen de 0.0 en 1.0

gl_FragColor retourneert in de main functie kleur waarden.

Een simpel hello world shader geeft het canvas een kleur. Zie The book of shaders hoofdstuk 2

 

 

 #ifdef GL_ES
 precision mediump float;
 #endif
 
    void main() {
         gl_FragColor = vec4(1.000,0.051,0.926,1.000);
 }

#ifdef (if definded) GL_ES en #endif zijn macro commando's deze beginnen altijd met een # = hashtag

Met de code tussen deze regels wordt hier een global gedeclareerd die van toepassing is op het variabele type float.

precision mediump float = precision medium float, dwz dat alle variabelen in de schets van het type floating point zijn met een middelmatige precisie.
zo heb je ook lowp en hightp
 
vier manieren om het canvas een rode kleur te geven en twee manieren(regel 36, 37 en 38) om het canvas een grijze kleur te geven
 
 
 

// 1) met  de functie red() met een return.
      #ifdef GL_ES  
      precision mediump float;
      #endif
 
      vec4 red(){
         return vec4(1.0,0.0,0.0,1.0);
  }
      void main() {
         gl_FragColor = vec4(red());
}

 
//  2) met een  vec4 color variabele 
 void main() {
      vec4 color = vec4(1.0,0.0,0.0,1.0);
      gl_FragColor = vec4(color);  
}
 
// 3) vec4 samenstellen met vec3
void main() {
      vec4 color = vec4(vec3(1.0,0.0,0.0),1.0);
      gl_FragColor = vec4(color);
}

 
// 4) Nu vec4 samengesteld met vec2 en vec3
     void main() {
           vec4 color = vec4(vec3(vec2(1.0,0.0),0.0),1.0);
           gl_FragColor = color;
  }
 
//5) schets met een grijstint als output
  void main() {
        float c = 0.5;
        gl_FragColor = vec4(vec3(c),1.0);
     // gl_FragColor = vec4(vec3(0.5),1.0);            //  geeft ook de grijze tint
}