我正在研究一款在很多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