問題タブ [arscnview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scenekit - ARKit で SCNRenderer を使用すると奇妙な結果になる
ARSCNView のレンダリング パス中に作成される深度テクスチャをエクスポートしようとしています。そのために、SCNScene をバックグラウンドでカスタム .xml でレンダリングするコードを作成しましたMTLRenderPassDescriptor
。「GPU キャプチャ ツール」を使用して GPU にバインドされたリソースをトレースすると、 SCNRenderer.renderメソッドでカスタムMTLRenderPassDescriptor
が無視されることがわかりました。
このコードを使用して、SCNScene をオフスクリーンにレンダリングしました。
GPU キャプチャでリソースを確認すると、レンダラーは で説明されていない独自のフレーム テクスチャと深度テクスチャを生成しrenderPassDescriptor
ます。ドキュメントによると、それは奇妙です。また、ARKit セッションなしでこれをテストしたところ、期待どおりに動作しました (レンダラーは、 で説明されているテクスチャ リソースを使用しますrenderPassDescriptor
)。どうすればこれを修正できますか? これは SceneKit のバグですか?
画像 1. GPU キャプチャで、深度テクスチャがブリット パスにリンクされていないことがわかりました。
画像 2. カラー アタッチメント テクスチャ アドレスは 0x144a4f310 です
画像 3. 深度アタッチメント テクスチャ アドレスは 0x144a50050 です
画像 4. render メソッドにバインドされたテクスチャには異なるアドレスがあります
これが最小の作業例です。