0

何千もの立方体で構成される面を描いています。ただし、正の Z 方向 (光がある場所) を見ていると、低い fps とアーティファクトが発生します。これは、負の Z 方向を見ているときの 1 様子です。これは、正の Z 方向を見ているときの様子です。また、fps が著しく低下します。 1

4

2 に答える 2

3

キューブがレンダリングされる順序に依存している可能性があります。これで、+Z と -Z の見た目に違いがある理由が説明できます。後ろから前にレンダリングすると、すべての立方体のすべてのフラグメントがレンダリングされます。深度テストで前後にレンダリングすると、ほとんどのフラグメントが破棄されます。あなたが見ているアーティファクトに関しては、Zファイティングかもしれませんが、それはロングショットです.

于 2013-10-04T17:32:21.717 に答える
0

このパフォーマンスの低下はどの程度悪いのでしょうか? ジオメトリの Z のみのプリパスを実行し、カラー バッファへの書き込みをスキップする (および非常に単純なパススルー フラグメント シェーダを使用する) 場合、ジオメトリの順序が悪い/ソートされていない状況でパフォーマンスを大幅に向上させることができます。フィルレート制限。ただし、これは複雑なフラグメント処理を行う場合にのみ役立ちます。基本的にすべてを 2 回描画するため、頂点変換のオーバーヘッドが 2 倍になります。立方体のサーフェスを構成することは、大きな平面サーフェスをレンダリングする最も効率的な方法ではないため、状況は頂点境界またはフラグメント境界のいずれかである可能性があります。

私の他の提案は、「数千の立方体」で構成されるシーンのレンダリングについて言及しているので、ボクセルの崩壊に似たものを実装することです。この例の立方体はすべて同じ平面にあるように見えます。このような立方体のコレクションの面を、隣接する立方体を組み合わせた少数の面に簡単に置き換えることができます。Minecraft は、貪欲なメッシュ アルゴリズムを使用して、シーンの動的に更新された部分を定期的に再メッシュすることにより、これを行います。

もちろん、空間分割は別の問題ですが、すでに何らかのシステムが整っていると思いますか?

于 2013-10-04T18:10:02.610 に答える