我在 WebGL 中创建了一个多维数据集。我有一个动画,但正在努力让它融合在一起。
完整的代码大约是 150 lns 的代码,所以这里有一个工作示例: Working Plunkr Code
这是动画的视频线框图,我正在努力实现: https ://youtu.be/sZeBm8EM3mw
1 - 动画将锚点设置在立方体的左下角。
2 - 动画从锚点缩放立方体。
3 - 动画将立方体从锚点旋转大约一半。
着色器:(顶点)
attribute vec4 coords;
attribute float pointSize;
uniform mat4 transformMatrix;
attribute vec4 colors;
varying vec4 varyingColors;
uniform mat4 perspectiveMatrix;
void main(void) {
gl_Position = perspectiveMatrix * transformMatrix * coords;
gl_PointSize = pointSize;
varyingColors = colors;
}
(分段)
precision mediump float;
uniform vec4 color;
varying vec4 varyingColors;
void main(void) {
gl_FragColor = varyingColors;
}
我正在使用gl-matrix进行矩阵转换
转换将进入 draw fn 并使用 gl-matrix mat4。
function draw() {
var transformMatrix = gl.getUniformLocation(shaderProgram, "transformMatrix");
gl.uniformMatrix4fv(transformMatrix, false, matrix);
// mat4.rotateY(matrix, matrix, 0.01); // This is example of rotations
gl.clear(gl.COLOR_BUFFER_BIT);
gl.drawElements(gl.TRIANGLES, indexCount, gl.UNSIGNED_BYTE, 0);
requestAnimationFrame(draw);
}