Android 如何修改从getTransformMatrix()获取的变换矩阵

Android 如何修改从getTransformMatrix()获取的变换矩阵,android,opengl-es,glsurfaceview,Android,Opengl Es,Glsurfaceview,我可以通过getTransformMatrix()从曲面获取变换矩阵(4x4),但我不知道如何设置其比例x,y或轴x,y。我不知道这种情况下的矩阵结构 帮帮我。代码如下: private SurfaceTexture mSurface; private float[] mTransformMatrix = new float[16]; private int mTransformMatrixHandle; public void onSurfaceCreated(GL10 glUnused, E

我可以通过
getTransformMatrix()
从曲面获取变换矩阵(4x4),但我不知道如何设置其比例x,y或轴x,y。我不知道这种情况下的矩阵结构

帮帮我。代码如下:

private SurfaceTexture mSurface;
private float[] mTransformMatrix = new float[16];
private int mTransformMatrixHandle;
public void onSurfaceCreated(GL10 glUnused, EGLConfig config) {
    ...
    mTransformMatrixHandle = GLES20.glGetUniformLocation(mProgram, "textureTransform");

}
public void onDrawFrame(GL10 glUnused) {
    ...
    mSurface.getTransformMatrix(mTransformMatrix);
    //how to set pivot/scale mTransformMatrix
    ...

    GLES20.glUniformMatrix4fv(mTransformMatrixHandle, 1, false, mTransformMatrix, 0);
    ...
}

简短回答:

如果您不想在数学方面花费太多精力,这是可以理解的,并且会节省大量时间,那么您可以使用现有的矩阵库,例如

数学答案:

OpenGL矩阵写入约定为列主顺序。因此,您的16个浮点数组应该对应于此矩阵:

0 4  8 12
1 5  9 13
2 6 10 14
3 7 11 15
现在要执行旋转和缩放,必须将该矩阵乘以相应的旋转和缩放矩阵。这将需要一些矩阵演算和投影几何的基础知识