古いDirect3Dの本は言う
「...フレームあたり 2000 ~ 4000 ポリゴンを表示しながら、ハードウェア アクセラレーションで許容できるフレーム レートを達成できます...」
Direct3D の 1 つのポリゴンとは何ですか? それらは 1 つのプリミティブ (インデックス付きまたはその他) または 1 つの三角形を意味しますか?
古いDirect3Dの本は言う
「...フレームあたり 2000 ~ 4000 ポリゴンを表示しながら、ハードウェア アクセラレーションで許容できるフレーム レートを達成できます...」
Direct3D の 1 つのポリゴンとは何ですか? それらは 1 つのプリミティブ (インデックス付きまたはその他) または 1 つの三角形を意味しますか?
その本は三角形を意味します。そうでなければ、1000 面のポリゴンが必要な場合はどうすればよいでしょうか? フレームごとに 2000 ~ 4000 のこのような形状を実現できますか?
実際には、ポリゴンが三角形ではない場合でも、通常は三角形になるようにテッセレーションされるため、それを三角形にする必要があります。(たとえば、クワッドは 2 つの三角形で構成されるなど)。そのための基本的な三角形分割 (テッセレーション) アルゴリズムは非常に単純です。頂点をループして、3 つの頂点ごとに三角形に変えるだけです。
ここで、「ポリゴン」とは三角形を指します。全て 。ただし、ご指摘のとおり、パフォーマンスを決定するのは三角形の数だけではありません。
重要な問題は次のとおりです。
これらの変数を組み合わせると、パフォーマンスに 2 倍以上の変動が生じる可能性があります。
同様に、アプリケーションが実行されているハードウェアは、現実の世界ではパフォーマンスが 10 倍以上異なる場合があります。2005 年にローエンドだった GPU (または統合グラフィックス プロセッサ) は、意味のあるメトリックで現在よりも 10 倍から 100 倍遅くなります。最先端のGPU。
全体として、2 ~ 4000 個の三角形を使用するという推奨事項は、ばかげて時代遅れであるため、今日では完全に無視する必要があります。今日のローエンドのハードウェアでも、妥当な条件下では 1 フレームに 100,000 個の三角形を簡単にプッシュできます。さらに、今日の視覚的に興味深いアプリケーションのほとんどは、三角形の数ではなく、ピクセル シェーディングのパフォーマンスに支配されています。
現在、良好なトライアングル スループットを達成するための一般的な経験則は次のとおりです。
これらすべてを実行すると、今日のどのマシンでも、数万または数十万の三角形を簡単にレンダリングできるはずです。
このページによると、ポリゴンは Direct3d で n 辺になっています。
C# の場合:
public static Mesh Polygon(
Device device,
float length,
int sides
)
他の人が言ったように、ここでのポリゴンは三角形を意味します。三角形の主な利点は、3 点が平面を定義するため、定義上、三角形が同一平面上にあることです。これは、三角形内のすべてのポイントが、ポリゴン ポイントの線形結合として正確に定義されることを意味します。より多くの頂点は必ずしも同一平面上にあるとは限らず、一意の曲面を定義しません。
グラフィックスよりもメカニカル モデリングの利点は、三角形も変形できないことです。