メインコンテンツまでスキップ

描画順序とソート

ガウシアンのソート方法

GSplatComponent内の個々のガウシアンは、カメラの深度に基づいて奥から手前へとソートされます。このソートは、メインスレッドをブロックしないように、Web Workerで非同期に行われます。計算されたソート順序はその後メインスレッドに渡され、レンダリングのためにGPUにアップロードされます。

注記

ソートが非同期に行われるため、カメラの変換が非常に短期間で大幅に変化した場合、Web Workerが新しいソート順序を再計算するのに時間が必要なため、視覚的な遅延に気づく可能性があります。

複数のGSplatComponent

GSplatComponentは、そのバウンディングボックスに基づいて奥から手前へとレンダリングされ、各コンポーネントのガウシアンはそのコンポーネント内で独立してソートされます。

グローバルソート

PlayCanvas Engineは現在、複数のGSplatComponent間での「グローバルソート」(すべてのコンポーネントのすべてのガウシアンが一緒にソートされる)をサポートしていません。これのサポートは現在開発中です。進捗状況を把握するには、このプルリクエストを購読してください。

デプスバッファに関する考慮事項

GSplatComponentは、レンダリング中にDepth Bufferに書き込みません。この制限は、アプリケーションでDepth Bufferデータの読み戻しや活用に依存する機能を使用できないことを意味します。例えば、通常Depth Bufferを必要とするDepth of Fieldポストエフェクトは、一般的にsplatレンダリングとは互換性がありません。

回避策として、splatのメッシュベースの近似を生成し、それを別のレイヤーでDepth Bufferにレンダリング(framebufferへの書き込みなし)することができます。この手法により、ガウシアンsplatレンダリングの視覚的品質を維持しつつ、深度に依存するエフェクトが可能になります。