Śledzenie ścieżek jest standardową techniką renderowania fotorealistycznego w czasie rzeczywistym i powinieneś przyjrzeć się w szczególności dwukierunkowemu śledzeniu ścieżek, aby uzyskać efekty takie jak kaustyka, których tak naprawdę nie można uzyskać przy użyciu podstawowego śledzenia ścieżek. Dwukierunkowe śledzenie ścieżki również zbiega się szybciej z prawdą gruntu, jak pokazano na poniższym obrazie:
Również transport świetlny Metropolis (MLT) jest bardziej zaawansowaną techniką śledzenia ścieżki, która zbliża się jeszcze szybciej do prawdy gruntowej poprzez mutowanie istniejących „dobrych” ścieżek:
Możesz także użyć próbkowania ważności w celu szybszej konwergencji, skupiając więcej promieni na kierunkach, które mają większe znaczenie. Tj. Skupiając promienie oparte na BRDF (bardziej w kierunku piku BRDF za pomocą funkcji gęstości prawdopodobieństwa) lub na źródle światła, lub uzyskaj najlepszy z dwóch światów i stosując próbkowanie z wieloma ważnościami.
Chodzi o redukcję hałasu w sposób bezstronny. Istnieją również techniki usuwania szumów w celu dalszego zmniejszenia szumu na renderowanych obrazach.
Myślę, że najlepiej jest najpierw wdrożyć podstawowy wskaźnik ścieżki Monte Carlo z brutalną siłą, aby służyć jako obiektywne źródło odniesienia, zanim przejdziemy do bardziej zaawansowanych technik. Łatwo jest popełniać błędy i wprowadzać promowanie, które pozostaje niezauważone, więc posiadanie prostej implementacji jest dobre, aby mieć je w celach informacyjnych.
Możesz również uzyskać naprawdę dobre wyniki, stosując śledzenie ścieżek do uczestniczących mediów, ale to działa bardzo wolno bardzo szybko: D
Mimo że nie wiedziałem o śledzeniu ścieżki Monte Carlo, kiedy to napisałem, przypadkowo to opisałem. Jak na ironię, śledzenie ścieżki Monte Carlo to odpowiedź, której szukałem w tym czasie.
Naiwne śledzenie ścieżki Monte Carlo polega na ocenie czegoś zwanego równaniem renderowania w celu numerycznego rozwiązania wartości koloru piksela. Pobiera losowe próbki przez losowe drgania w pikselu (istnieją lepsze strategie próbkowania i filtrowanie: Jakie jest podstawowe uzasadnienie antyaliasingu przy użyciu wielu losowych próbek w pikselu? ), A także przez odbijanie się w losowych kierunkach, gdy promień uderza w powierzchnię .
Może to wymagać wielu próbek, aby dać dobre wyniki, a przy niewystarczającej liczbie próbek obraz będzie wyglądał hałaśliwie. Potrzeba 4 razy więcej próbek, aby zmniejszyć hałas o połowę. Czasy renderowania mogą być rzędu godziny za pomocą 8 nowoczesnych rdzeni procesora w celu uzyskania prostej sceny.
Istnieją bardziej zaawansowane techniki śledzenia ścieżki monte carlo, które pozwalają szybciej uzyskać lepsze obrazy, takie jak próbkowanie ważności lub odwracanie obrazu po jego renderowaniu.
Śledzenie ścieżki Monte Carlo może tworzyć fotorealistyczne obrazy i zapewnia wiele zaawansowanych funkcji renderowania tylko dlatego, że jest zgodne z prawami fizyki, a zatem daje realistyczne wyniki.
Możesz przeczytać więcej na ten temat tutaj: http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/
Oto przykładowy obraz, którego renderowanie zajęło około godziny przy użyciu wszystkich 8 rdzeni procesora:
źródło