2

我有一个嵌入在常规视图控制器中的 GLKViewController,显示我公司产品之一的旋转 3D 模型。我在不同的应用程序中使用相同的代码来显示另一个模型,我对那个没有问题。

出于某种原因,当我在模拟器上运行我当前的应用程序时,我得到了完美的平滑阴影,但是当我在设备上运行时(我已经在 iPad 3 和 iPad 4 上进行了测试),我得到了看起来像细胞的东西-shading,好像光照值更加离散。

真正令人困惑的是,这只发生在设备上运行时,并且只发生在这个特定的模型上,而不是我使用过的任何其他模型。

在模拟器中运行 在设备上运行

GLSL 中是否存在可能导致此行为的已知错误?

编辑

有趣的是,在我的调试过程中,如果我改变

gl_FragColor = vec4(ambientColor.rgb + diffuseReflection + specularReflection, 1.0);

gl_FragColor = vec4(diffuseReflection, 1.0);

我得到了我想要的输出,但是当我输出每个组件时,其余的组件都显示为黑色,这不应该导致那种奇怪的着色行为。

4

1 回答 1

0

你检查过你的顶点和片段着色器的文件名吗?

如果您有一个名为“vertexShader.vert”的文件并尝试使用“VertexShader.vert”(注意大写)引用它,这将在模拟器上工作,但在设备上不起作用。

于 2013-03-21T15:44:06.067 回答