解决 QCAR 模型贴图 不正确
首先这是android 版的 QCAR
Android使用的opengl es的纹理坐标系跟官方的opengl 纹理坐标系统不一样
官方的opengl es 纹理坐标为左下角是 (0,0) 右上角是 (1,1): 如下图所示
按照上述坐标系统,则纹理坐标数组应该为
private float[] texCoord={
0.0f,1.0f,
1.0f,1.0f,
1.0f,0.0f,
0.0f,0.0f,
};
如果我们使用此纹理坐标数组我们可以发现,出来的图像是上下颠倒的:
因此,我们需要将纹理坐标系统上下颠倒一下,
即我们可以认为纹理坐标系统跟屏幕的坐标系统是一样的,这样在填写纹理坐标数组就毫无鸭梨。
转换后的纹理坐标系统:
转换后的纹理坐标数组
private float[] texCoord={
0.0f,0.0f,
1.0f,0.0f,
1.0f,1.0f,
0.0f,1.0f,
}; //颠倒后的坐标系统
则此时我们可以发现纹理贴图正确显示了:
关于纹理坐标数组中的顺序,则跟你画顶点的顺序有关,在上述例子中,我的顶点坐标数组顺序是左上,右上,右下,左下,同样,在对应纹理坐标数组应该采用这样的顺序。