标签:java opengl-es opengl-es-2-0
我开始绘制Quad,但是当我开始使用Vertices时,我发现X坐标被翻转了.下面是一张图片来说明我的意思:
这是我的顶点 – 指数和纹理坐标,我没有必要显示.
static final int COORDS_PER_VERTEX = 3;
static float positionCoords[] = {
-0.5f, 0.5f, 0.0f, // top left
-0.5f, -0.5f, 0.0f, // bottom left
0.5f, -0.5f, 0.0f, // bottom right
0.5f, 0.5f, 0.0f }; // top right
static final int COORDS_PER_TEXTURE = 2;
static float textureCoords[] = {
0.0f, 0.0f,
0.0f, 1.0f,
1.0f, 1.0f,
1.0f, 0.0f, };
private final short indices[] = { 0, 1, 2 };
这是我更改投影和查看矩阵的地方.
public void onSurfaceChanged(GL10 naGl, int width, int height)
{
Log.d(TAG, "GL Surface Changed - Setting Up View");
GLES20.glViewport(0, 0, width, height);
float ratio = (float) width / height;
Matrix.frustumM(ProjectionMatrix, 0, -ratio, ratio, -1, 1, 3, 7);
Matrix.setLookAtM(ViewMatrix, 0, 0, 0, -3, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
}
为什么会被“倒退”.我还认为我的相机可能在物体后面,因此如果我在物体后面,那么在三维空间中将是正面的.
解决方法:
你确实是从背面看物体.
你的lookAt函数将目光放在(0,0,-3),lookAt指向(0,0,0).默认情况下,负z轴指向屏幕,但您从反方向(朝向正z轴)查看它.
您应该注意(0,0,3)朝向(0,0,0)以获得您期望的视图.
您可能会发现红皮书的this chapter内容丰富.
标签:java,opengl-es,opengl-es-2-0 来源: https://codeday.me/bug/20190530/1182162.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。