- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在开发一款在许多 Android 设备(Lexus 7、SG ACe、HTC Desire ...)上运行良好的游戏。但特别是对于 SGS1,我无法比黑屏更好。在对整个代码进行了大量调查之后,我认为问题出在我的着色器代码中。编译可以,也可以链接,但我听说不同 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);
}
[ fragment ]
precision mediump float;
uniform lowp vec4 CurColor;
void main(){
gl_FragColor = CurColor;
}
也许这里有明显的错误,即使它是非常基本的?提前谢谢你。
最佳答案
我终于明白了。我有 2 个问题:
1) PowerVR 似乎不喜欢 uniform 的 'lowp' 限定符
2) 在其他着色器中,我为 vPosition 使用了“vec4”,尽管我仅通过顶点 (X,Y) 传递了 2 个组件。奇怪的是:为什么其他 GPU 可以处理这样的错误?像 mali (malideveloper.com/developer-resources/tools/...) 提供的检查器对于 PowerVR 来说将是非常令人耳目一新的!
关于android - SGS1黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12251249/
我的应用需要使用罗盘显示设备的当前方位。我正在使用的代码(下方)在我的 Galaxy Nexus 和 Galaxy One 上运行得非常好,但指南针在三星 Galaxy S III 上却疯狂地旋转。我
(此问题与我遇到的编程问题间接相关;如果您认为此问题偏离主题,请告诉我,我将其删除。谢谢)。 我尝试通过反射从我的应用程序中激活 WifiAP,如本论坛某处所述。它适用于多种设备,如 Nexus On
此问题已报告多次,但仍未解决。我在 Samsung's developers site 中阅读了所有与该主题相关的消息/主题。或 in StackOverflow 让我再次用几句话描述整个问题: 开发
我是一名优秀的程序员,十分优秀!