2017-11-27 15 views
1

iPhoneのX(iOS 11.1.2)でMetalレンダラを使用しているときに、SceneKitアプリに厄介な問題があります。アプリは、iOS 9以降のバージョンで同じカラーレンダリングを得るために、plstキーSCNDisableLinearSpaceRenderingがYESに設定されています。また、overlaySKSceneによって追加されたSpriteKit 2Dオーバーレイもあります。iPhone XでのSceneKit + SpriteKitオーバーレイでのピクセルフォーマットエラー

リリースビルドでは、iPhone Xではオーバーレイに奇妙な色が表示されますが、3Dシーンでは奇妙な色が表示されます。デバッグは、エラー・ログとクラッシュを構築します。

- [MTLDebugRenderCommandEncoder validateFramebufferWithRenderPipelineState:]:1196:フレームバッファのピクセルフォーマット(MTLPixelFormatBGR10_XR)と一致しない色アタッチメント0、パイプラインのピクセルフォーマット(MTLPixelFormatRGBA8Unorm_sRGB)をレンダリングするために `アサーションに失敗しました「。

私がこれを理解する方法は、2Dおよび3Dシーンのピクセル形式が異なることです。どのように私はそれを変更することができないのか分かりません。助言がありますか?

エラーは、シミュレータまたは私がテストした他のデバイス(4s、5s、6plus、6s、7、iPad Pro 1G)ではなく、iPhone Xにのみ表示されます。 OpenGL ESレンダラを使用すると、すべてが問題ありません。 SCNDisableLinearSpaceRenderingをオフにすると、Metalレンダラもすべて動作しますが、3Dカラーレンダリングは非常に異なります。

あなたがiPhone Xを持っている場合は)ゲームのテンプレートから新しいプロジェクトを作成し、のviewDidLoad(このコードを追加することでこれを再現することができます。

let overlaySize = CGSize(width: 100, height: 100) 
let overlay = SKScene(size: overlaySize) 
let sprite = SKSpriteNode(color: UIColor.blue, size: overlaySize) 
overlay.addChild(sprite) 
scnView.overlaySKScene = overlay 

私も、この場合は聞いて非常に興味がありますiPhone 8/8 Plusでも発生しますか?

+0

あなたはhttps://stackoverflow.com/questions/39522086/scenekit-how-to-reproduce-ios-9-lighting-color-effect-one-directional-one-ambを見ましたか? – Knight0fDragon

答えて

0

その間、私は、iOS 11でいくつかの他のSceneKitの問題を報告している人たちを見ました。これはiOS 11のバグだと思います。私は1ヶ月前にレーダーをかけましたが、問題は11.2.5にあります。

私の現在の回避策は、MetalではなくOpenGL ESレンダラを使用することです。

関連する問題