座標系 (Direct3D 10)
Direct3D 10 の座標系は、ピクセルおよびテクセルに関して定義されています。
Direct3D 9 と Direct3D 10 の違い Direct3D 10 では、左上ピクセルの左上隅がレンダー ターゲットの原点として定義されています。 Direct3D 9 では、左上ピクセルの中央がレンダー ターゲットの原点として定義されています。 |
- ピクセル座標系
- テクセル座標系
ピクセル座標系
Direct3D 10 でのピクセル座標系では、レンダー ターゲットの原点が左上隅に定義されています。ピクセル中心は、整数値の位置から (0.5f, 0.5f) だけオフセットされています。
図形 1. Direct3D 10 でのピクセル座標系
Direct3D 9 のピクセル座標系
参考のために、ここで Direct3D 9 のピクセル座標系を示します。このピクセル座標系では、レンダー ターゲットの原点が左上隅から (0.5, 0.5) 離れた、左上ピクセルの中央として定義されています。Direct3D 9 では、ピクセルの中心は整数値の位置となります。
図形 2. Direct3D 9 でのピクセル座標系
テクセル座標系
テクセル座標系は、テクスチャーの左上隅を原点とします。これにより、ピクセル座標系はテクセル座標系とアライメントされているので、スクリーンにアライメントされたテクスチャーは、わずかにレンダリングされます (Direct3D 10 の場合)。
図形 3. テクセル座標系
テクセル座標系
テクスチャー座標は、正規化された数値またはスケーリングされた数値のいずれかで表現され、各テクスチャー座標は、次のように特定のテクセルにマッピングされます。
正規化された座標の場合 :
- ポイントのサンプリング :テクセル # = floor(U × 幅)
- 線のサンプリング :左テクセル # = floor(U × 幅)、右テクセル # = 左テクセル # + 1
スケーリングされた座標の場合 :
- ポイントのサンプリング :テクセル # = floor(U)
- 線のサンプリング :左テクセル # = floor(U - 0.5)、右テクセル # = 左テクセル # + 1
ここで幅はテクスチャーの幅 (テクセル単位) です。
テクスチャー アドレス ラッピングは、テクセル位置が計算された後に発生します。