隣接する三角形がラスタライズされたときに重複しないのはなぜですか?


11

次のnoobの質問についてはお詫び申し上げます。満足のいく答えがどこにも見つからないだけです...

2つの三角形で構成される単純な軸に位置合わせされた四角形をレンダリングするとき、それらの三角形が交わる対角エッジに目に見えるアーチファクトがない理由がわかりません。それらのピクセルのいくつかは両方の三角形にある必要がありますよね?したがって、私のフラグシェーダーが常に部分的に透明な色(50%の黒など)を放出する場合、結果の四角形に濃い対角線が表示されてはいけませんか?

明らかに、これがコード化する必要のある本当の問題ではないのは素晴らしいことですが、なぜそうならないのか理解できません。これが常にうまくいくのはどのGPUマジックですか?

回答:


10

これは、スキャン変換中のサンプルギャップとは何ですか?で説明した問題と同じです。

簡単に言うと、少なくとも大部分のハードウェアシステムでは、ラスタライズは各ピクセルの単一の「微小」ポイントでテストして、そのピクセルが特定の三角形の内側にあるかどうかを判断します。

サンプルポイントが正確にエッジ上にある場合、追加のタイブレイクルール(多くの場合「フィルルール」と呼ばれる)が機能します。通常、これらは、たとえば、三角形の上端/左端**のエッジポイントのみを「内側」と見なすことと同等のものになります。

**他のルールが利用可能です;-)


ええ、私はただその答えを探していました
joojaa

1
ブラックブックから該当の通路:jagregory.com/abrash-black-book/...
bblack

どうもありがとう!これはちょっと理にかなっていて、そのブラックブックも素晴らしいリソースのように見えます
Reuben Scratton
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.