经过详细研究,发现Android例程中的Displaying Graphics with OpenGL ES其下载的例程OpenGLES.zip中OpenGLES20Complete工程的MyGLRenderer.java里有两处不起眼的小错误:
1. Line 141: "gl_Position = vPosition * uMVPMatrix;"应该为"gl_Position = uMVPMatrix * vPosition;";
2. Line 245: "gl_Position = vPosition * uMVPMatrix;"应该为"gl_Position = uMVPMatrix * vPosition;";
原因:OpenGL使用列矩阵,所以矩阵的乘法采用左乘。
顺带吐槽一下,google你是高科技的行业带头者,咱能不能再严谨一点?这么一点不起眼的小错误,谋害了很多查错的时间啊,大哥~
1. Line 141: "gl_Position = vPosition * uMVPMatrix;"应该为"gl_Position = uMVPMatrix * vPosition;";
2. Line 245: "gl_Position = vPosition * uMVPMatrix;"应该为"gl_Position = uMVPMatrix * vPosition;";
原因:OpenGL使用列矩阵,所以矩阵的乘法采用左乘。
顺带吐槽一下,google你是高科技的行业带头者,咱能不能再严谨一点?这么一点不起眼的小错误,谋害了很多查错的时间啊,大哥~
本文深入分析了Android应用中OpenGLES.zip中的OpenGLES20Complete工程,指出MyGLRenderer.java里的两个小错误,并解释了OpenGL矩阵乘法的正确方式。批评了Google在细节上的疏忽,提醒开发者注意此类问题可能带来的困扰。
3640

被折叠的 条评论
为什么被折叠?



