私の会社の製品の 1 つの回転する 3D モデルを表示する通常のビュー コントローラーに埋め込まれた GLKViewController があります。別のアプリで同じコードを使用して別のモデルを表示していますが、問題はありません。
何らかの理由で、現在のアプリをシミュレーターで実行すると、期待どおりに完全に滑らかなシェーディングが得られますが、デバイスで実行すると (iPad 3 と iPad 4 の両方でテストしました)、セルのように見えます。 -照明値がより離散的であるかのようにシェーディングします。
本当の混乱は、これがデバイスで実行しているときにのみ発生し、この特定のモデルでのみ発生し、私が使用した他のモデルでは発生しないことです.
この動作を引き起こす可能性のある GLSL の既知のバグはありますか?
編集
興味深いことに、デバッグ中に変更すると
gl_FragColor = vec4(ambientColor.rgb + diffuseReflection + specularReflection, 1.0);
に
gl_FragColor = vec4(diffuseReflection, 1.0);
目的の出力が得られますが、各コンポーネントを出力すると、残りのコンポーネントはすべて黒で表示されます。これにより、奇妙なシェーディング動作が発生することはありません。