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 →