我正在开发一款在很多安卓设备上运行良好的游戏(雷克萨斯7、SG王牌、HTC Desire…)。但特别是对SGS1来说,我不能比黑屏更好。
在对整个代码进行了大量研究之后,我认为问题出在我的着色器代码中。编译也可以,link也可以,但是我听说不同gpu之间有些不兼容(例如这里http://www.jpct.net/forum2/index.php/topic,2833.15.html)
以下是着色器代码:
[顶点]
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;
}
也许这里面有明显的问题,即使是很基本的问题?提前谢谢你。
最佳答案
我终于明白了。我有两个问题:
1)powervr似乎不喜欢制服的“lowp”限定词
2)在其他材质球中,我用“vec4”表示vposition,尽管我只按顶点传递2个组件(x,y)。奇怪的是:为什么其他gpu可以处理这样的错误?像马里提供的一个检查器(mali developer.com/developer resources/tools/…)对于powervr来说是非常令人耳目一新的!
关于android - 黑屏SGS1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12251249/