Własny silnik graficzny. Część IV: krwawienie kolorów i miękkie cienie.
30.11.2010 - Robert Kraus
Po co właściwie nam to całkowanie? Wyobraźmy sobie, że funkcja nie jest teraz określona na zbiorze, który jest odcinkiem, tylko na zbiorze kierunków rozpinającym półsferę (tak jak na rysunku poniżej). Będziemy teraz chcieli obliczyć całkę z funkcji określonej na takim zbiorze kierunków, czyli objętość pod wykresem tej funkcji.
Teraz zastanówmy się po co nam taka funkcja, która określona jest na takim półsferycznym zbiorze kierunków. Chcemy symulować krwawienie kolorów oraz miękkie cienie. Będziemy to robić poprzez symulację idealnie rozproszonego odbicia światła. W sytuacji (A) na rysunku poniżej widać przykład idealnie rozproszonego odbicia. Wiązka światła trafia w punkt , a następnie rozprasza się równomiernie we wszystkie kierunki po półsferze umiejscowionej w punkcie . W sytuacji (B) z punktu docieramy do punktu i chcemy obliczyć natężenie światła jakie dociera z punktu do punktu (wniosek z sytuacji (A) jest taki, że nie ma znaczenia jaki jest kierunek od punktu do ). Aby to zrobić, musimy najpierw obliczyć sumaryczne natężenie światła jakie dociera do punktu ze wszystkich kierunków po półsferze wokół punktu (na rysunku jest to ten falisty obszar ponad brzegiem półsfery), dokonując tego własnie przez całkowanie stochastyczne.
Spójrzmy jeszcze raz jak wygląda scenariusz obliczania oświetlenia. Startujemy z punktu (będącego kamerą) i trafiamy promieniem w punkt . Chcemy obliczyć natężenie światła, które dociera z punktu do , a więc musimy oszacować poprzez całkowanie stochastyczne natężenie światła jakie dociera do punktu . Losujemy więc z pewnym rozkładem kierunek z półsfery wokół punktu , a następnie dzielimy natężenie światła przychodzące po wylosowanym kierunku przez gęstość rozkładu z jakim losowaliśmy. Aby obliczyć natężenie światła które przychodzi do punktu z wylosowanego kierunku śledzimy promień, trafiamy w punkt , dla którego musimy zrobić to samo co dla punktu .
(4 ocen) |
Copyright © 2008-2010 Wrocławski Portal Informatyczny
design: rafalpolito.com