Project-VolVisWeb

initShader()

Wo wird diese Funktion aufrufen?

   function initShader()
   {
      var fragmentShader = getShader("volren-frag-shader");
      var vertexShader = getShader("volren-vrtx-shader");

      shader = gl.createProgram();
      gl.attachShader(shader, vertexShader);
      gl.attachShader(shader, fragmentShader);
      gl.linkProgram(shader);

      if (!gl.getProgramParameter(shader, gl.LINK_STATUS))
         alert("Could not create shader program!");

      gl.useProgram(shader);

      // vertices
      shader.vertexPositionAttribute = gl.getAttribLocation(shader, "aVertexPosition");
      gl.enableVertexAttribArray(shader.vertexPositionAttribute);

      // tex coords
      shader.textureCoordAttribute = gl.getAttribLocation(shader, "aTextureCoord");
      gl.enableVertexAttribArray(shader.textureCoordAttribute);

      // combined modelview projection matrix                        
      shader.mvpMatrixUniform = gl.getUniformLocation(shader, "mvpMatrix");

      // alpha uniform for blending
      shader.alphaUniform = gl.getUniformLocation(shader, "uAlpha");
   }

In der Initialisierung der Shader werden zuerst die zuvor im Abschnitt <script id=“volren-vrtx-shader” type=“x-shader/x-vertex”> bzw. <script id=“volren-frag-shader” type=“x-shader/x-fragment”> festgelegten Vertex- und Fragment-Shader geholt und als shader-Programm gespeichert. Die in den Shadern referenzierten Variablen aVertexPosition, aTextureCoord, mvpMatrix sowie für das Blending uAlpha werden der shader-Programm-Variable mitgeteilt.

Für die Implementierung der Shader wird auf die Vorlesung Computergrafik (ff.) verwiesen.
webGLStart bearbeitet als nächstes die checkGUI-Funktion

initBuffers | | checkGUI

Options: