我正在研究一款在很多Android设备(雷克萨斯7,SG ACe,HTC Desire ...)上运行良好的游戏。但特别是对于SGS1,我无法比黑屏更好。 在对整个代码进行了大量调查后,我认为该问题位于我的着色器代码中。编译正常,链接,但我却听到不同的GPU(这里http://www.jpct.net/forum2/index.php/topic,2833.15.html例如)与SGS1的黑色屏幕
这里存在兼容年代shader代码:
[VERTEX]
uniform mat4 uMVPMatrix; // Ortho matrix
attribute vec2 vPosition; // Vertex position
void main(){
gl_Position = uMVPMatrix * vec4(vPosition, 0.0, 1.0);
}
[片段]
precision mediump float;
uniform lowp vec4 CurColor;
void main(){
gl_FragColor = CurColor;
}
也许这件事显然是错误的,即使它是非常基本的?先谢谢你。
我尝试了你的建议,并且:screen is all green。 glGetError()在我的手机(三星Ace:GT-S5830)中返回了我修正的许多错误,但没有出现在SGS1上。这很奇怪! LogCat中没有错误(如果需要,我可以发布样本)。任何其他想法? – Tcheg
我已经尝试了很多东西,并通过一个简单的着色器将我的游戏减少到了最低限度。屏幕总是空的!我想知道GLES20.glEnable(GLES20.GL_TEXTURE_2D)的纹理启用:opengl es 2需要吗?这条生产线能否使整个过程崩溃? – Tcheg
不,这是必要的。当您更改清除颜色时,您的颜色是否会改变? – dragostis