Zrozumienie rasteryzacji i algorytmu malarza może pomóc.
Jednym ze sposobów renderowania grafiki wektorowej (grafiki zdefiniowanej przez wielokąty zamiast pikseli) na piksele jest rasteryzacja wielokątów podczas działania algorytmu malarza.
Algorytm malarza jest procesem oddolnym, w którym najpierw odkładasz tło, a następnie rysujesz na nim każdą warstwą koloru, aż dojdziesz do górnej warstwy.
Składając warstwę, zwracasz uwagę na jej pokrycie (zwykle przechowywane w dodatkowym kanale, kanale alfa) i używasz jej do mieszania dodanego koloru z tym, co już jest.
Jeśli twoja nowa warstwa obejmuje piksel o 50%, a jest niebieski, uśredniasz bieżący kolor tego piksela za pomocą niebieskiego i rysujesz go tam.
Sprawy stają się nieco bardziej skomplikowane, jeśli tworzysz obraz z przezroczystością, ale nie zasadniczo.
Rasteryzacja to proces przekształcania wielokąta w piksele. W tym miejscu ustalamy, ile wielokąta pokrywa dany piksel za pomocą algebry, a następnie obliczamy wielkość pokrycia.
Jeśli masz dwie krawędzie wielokąta, które są zbieżne - dokładnie jedna nad drugą - ale obie pokrywają dany piksel w połowie, problem może się zdarzyć.
Załóżmy, że dolny wielokąt jest czerwony, a górny niebieski, a tło białe.
Najpierw malujemy na czerwono. To miesza się z białym, co prowadzi do 50% białego 50% czerwonego.
Następnie malujemy niebieski. To miesza się z 50% białym 50% czerwonym i otrzymujemy 25% białego 25% czerwonego 50% niebieskiego. To samo dzieje się, gdy czerwony i niebieski spotykają się na środku lub jeśli niebieski całkowicie pokrywa czerwony.
Ale „w rzeczywistości” niebieski wielokąt całkowicie przykrył czerwony, więc dlaczego go widzimy? Ponieważ algorytm zapomina o szczegółach pozycjonowania subpikseli.
Tak długo, jak istnieje 100% pokrycia jednego wielokąta, nie stanowi to problemu.
Ten problem nie jest fundamentalny. Możesz wykonywać renderowanie wielokątów z podejściem podobnym do śledzenia promieni (w przypadku nadmiaru renderowania o współczynnik N ^ 2 w punktach) lub nawet podejściem czystym wektorem (w którym odejmujesz kształty blokujące od geometrii kształtów pod je, odcinając je). W żadnym przypadku „ukryte” kolory nie przedostają się do obrazu wyjściowego.
Algorytm malarza to nie jedyny przypadek, przez który może przeciec „ukryta” geometria. Jeśli drukujesz na nieprzezroczystych mediach, czasami warstwy kolorów nie są idealnie wyrównane. Tak więc dolne warstwy przeciekają, gdy górna warstwa powinna całkowicie je przykryć.
Ponieważ nie wiesz, jak zostanie wyprowadzony obraz wektorowy, takie wycięcia pozwalają tworzyć obrazy, które są bardziej odporne na niedoskonałe techniki drukowania / wyświetlania.