Higher-Order プリミティブ (Direct3D 9)

Direct3D 9 では、点、線、三角形、およびグリッド プリミティブがサポートされています。 これらは、線形以外の高次補間をサポートするように拡張されています。 三角形と線は空間範囲を持ちますが、これまではどちらも線形補間を使用してレンダリングされていました。 Direct3D 9 では、Direct3D では、より高い順序 (5 次補間まで) を使用したこれらのプリミティブ型のレンダリングがサポートされています。 さらに、新しい四角形プリミティブ型がサポートされるようになりました。 この新しい型は、高次補間でレンダリングすることもできます。 この機能は、主にキャラクターのアニメーションとレンダリングの要件に基づく機能です。 地形や水などの他のサーフェスにも使用できます。

上位のプリミティブは、リスト、ストリップ、ファン、またはインデックス付きメッシュとして API に送信される場合に、高次補間をサポートします。 これは、頂点自体でエンコードされた追加情報を使用して実現されます。 たとえば、法線ベクトルを使用して頂点で接線平面を定義し、3 次補間を有効にすることができます。 ほとんどの実装では、平面三角形へのテセレーションによる高次補間がサポートされています。 テセレーション ステップは、頂点シェーダー ステージの前に論理的に適用されます。 頂点シェーダー API は入力データにセマンティクスを適用しないため、位置を表す頂点ストリーム コンポーネントと、必要に応じて法線ベクトルを識別する特別なメカニズムが提供されます。 他のすべてのコンポーネントは、それに応じて補間されます。

このセクションでは、上位のプリミティブについて説明し、アプリケーションでこれらのプリミティブを使用する方法について説明します。 情報は、次のトピックに分かれています。

解像度の向上による品質の向上

現在のプリミティブは、滑らかなサーフェスを表すのに最適ではありません。 3 次多項式などの高次補間方法を使用すると、曲線図形をレンダリングする場合により正確な計算が可能になります。 これにより、シルエットエッジまたは反射サーフェス照明に表示されるファセットアーティファクトを減らすか排除することで、リアリズムが向上します。 さらに、チップ上でテセレーションが発生しても、テセレーションされた三角形はバス帯域幅に影響しません。 多くの場合、少量のテセレーションを使用すると、パフォーマンスへの影響を最小限に抑えて画質を向上させることができます。

Direct3D 9 は、既存の多角形指向ツールとアート パイプラインによって作成されたコンテンツに解像度の向上を適用する簡単な方法を提供します。 アプリケーションでは、必要なレベルのテセレーションのみを提供し、通常のベクトルを含む標準の三角形構文を使用してデータを送信する必要があります。

Spline-Based ツールからの直接マッピング

現在のオーサリング ツールの多くは、平面三角形メッシュで一般的に提供されるよりも強力なモデリング操作を可能にするために、高次プリミティブをサポートしています。 効率的に使用すると、生成されるパッチの数が妥当になるように、そのようなツールは API によって直接レンダリングできるコンテンツを生成できます。 この要件を満たすために、受信頂点データ ストリームをコントロール ポイントの 2D 配列として解釈し、目的の解像度にテセレーションする新しいエントリ ポイントが追加されました。

頂点パイプライン