Platform SDK: DirectX

テクスチャ アドレッシングにおけるデバイス制限

[C++]

システムでは、一般に 0.0 と 1.0 を含む 0.0 〜 1.0 の範囲外のテクスチャ座標を許可しているが、その範囲からの逸脱がどこまで許容されるかは、ハードウェア制限によって異なることが多い。デバイス機能を取得するとき、レンダリング デバイスは D3DDEVICEDESC7 構造体の dwMaxTextureRepeat メンバでこの制限を知らせる。このメンバの値は、デバイスで許容されるテクスチャ座標の全範囲を示す。たとえば、この値が 128 の場合、テクスチャ座標は -128.0 〜 +128.0 の範囲内で入力しなければならない。この範囲外のテクスチャ座標を渡すことは無効である。テクスチャ座標の自動生成およびテクスチャ座標トランスフォームによって生成されるテクスチャ座標に対しても、同じ制限が適用される。

dwMaxTextureRepeat の解釈は、また、D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 能力ビットによって影響される。このビットを設定した場合、D3DDEVICEDESC7dwMaxTextureRepeat メンバは記述どおりに使用される。しかし、D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE を設定していない場合、テクスチャ反復制限はテクスチャ座標が指すテクスチャのサイズに依存する。この場合、dwMaxTextureRepeat は、カレント テクスチャのサイズ (詳細の最大レベル) によって調整して、有効なテクスチャ範囲を計算しなければならない。たとえば、テクスチャのサイズが 32、dwMaxTextureRepeat 値が 512 の場合、実際に有効なテクスチャ座標の範囲は、512/32 = 16 である。したがって、このデバイスのテクスチャ座標は、-16.0 〜 +16.0 の範囲内になければならない。

[Visual Basic]

システムでは、一般に 0.0 と 1.0 を含む 0.0 〜 1.0 の範囲外のテクスチャ座標を許可しているが、その範囲からの逸脱がどこまで許容されるかは、ハードウェア制限によって異なることが多い。デバイス機能を取得するとき、レンダリング デバイスは D3DDEVICEDESC7 型の lMaxTextureRepeat メンバでこの制限を知らせる。このメンバの値は、デバイスで許容されるテクスチャ座標の全範囲を示す。たとえば、この値が 128 の場合、テクスチャ座標は -128.0 〜 +128.0 の範囲内で入力しなければならない。この範囲外のテクスチャ座標を渡すことは無効である。テクスチャ座標の自動生成およびテクスチャ座標トランスフォームによって生成されるテクスチャ座標に対しても、同じ制限が適用される。

lMaxTextureRepeat の解釈は、また、D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 能力ビットによって影響される。このビットを設定した場合、D3DDEVICEDESC7 のメンバ lMaxTextureRepeat は記述どおりに使用される。しかし、D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE を設定していない場合、テクスチャ反復制限はテクスチャ座標が指すテクスチャのサイズに依存する。この場合、lMaxTextureRepeat は、カレント テクスチャのサイズ (詳細の最大レベル) によって調整して、有効なテクスチャ範囲を計算しなければならない。たとえば、テクスチャのサイズが 32、lMaxTextureRepeat 値が 512 の場合、実際に有効なテクスチャ座標の範囲は、512/32 = 16 である。したがって、このデバイスのテクスチャ座標は、-16.0 〜 +16.0 の範囲内になければならない。