Share via


D3DDECLMETHOD

テッセレータによって実行される定義済みの処理である頂点の宣言メソッド (またはテッセレーション時に頂点データに対して実行されるプロシージャ ジオメトリ ルーチン) を定義します。

typedef enum D3DDECLMETHOD
{
    D3DDECLMETHOD_DEFAULT = 0,
    D3DDECLMETHOD_PARTIALU = 1,
    D3DDECLMETHOD_PARTIALV = 2,
    D3DDECLMETHOD_CROSSUV = 3,
    D3DDECLMETHOD_UV = 4,
    D3DDECLMETHOD_LOOKUP = 5,
    D3DDECLMETHOD_LOOKUPPRESAMPLED = 6,
} D3DDECLMETHOD, *LPD3DDECLMETHOD;

定数

  • D3DDECLMETHOD_DEFAULT
    デフォルト値です。テッセレータは、頂点データ (パッチ用のスプライン データ) をそのままコピーします (余分な計算は行いません)。テッセレータを使用する場合、この要素が補間されます。それ以外の場合、頂点データが入力レジスタにコピーされます。入力タイプと出力タイプは、どのような値でもかまいませんが、常に同じタイプでなければなりません。
  • D3DDECLMETHOD_PARTIALU
    矩形パッチまたはトライアングル パッチのポイントで U 方向に接線を計算します。入力タイプは、次のいずれかの値を指定します。
    • D3DDECLTYPE_D3DCOLOR
    • D3DDECLTYPE_FLOAT3
    • D3DDECLTYPE_FLOAT4
    • D3DDECLTYPE_SHORT4
    • D3DDECLTYPE_UBYTE4 出力タイプは、常に D3DDECLTYPE_FLOAT3 です。
  • D3DDECLMETHOD_PARTIALV
    矩形パッチまたはトライアングル パッチのポイントで V 方向に接線を計算します。入力タイプは、次のいずれかの値を指定します。
    • D3DDECLTYPE_D3DCOLOR
    • D3DDECLTYPE_FLOAT3
    • D3DDECLTYPE_FLOAT4
    • D3DDECLTYPE_SHORT4
    • D3DDECLTYPE_UBYTE4 出力タイプは、常に D3DDECLTYPE_FLOAT3 です。
  • D3DDECLMETHOD_CROSSUV
    矩形パッチまたはトライアングル パッチのポイントで 2 つの接線の外積をとることで法線を計算します。入力タイプは、次のいずれかの値を指定します。
    • D3DDECLTYPE_D3DCOLOR
    • D3DDECLTYPE_FLOAT3
    • D3DDECLTYPE_FLOAT4
    • D3DDECLTYPE_SHORT4
    • D3DDECLTYPE_UBYTE4 出力タイプは、常に D3DDECLTYPE_FLOAT3 です。
  • D3DDECLMETHOD_UV
    矩形パッチまたはトライアングル パッチのポイントで U 値と V 値をコピーします。これにより、2D 浮動小数点が生成されます。入力タイプは、D3DDECLTYPE_UNUSED に設定します。出力タイプは、常に D3DDECLTYPE_FLOAT2 です。入力ストリームとオフセットはここでも使用しません (0 に設定する必要があります)。
  • D3DDECLMETHOD_LOOKUP
    ディスプレースメント マップをルックアップします。入力タイプは、次のいずれかの値を指定します。
    • D3DDECLTYPE_FLOAT2
    • D3DDECLTYPE_FLOAT3
    • D3DDECLTYPE_FLOAT4 テクスチャー マップのルックアップには、.x 成分と .y 成分のみが使用されます。出力タイプは、常に D3DDECLTYPE_FLOAT1 です。デバイスは、ディスプレースメント マッピングをサポートしている必要があります。ディスプレースメント マッピングの詳細については、「ディスプレイスメント マッピング (Direct3D 9)」を参照してください。この定数は、N パッチ データのプログラム可能なパイプラインでのみ使用できます (N パッチが有効な場合)。
  • D3DDECLMETHOD_LOOKUPPRESAMPLED
    プリサンプリング ディスプレースメント マップをルックアップします。入力タイプは D3DDECLTYPE_UNUSED に設定する必要があります。ストリーム インデックスとストリーム オフセットは 0 に設定します。この操作の出力タイプは、必ず D3DDECLTYPE_FLOAT1 です。デバイスは、ディスプレースメント マッピングをサポートしている必要があります。ディスプレースメント マッピングの詳細については、「ディスプレイスメント マッピング (Direct3D 9)」を参照してください。この定数は、N パッチ データのプログラム可能なパイプラインでのみ使用できます (N パッチが有効な場合)。このメソッドは、D3DDECLUSAGE_SAMPLE でのみ使用することができます。

解説 

テッセレータは、このメソッドを使用して、テッセレーション時にどのデータを頂点データから生成する必要があるかを判断します。メッシュ データの場合、デフォルト値を使用します。パッチの場合、実装されている他のタイプを使用できます。

頂点データは、D3DVERTEXELEMENT9 構造の配列を使用して宣言します。配列の各要素には、頂点の宣言メソッドを格納します。

通常のメッシュでは、D3DDECLMETHOD_DEFAULT の他にも、N パッチが有効な場合に D3DDECLMETHOD_LOOKUP メソッドと D3DDECLMETHOD_LOOKUPPRESAMPLED メソッドを使用できます。

要件

ヘッダー: D3D9Types.h 宣言