私は現在、OpenGLレンダリングエンジンのアップグレードと再構築に取り組んでいます。エンジンは、建築データの大きなシーン(内部の建物)を視覚化するために使用され、オブジェクトの量はかなり大きくなる可能性があります。どの建物でもそうですが、壁には多くの遮蔽物があり、同じ部屋にあるものだけを見ることができます。また、外にいる場合は外装も見ることができます。これは、閉塞カリングおよび錐台カリングによって閉塞されるべき多数の物体を残す。最新の状態でレンダリングのカリングとバッチ処理技術
同時に、レンダリングでバッチ処理できる多くの繰り返しジオメトリと、インスタンス化されたレンダリングでレンダリングできる多くのオブジェクトがあります。
レンダリングのバッチ処理とカリングを最適な方法で組み合わせることは困難です。同じVBO内に多数のオブジェクトをバッチすると、そのバッチのレンダリングをスキップするためにCPU上のオブジェクトを削除することは困難です。同時に、CPU上での間抜けをスキップすると、多くのオブジェクトがGPUによって処理され、表示されません。 CPUをより簡単に取り除くためにバッチ処理をスキップすると、不要なレンダリングコールが大量に発生します。
私は、現代のグラフィックスでこれらの問題がどのように解決されているかについて、既存のテクニックや理論を研究しましたが、具体的な解決策を見つけることはできませんでした。同僚と私が思いついたアイデアは、お互いに比較的近いオブジェクトにバッチを制限することでした。これは、オクトツリーを使用することによって、単純化および最適化することができます。
現代グラフィックスエンジンの最新の状態でシーン管理、カリング、バッチ処理などに使用されるテクニックを指す人はいませんか?
私は、現代グラフィックエンジンの最先端技術に関する知識がないと言って始めましょう。しかし、これは単一の解決策がない問題のように思えます。代わりに、パッチ適用と複数のアプローチを切り替えて、与えられたシナリオで最高の品質/パフォーマンスを提供することで解決できます。圧迫されると、品質と性能は常に相互に排他的です。私は通常、テクスチャ配列やその他のものを使用して、静的アーキテクチャ環境で非常に役立つことができます。 –