【发布时间】:2013-09-20 20:48:43
【问题描述】:
我在this question 中寻求有关 OpenGL ES 2.0 问题的帮助。 似乎答案对我来说很奇怪。 因此,我决定提出这个问题,希望能够了解发生了什么。
这是一段错误的顶点着色器代码:
// a bunch of uniforms and stuff...
uniform int u_lights_active;
void main()
{
// some code...
for ( int i = 0; i < u_lights_active; ++i )
{
// do some stuff using u_lights_active
}
// some other code...
}
我知道这看起来很奇怪,但这实际上是解释问题/错误行为所需的所有代码。
我的问题是:为什么当我为 u_lights_active 传入一些大于 0 的值时,循环没有被执行? 当我硬编码一些整数时,例如4、不用统一的u_lights_active,它工作得很好。
还有一点,它只出现在 Android 上,而不出现在桌面上。我使用 LibGDX 在两个平台上运行相同的代码。
如果需要更多信息,您可以查看original question,但我不想在这里复制和粘贴所有内容。 我希望这种保持简短的方法受到赞赏,否则我将复制所有内容。
我期待一个解释:)
谢谢!
【问题讨论】:
标签: android opengl-es-2.0 glsl libgdx vertex-shader