https://jsfiddle.net/sepoto/Ln7qvv7w/2/Umkreisen eines Würfels in WebGL mit glMatrix
I haben eine Basis einen Würfel mit unterschiedlich gefärbten Flächen angezeigt werden eingerichtet. Was ich versuche, ist eine Kamera einzurichten und eine kombinierte Drehung der X-Achse und Y-Achse anzuwenden, so dass sich der Würfel gleichzeitig um beide Achsen dreht. Es scheint einige Probleme mit den Matrizen zu geben, die ich aufgestellt habe, da ich sehen kann, dass das blaue Gesicht nicht ganz richtig aussieht. Es gibt einige Beispiele, wie dies mit älteren Versionen von glMatrix gemacht wird, jedoch funktioniert der Code in den Beispielen nicht mehr, da vec4 in der glMatrix-Bibliothek geändert wurde. Weiß jemand, wie dies mit der neuesten Version von glMatrix gemacht werden kann, da ich ein CDN an die Geige angeschlossen habe?
Vielen Dank!
function drawScene() {
gl.viewport(0,0,gl.viewportWidth, gl.viewportHeight);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
mat4.ortho(mOrtho, -5, 5, 5, -5, 2, -200);
mat4.identity(mMove);
var rotMatrix = mat4.create();
mat4.identity(rotMatrix);
rotMatrix = mat4.fromYRotation(rotMatrix, yRot,rotMatrix);
rotMatrix = mat4.fromXRotation(rotMatrix, xRot,rotMatrix);
mat4.multiply(mMove, rotMatrix, mMove);
setMatrixUniforms();
gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexPositionBuffer);
gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute, triangleVertexPositionBuffer.itemSize, gl.FLOAT, false, 0, 0);
gl.bindBuffer(gl.ARRAY_BUFFER, triangleColorBuffer);
gl.vertexAttribPointer(shaderProgram.vertexColorAttribute, triangleColorBuffer.itemSize, gl.FLOAT, false, 0, 0);
gl.drawArrays(gl.TRIANGLES, 0, triangleVertexPositionBuffer.numItems);
yRot += 0.01;
xRot += 0.01;
}
yu no [lesen Sie die doc] (http://glmatrix.net/docs/mat4.html) ? Der Code, den du gepostet hast, ist eine seltsame Mischung aus alten und neuen glMatrix Code-Stilen, die einfach nur zufällig funktioniert. –
Ich habe die Dokumentation gelesen, da ich neu in der 3D-Programmierung bin, brauchte ich ein bisschen Hilfe, um es richtig zu machen. Es ist wahr in Bezug auf den alten und den neuen Stil. Aus diesem Grund habe ich eine öffentliche Geige geschaffen, um anderen zu verdeutlichen, wie das gemacht wird. – Giuseppe
Mhh, das Dokument für 'fromXRotation',' fromYRotation' oder 'fromZRotation' gibt klar an, dass man die Matrix nicht auf Identität setzen muss und es kein drittes Argument dokumentiert ... also gibt es das. –