次の方法で共有


ラスター化ルール (Direct3D 9)

頂点に指定されたポイントが、画面上のピクセルと完全に一致していないことがあります。この場合、Direct3D ではラスター化ルールを使用して、どのピクセルを指定された三角形に適用するかを決定します。

  • 三角形のラスター化ルール
  • ポイントとラインの規則
  • ポイント スプライト規則

三角形のラスター化ルール

Direct3D では、ジオメトリを塗りつぶすのに、左上からの塗りつぶし規則を使用します。これは、GDI および OpenGL で三角形に対して使われているのと同じ規則です。Direct3D では、ピクセルの中心点ははっきりとしたポイントで示されます。中心点が三角形の内部にある場合、ピクセルは三角形の一部になります。ピクセルの中心点は、整数の座標にあります。

Direct3D が使用する三角形のラスター化規則に関するここでの説明は、すべての利用できるハードウェアに適用される訳ではありません。これらの規則の実装において、多少の違いが確認されることもあります。

次の図は、左上隅が (0, 0) にあり、右下隅が (5, 5) にある矩形を示したものです。この矩形では、想定通りに 25 ピクセルが塗りつぶされます。矩形の幅は、右から左を引いた数となっています。高さは、下から上を引いた数となっています。

Numbered square divided into six rows and columns

左上からの塗りつぶし規則では、上とは、水平方向のスパンに対する垂直位置を表しています。 また、左とは、スパン内でのピクセルの水平位置を表しています。端は水平でない限り、上端にはなり得ません。通常、ほとんどの三角形には右端と左端のみがあります。

Numbered square containing two triangles

左上から塗りつぶし規則は、三角形がピクセルの中心点を通過した場合に、Direct3D が行う動作を決定します。次の図は、(0, 0)、(5, 0)、(5, 5) と (0, 5)、(0, 0)、(5, 5) の 2 つの三角形を示しています。この場合、最初の三角形では 15 ピクセル (ブラックで表示)、もう一方の三角形では 10 ピクセル (グレー表示) となります。なぜなら、最初の三角形の左端を共有しているからです。

Numbered square containing diagonal line

左上隅が (0.5, 0.5) で、右下隅が (2.5, 4.5) の矩形を定義する場合、この矩形の中心点は (1.5, 2.5) になります。Direct3D ラスタライザーがこの矩形をテッセレーションする場合、各ピクセルの中心点は確実に 4 つの三角形の内部に置かれるため、左上からの塗りつぶし規則は必要ありません。次の図は、これを示したものです。矩形のピクセルは、三角形を示すようにラベル付けされています。

Numbered square containing rectangle divided into four triangles

前の例でこの矩形を移動させる場合、左上隅 (1.0, 1.0)、右下隅 (3.0, 5.0)、中心点は (2.0, 3.0) にあるため、左上からの塗りつぶし規則が適用されます。次の図に示されているように、この矩形のほとんどのピクセルは、2 つまたはそれ以上の三角形の境界をまたいでいます。

Numbered square containing rectangle divided into four triangles

どちらの矩形であっても、同じピクセルが影響を受けます。

Numbered square containing rectangle divided into four triangles

ポイントとラインの規則

ポイントはポイント スプライトと同様にレンダリングされます。これはどちらも、スクリーンにアライメントされた四辺形としてレンダリングされるため、ポリゴン レンダリングと同じ規則が使用されます。

非アンチエイリアスが適用されたラインのレンダリング規則は、GDI ラインに対する規則とまったく同じです。

アンチエイリアス処理されたライン レンダリングについては、「ID3DXLine」を参照してください。

ポイント スプライト規則

ポイント スプライトとパッチ プリミティブは、プリミティブが最初にテッセレートされて三角形になり、その結果として三角形がラスター化されるのと同様に、ラスター化されます。詳細については、「ポイント スプライト (Direct3D 9)」を参照してください。