Raxvan ma całkowitą rację, że „tradycyjne” techniki antyaliasingu będą działać w raytracingu, w tym wykorzystujące takie informacje, jak głębokość do antyaliasingu. Na przykład możesz wykonać tymczasowe wygładzanie krawędzi w śledzeniu promieni.
Julien rozwinął drugą pozycję Raxvana, która była wyjaśnieniem supersamplingu, i pokazał, jak to zrobić, wspominając również, że możesz losowo rozmieścić próbki w pikselu, ale następnie wchodzisz do kraju przetwarzania sygnału, który jest bardzo duży głębiej i zdecydowanie tak jest!
Jak powiedział Julien, jeśli chcesz wykonać próbek na piksel, możesz podzielić piksel na równomiernie rozmieszczonych punktów próbki (zasadniczo na siatce) i uśrednić te próbki.NN.N.
Jeśli to zrobisz, nadal możesz uzyskać aliasing. Jest to lepsze niż NIE robienie tego, ponieważ zwiększasz częstotliwość próbkowania, więc będziesz w stanie obsługiwać dane o wyższej częstotliwości (czyli mniejsze szczegóły), ale nadal może powodować aliasing.
Jeśli zamiast tego pobierzesz losowych próbek w pikselu, skutecznie zamieniasz aliasing na szum. Hałas jest łatwiejszy dla oczu i wygląda bardziej naturalnie niż aliasing, więc zwykle jest to preferowany wynik. Uważam, że jest to nawet idealna sytuacja z większą liczbą próbek, ale nie mam na ten temat więcej informacji):N.
Gdy używasz po prostu „zwykłych” liczb losowych, takich jak otrzymywanych z rand () lub std :: uniform_int_distribution, jest to nazywane „białym szumem”, ponieważ zawiera wszystkie częstotliwości, na przykład sposób, w jaki światło białe składa się ze wszystkich innych kolorów (częstotliwości) ) światła.
Użycie białego szumu do losowego losowania próbek w pikselach ma problem polegający na tym, że czasami próbki zlepiają się razem. Na przykład, jeśli uśredniasz 100 próbek w pikselu, ale WSZYSTKIE kończą się w lewym górnym rogu piksela, nie dostaniesz ŻADNEJ informacji o innych częściach piksela, więc ostateczny wynikowy kolor piksela będzie brakowało informacji o tym, jaki powinien być kolor.
Lepszym podejściem jest zastosowanie czegoś zwanego niebieskim szumem, który zawiera tylko komponenty wysokiej częstotliwości (np. Jak światło niebieskie jest światłem wysokiej częstotliwości).
Zaletą niebieskiego szumu jest to, że uzyskuje się równomierne pokrycie piksela, tak jak w przypadku jednolitej siatki próbkowania, ale nadal występuje pewna przypadkowość, która zamienia aliasing w szum i daje lepiej wyglądający obraz.
Niestety, niebieski szum może być bardzo kosztowny do obliczenia, a najlepsze metody wydają się być opatentowane (co do cholery ?!), ale jeden sposób na zrobienie tego, wymyślony przez pixara (i opatentowany też, ale nie w 100% pewny) polega na utworzeniu równej siatki punktów próbki, a następnie losowym przesunięciu każdego punktu próbki niewielką ilość - jak losowa ilość pomiędzy plus lub minus połową szerokości i wysokości siatki próbkowania. W ten sposób otrzymujesz rodzaj próbkowania szumu niebieskiego za całkiem tanią.
Zauważ, że jest to forma próbkowania warstwowego, a także próbkowanie dysku Poissona, które jest również sposobem generowania niebieskiego szumu:
https://www.jasondavies.com/poisson-disc/
Jeśli chcesz wejść głębiej, prawdopodobnie również zechcesz sprawdzić to pytanie i odpowiedzieć!
Jakie jest podstawowe uzasadnienie antyaliasingu przy użyciu wielu losowych próbek w pikselu?
Wreszcie, te rzeczy zaczynają błądzić w sferze śledzenia ścieżki Monte Carlo, która jest powszechną metodą wykonywania fotorealistycznego śledzenia promieni. jeśli chcesz dowiedzieć się więcej na ten temat, przeczytaj to!
http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/