我可以通过getTransformMatrix()
从表面获得变换矩阵(4x4),但我不知道如何设置比例x,y或设置它的x轴。在这种情况下,我不知道矩阵结构。
帮帮我。这是代码:
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);
...
}
答案 0 :(得分:0)
简答:
如果您不想过多地学习数学,这是可以理解的并且会节省大量时间,您可以使用现有的矩阵库,例如android.opengl.Matrix
数学答案:
OpenGL矩阵编写约定是列主要顺序。所以你的16浮点数应该对应于这个矩阵:
0 4 8 12
1 5 9 13
2 6 10 14
3 7 11 15
现在要执行旋转和缩放,您必须将此矩阵乘以相应的旋转和缩放矩阵。这将获得矩阵演算和投影几何的一些基本知识。