有人知道为什么SurfaceTexture.getTransformMatrix
将返回透视投影矩阵而不是预期的仿射变换矩阵吗? android.hardware.Camera
API填充了SurfaceTexture的内容。
我正在这样设置纹理:
GLES20.glGenTextures(1,textures,0);
GLES20.glEnable(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textures[0]);
GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,GLES20.GL_TEXTURE_MAG_FILTER,GLES20.GL_LINEAR);
GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,GLES20.GL_TEXTURE_MIN_FILTER,GLES20.GL_LINEAR);
GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,GLES20.GL_TEXTURE_WRAP_S,GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,GLES20.GL_TEXTURE_WRAP_T,GLES20.GL_CLAMP_TO_EDGE);
GLES20.glDisable(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
surfaceTexture = new SurfaceTexture(textures[0]);
我将其分配给摄像机,如下所示:
camera.setPreviewTexture(surfaceTexture);
是否应返回仿射变换矩阵?似乎应该。查看Grafika示例(我基于其代码),其顶点着色器删除了w
组件:
v_CamTexCoordinate = (camTextureTransform * camTexCoordinate).xy;
我想知道我是否丢失了某些东西,或者在我使用的设备(三星Galaxy S7)上未正确实现某些东西?
谢谢!