黑屏与SGS1

时间:2012-09-03 16:16:33

标签: android opengl-es-2.0 galaxy

我正在开发一款在很多Android设备上运行良好的游戏(雷克萨斯7,SG ACe,HTC Desire ......)。但特别是对于SGS1,我不能比黑屏更好。 在对整个代码进行了大量调查之后,我认为该问题位于我的着色器代码中。编译还可以,也可以链接,但我听说不同GPU之间存在一些不兼容性(例如http://www.jpct.net/forum2/index.php/topic,2833.15.html

这是着色器代码:

[VERTEX]

uniform mat4 uMVPMatrix;    // Ortho matrix
attribute vec2 vPosition;   // Vertex position
void main(){
    gl_Position = uMVPMatrix * vec4(vPosition, 0.0, 1.0);
}

[FRAGMENT]

precision mediump float;
uniform lowp vec4 CurColor;
void main(){
    gl_FragColor = CurColor;
}

即使它是非常基本的,也许在某些事情上显然是错误的?提前谢谢。

2 个答案:

答案 0 :(得分:1)

我终于明白了。我有两个问题:

1)PowerVR似乎不喜欢统一

的'lowp'限定符

2)在其他着色器中,我对vPosition有'vec4',尽管我只通过顶点(X,Y)传递2个分量。奇怪的是:为什么其他GPU可以解决这些错误?像mali(malideveloper.com/developer-resources/tools/ ...)提供的检查器对于PowerVR来说非常令人耳目一新!

答案 1 :(得分:0)

以下是一些建议:

  • 尝试查看是否存在任何LogCat错误
  • 查看glGetError()是否返回与0
  • 不同的内容
  • 更改清晰颜色以查看屏幕是否为黑色,如果更改,则您的对象不可见

在尝试其中一些之后评论我。