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 →