11

レンダリング時に常にこのメソッドを使用する必要がありますか?悪いグラフィックカードでは遅くなりますか?

最終結果にカリングされた面があまりない場合は、この方法を使用する必要がありますか?

4

3 に答える 3

22

すべてのモデルが正しく定義されている場合(頂点、一貫した頂点ワインディング)、カリングによってパフォーマンスが低下することはなく、ほとんどの場合、パフォーマンスが向上します。

カリングを無効にして、立方体をレンダリングしていると想像してください。立方体の背面(反対側)の面は、反対側を向いてレンダリングされ、選択した背面のマテリアル属性が適用されます。次に、立方体の前面の面がレンダリングされます。レンダリングされたばかりの背面は立方体の内側であるため、前面によって100%遮られます。

立方体の向きが異なる場合、前面が最初にラスタライズされる可能性がありますが、背面は引き続き処理され、フラグメントはzバッファによって拒否されます。

最終結果:必要な数の2倍のフラグメントをラスタライズしました。これは、多数のポリゴンや複雑なピクセルシェーダーで大きな問題になります。フェイスカリングを使用すると、表示されないことがわかっているフェイスのラスター化を完全に回避できます。

ポリゴン数が最大100,000のキャラクターモデルを使用している場合、フェイスカリングにより、ピクセルハードウェアがフレームごとに実行する必要のある作業量が半分になります。大きなサーフェスシェーダーがある場合、これは大きな節約になります。

小さなモデルでシェーダーを使用していない場合、最近ではカリングは重要ではありません。ただし、とにかく有効にすることをお勧めします。

于 2010-03-06T18:07:05.437 に答える
6

フェイスカリング(通常はバックフェイス)を有効にすると、レンダリングパフォーマンスに大きな影響があります。

ここで、答えられるべき質問は、「なぜデフォルトでカリングが有効になっていないのか、またはなぜ常に使用されないのか」です。カリングを有効にすることが可能かどうかを決定するいくつかの要因があります。1つは、レンダリングされるモデルとその表示方法です。

モデル内のすべてのポリゴンについて、前面または背面のいずれかの面のみが表示されている場合(モデルをすべての可能な角度から表示した場合)、もう一方の面をカリングできます。

例:「立方体」の場合、内側から見ても外側から見ても、回転すると、立方体を構成する6つのポリゴンごとに片側しか見えません。

別の例:私のSea-Wars(3d)ゲームのような「船の帆モデル」では、船のモデルの帆はいくつかの平らなポリゴンで構築されたサーフェスです。ボートが水中を動き回ると、帆の両側が見えます。この場合、どちらかの面をカリングすることは望ましくありません。

したがって、キューブのセマンティクスに従うシーン内のすべてのモデルに対してカリングを有効にし、他のすべてのモデルに対して無効にすることができます。

PS Face Cullingは、可能な限り使用する必要があります。

于 2011-01-15T00:25:37.867 に答える
0

それはあなたがレンダリングしているものに依存します。一般に、カリングが望ましいです。私がそれを使わないと想像できる唯一の理由は、目に見える裏面を持つモデルをレンダリングすることです。カリングが望ましくない可能性がある別のシナリオは、頂点が間違った順序で定義されている、モデル化が不十分なモデルである可能性があります。

于 2010-03-06T17:43:36.910 に答える