我有一个嵌入在常规视图控制器中的 GLKViewController,显示我公司产品之一的旋转 3D 模型。我在不同的应用程序中使用相同的代码来显示另一个模型,我对那个没有问题。
出于某种原因,当我在模拟器上运行我当前的应用程序时,我得到了完美的平滑阴影,但是当我在设备上运行时(我已经在 iPad 3 和 iPad 4 上进行了测试),我得到了看起来像细胞的东西-shading,好像光照值更加离散。
真正令人困惑的是,这只发生在设备上运行时,并且只发生在这个特定的模型上,而不是我使用过的任何其他模型。
GLSL 中是否存在可能导致此行为的已知错误?
编辑
有趣的是,在我的调试过程中,如果我改变
gl_FragColor = vec4(ambientColor.rgb + diffuseReflection + specularReflection, 1.0);
至
gl_FragColor = vec4(diffuseReflection, 1.0);
我得到了我想要的输出,但是当我输出每个组件时,其余的组件都显示为黑色,这不应该导致那种奇怪的着色行为。