Was sind Probenlücken während der Scan-Konvertierung?

9

In diesem Tutorial ,

Es ist sehr häufig der Fall, dass Dreiecke gerendert werden, die Kanten gemeinsam haben. OpenGL bietet die Garantie, dass bei identischer Scan-Konvertierung keine Probenlücken entstehen, solange die gemeinsamen Scheitelpunktpositionen der Kanten identisch sind.

1 Was genau sind Probenlücken während der Scan-Konvertierung?

2 Unter welchen Umständen wird es passieren?

3 Kommt es vor, wenn die Linie die Mitte des Fragments kreuzt?

AlexWei
quelle

Antworten:

8

Beispiellücken treten auf, wenn Sie die Dinge nicht "richtig" machen.

Wenn Sie in OpenGL oder D3D unter der Annahme einer konsistenten Wicklungsreihenfolge Dreiecke ABC und CBD haben, liegt ein Abtastpunkt - das ist ein Test während der Scan-Konvertierung, um festzustellen, ob sich ein Punkt (Lesepixel) innerhalb eines Dreiecks befindet - genau auf dem geteilte Kante BC, dann gehört diese Probe genau zu einem dieser beiden Dreiecke.

Dies vermeidet sowohl Lücken als auch Doppelfüllungen. Letzteres wäre beispielsweise bei Transluzenz- oder Schablonenoperationen problematisch.

Simon F.
quelle
2
Beispielsweise können zwei Dreiecke mit gemeinsamer Kante dasselbe Pixel perfekt in zwei Teile teilen, aber eine OpenGL-Implementierung garantiert, dass nur eines der Dreiecke die Pixelmitte abdeckt. Welches ist implementierungsabhängig.
Andreas