我在常规视图控制器中嵌入了一个GLKViewController,显示了我公司产品的旋转3D模型。我在不同的应用程序中使用相同的代码来显示另一个模型,我对此没有任何问题。
出于某种原因,当我在模拟器上运行我当前的应用程序时,我得到了预期的完美平滑阴影,但是当我在设备上运行时(我已经在iPad 3和iPad 4上进行了测试),我得到了什么细胞着色,好像光照值更加离散。
真正的困惑是,这只发生在设备上运行时,而且只发生在这个特定的模型上,而不是我使用过的任何其他模型。
GLSL中是否存在可能导致此行为的已知错误?
修改
有趣的是,在我的调试过程中,如果我改变了
gl_FragColor = vec4(ambientColor.rgb + diffuseReflection + specularReflection, 1.0);
到
gl_FragColor = vec4(diffuseReflection, 1.0);
我得到了我想要的输出,但是当我输出每个组件时,其余组件都显示为黑色,这不应该导致奇怪的着色行为。
答案 0 :(得分:0)
您是否检查了顶点和片段着色器的文件名?
如果您有一个名为“vertexShader.vert”的文件,并尝试使用“VertexShader.vert”(请注意大小写)来引用它,这将在模拟器上运行,但不在设备上。