Jakie są luki w próbkach podczas konwersji skanowania?

9

W tym tutorialu ,

Bardzo często renderowane są trójkąty dzielące krawędzie. OpenGL oferuje gwarancję, że tak długo, jak pozycje wierzchołków wspólnej krawędzi są identyczne, nie będzie żadnych przerw w próbkach podczas konwersji skanowania.

1 Czym dokładnie są luki w próbkach podczas konwersji skanowania?

2 W jakich okolicznościach to się stanie?

3 Czy dzieje się tak, gdy linia przecina środek fragmentu?

AlexWei
źródło

Odpowiedzi:

8

Przykładowe luki pojawią się, jeśli nie zrobisz rzeczy „poprawnie”.

W OpenGL lub D3D, zakładając spójną kolejność nawijania, jeśli masz trójkąty ABC i CBD, to kiedy punkt próbny - czyli test podczas konwersji skanowania w celu ustalenia, czy punkt (odczytany piksel) znajduje się w trójkącie - leży dokładnie na wspólna krawędź BC, wtedy ta próbka będzie należeć do dokładnie jednego z tych dwóch trójkątów.

Pozwala to uniknąć luk i podwójnego wypełnienia. To ostatnie byłoby problematyczne, powiedzmy, przeziernością lub operacjami matrycowymi.

Simon F.
źródło
2
Na przykład dwa trójkąty z dzielonymi krawędziami mogą idealnie dzielić ten sam piksel na dwa, ale implementacja OpenGL gwarantuje, że tylko jeden z trójkątów pokrywa środek piksela. Który jest zależny od implementacji.
Andreas