3D变换矩阵

平移矩阵:

var xformMatrix = new Float32Array([
        1.0, 0.0, 0.0, 0.0,
        0.0, 1.0, 0.0, 0.0,
        0.0, 0.0, 1.0, 0.0,
        Tx, Ty, Tz, 1.0
    ]);

旋转矩阵:

var xformMatrix = new Float32Array([
       cosB, sinB, 0.0, 0.0,
      -sinB, cosB, 0.0, 0.0,
       0.0, 0.0, 1.0, 0.0,
       0.0, 0.0, 0.0, 1.0
    ]);

缩放矩阵:

    var xformMatrix = new Float32Array([
        Sx, 0.0, 0.0, 0.0,
        0.0, Sy, 0.0, 0.0,
        0.0, 0.0, Sz, 0.0,
        0.0, 0.0, 0.0, 1.0
    ]);

顶点shader:

var VSHADER_SOURCE =
        "attribute vec4 a_Position;" +
        "uniform mat4 u_xformMatarix;" +
        "void main() {" +
            //设置坐标,这里乘法顺序不能乱
        "gl_Position = u_xformMatarix * a_Position;" +
        "} ";

猜你喜欢

转载自blog.csdn.net/heyanru/article/details/84940768