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
现在要执行旋转和缩放,必须将该矩阵乘以相应的旋转和缩放矩阵。这将需要一些矩阵演算和投影几何的基础知识