gpt4 book ai didi

java - Android:三星 S2 上的 GLES 2.0 损坏?

转载 作者:太空狗 更新时间:2023-10-29 14:29:12 34 4
gpt4 key购买 nike

我有一些非常简单的着色器代码在 S2 上失败,而且只有 S2。

precision highp float;
varying vec4 v_colour;
uniform mat4 proj_cam;
uniform mat4 trans;
attribute vec4 vp; //vertex xyz from buffer.
attribute vec4 vc; //vertex colour, from buffer. Standard 32bit value.
void main()
{
v_colour = vc;
gl_Position = proj_cam * (trans * vp);
};

precision mediump float;
varying vec4 v_colour;
void main()
{
gl_FragColor = v_colour;
}

在 S2 上,这无法呈现任何输出。如果我删除管道的颜色部分或删除单独的 View 和模型矩阵并将它们组合起来,它就会起作用。更糟糕的是,使用相同的着色器代码仅使用一个有效的矩阵,然后我添加“uniform mat4 trans;”线,但不要使用足以导致渲染失败的线。 GL 输出没有错误。 我在 Java 中执行此操作,我可能会用 C/C++ 重新编码以查看它是否有效,但我认为它不会。

此代码适用于其他手机,包括我的旧 2.2 ZT-180 平板电脑!

我可能要补充一点,有些游戏在我的 S2 上运行严重失败,而其他游戏运行良好。

几年来我一直在编写 GLES 2.0,而这款手机让我感到难过。我已经对它大喊大叫了! ;)

最佳答案

我终于找到了我的错误,我错误地使用了“glBindAttribLocation”。

在使用我多年来编写的旧 C/C++ GLES 2.0 代码作为引用时,我没有注意到我在链接着色器之前一直在调用 glBindAttribLocation。必须在编译之后但在链接之前完成。

在逐行检查我的代码并阅读每个函数的文档后,我发现了这一点。只是为了展示,即使是经验丰富的编码员也会犯错。 :)

如果有就好了。来自 GL 的错误问题是,为什么它在我试过的其他手机上也能用?.......

关于java - Android:三星 S2 上的 GLES 2.0 损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8457535/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com