Urmărirea traseului

Urmărirea traseului

O scenă simplă redată folosind o urmărire a traseului. Un avantaj distinct al acestei imagini este "moaletea" umbrelor și "netezirea" iluminării.







Urmărirea traseului - tehnica de redare în grafica pe calculator. care urmărește să simuleze comportamentul fizic al luminii cât mai aproape posibil de cel real. Traseul traseului este o generalizare a trasării tradiționale a razelor, al cărui algoritm urmărește razele în direcția camerei virtuale prin spațiu; Fasciculul "se învârte" de la obiecte până când este absorbit sau împrăștiat complet. Calitatea imaginilor obținute utilizând metoda urmăririi traseului este de obicei mai bună decât calitatea imaginilor obținute prin alte metode de redare, totuși, trasarea unei căi necesită costuri de performanță mult mai ridicate.

Urmărirea căii este cea mai simplă, cea mai precisă din punct de vedere fizic și cea mai lentă performanță de redare. Urmărirea unei căi într-un mod natural reproduce multe efecte optice greu de realizat sau chiar imposibil de obținut prin alte tehnici de redare: construcția de umbre. adâncimea spațiului descris brusc (adâncimea câmpului englez), mișcarea neclară, caustică. ocluzie ambientală și iluminare indirectă. Implementarea acestor efecte optice prin trasarea traseelor ​​este mult mai ușoară decât utilizarea altor tehnici.

Pe baza preciziei sale și a absenței aproximațiilor și ipotezelor (imparțiale), urmărirea traseului este utilizată pentru a genera imagini, care sunt apoi folosite ca eșantioane comparative pentru a evalua calitatea redării altor algoritmi. Pentru a obține imagini de înaltă calitate generate de trasarea unei căi, trebuie să urmăriți un număr foarte mare de raze; altfel artefactele grafice vor apărea sub formă de zgomot.

Ecuația de randare și aplicarea ei în grafica computerizată a fost prezentată de James Kajiya în 1986 [1]. Această prezentare a fost prima descriere a algoritmului de urmărire a traseului. Mai târziu, în acest an, Lafortune a oferit numeroase îmbunătățiri ale algoritmului, inclusiv prin trasarea bidirecțională a traseului [2].

În lumea reală, multe porțiuni mici de lumină sunt emise de surse de lumină și se propagă de-a lungul liniilor drepte, sub formă de raze, prin intermediul mediului și de la obiect la obiect, schimbându-le culoarea și intensitatea. Această "călătorie" continuă până când razele sunt absorbite de obiecte, inclusiv de obiecte precum ochiul uman sau camera. Acest proces este simulat prin trasarea calea razelor de propagare, cu excepția faptului că razele sunt trasate pe dimpotrivă, de la camera virtuală (observator) la sursa de lumină. Acest lucru se datorează faptului că din acele raze care emană de la sursa de lumină, doar o mică parte intră pe obiectivul camerei virtuale, astfel încât calculul majorității radiațiilor nu afectează imaginea primită de camera virtuală.

Acest comportament este descris matematic în ecuația de randare. Această ecuație de redare încearcă să rezolve algoritmii de urmărire a traseului.

Trasarea traseului nu este o simplă urmărire a razei cu un număr nelimitat de reflexii ale razei (adică, cu adâncime recursivă). În trasarea tradițională a razei, se calculează lumina în momentul intersecției directe a fasciculului cu suprafața difuză. Când trasează o cale, o nouă rază este generată aleatoriu în interiorul emisferei obiectului și apoi trasată până când se intersectează cu sursa de lumină, ceea ce nu se poate întâmpla. Atunci când se urmărește o cale, traseul fasciculului se poate intersecta cu un număr de suprafețe difuze înainte de trecerea cu sursa de lumină.

Un pseudo-cod care implementează urmărirea traseului poate arăta astfel:

În exemplul de mai sus, dacă fiecare suprafață a spațiului închis a radiat și a reflectat (0,5,0,5,0,5), atunci fiecare pixel din imagine va fi alb.







Direcție cu raze bi-direcționale

Integralul pentru un punct poate fi prelevat utilizând două metode independente:

  • Fotografiați razele din sursele de lumină și creați căi în scenă. Calea este întreruptă de un număr aleatoriu de rânduri de trepte. Apoi, lumina este îndreptată spre pixelul proiectat al imaginii rezultate. În timpul acestei metode de redare, sunt create milioane de căi și rezultatele redării căilor care contribuie la memorie sunt stocate în imagine.
  • Se colectează raze dintr-un punct de pe suprafață. O rază trage prin pixelii imaginii și sare pe scenă până când întâlnește o sursă de lumină pe drum. Lumina de la sursa de lumină este apoi trimisă în direcția pixelilor imaginii. Procesul de creare a unei căi se numește "eșantionare". Un punct de suprafață primește de obicei din 800 de mostre (până la 3 mii). Imaginea finală este tradusă utilizând operații aritmetice, nu doar prin însumarea eșantioanelor.

Trasarea cu raze bi-direcționale combină trasarea și adunarea într-un algoritm și aceasta oferă o convergență mai rapidă spre imagine (zgomot mai rapid și mai puțin). Aceste două metode de generare a traseului sunt urmărite independent și apoi începerea traseului traseului este conectată la coada căii traseului. Acesta ia în considerare atenuarea luminii pentru fiecare bounce ray și este stocată în pixeli ai imaginii. Această tehnică pare paradoxal lentă la prima vedere, dar acest lucru se datorează faptului că două modalități sunt luate în considerare simultan. În practică, dimpotrivă, rata suplimentară de convergență a imaginii compensează decelerațiile rezultate din necesitatea de a elibera raze noi și noi.

Pentru a accelera convergența (convergență, convergență) imagini, algoritmi bi-direcționale traseze calea în ambele direcții. În razele forward sunt urmărite de la sursa de lumină, atâta timp cât acestea nu devin atât de slabi încât nu pot fi văzute sau până la toamnă la lentilele camerei virtuale. În direcția opusă, adică în direcția convențională standard, razele sunt urmărite de camera virtuală până când se ciocnesc cu sursa de lumină sau până când numărul reflexiilor lor depășește o anumită limită. Această abordare duce de obicei la o imagine care converge mult mai repede decât folosind o singură direcție.

Wich și Guibas au oferit o descriere mai precisă a traseului bidirecțional [3]:

Aceste metode generează două subcale: una de la sursa de lumină, iar cealaltă de la obiectivul camerei virtuale. Atunci ei <методы> ia în considerare toate căile care sunt obținute prin asocierea fiecărui prefix al unui subcale cu fiecare sufix dintr-un alt subpath. Aceasta duce la o familie de diferite tehnici de eșantionare importante care sunt combinate apoi pentru a minimiza discrepanțele.

Textul original (în engleză)

Aceste metode generează o subpath, una la un moment dat și cealaltă. Acest lucru conduce la o familie de tehnici de eșantionare diferite pentru căi, care apoi sunt combinate pentru a minimiza varianța.

Traseul traseului continuu eșantionează (eșantionarea în engleză a eșantionării) pixeli ai imaginii. Imaginea devine distinsă numai atunci când sunt luate mai multe probe pe pixel, până la 100 de probe pe pixel. În mod tipic, sunt realizate aproximativ 5.000 de eșantioane pentru imagini convenționale și pentru reducerea zgomotului digital la un nivel acceptabil. Cu toate acestea, pentru cazurile patologice, numărul de mostre devine mult mai mare. Procesul de redare poate dura ore și zile, în funcție de complexitatea scenei și performanța hardware-ului și a software-ului. Procesele moderne de procesare grafică promiteau 1 până la 10 milioane de probe pe secundă, ceea ce face posibilă generarea unei imagini relativ liniștite de calitate acceptabilă în câteva secunde sau minute. Zgomotul digital creează o problemă specială pentru animație. creând, ca regulă, un efect nedorit "de granule" al imaginii.

Grupul de metropoli Metropolis transportul ușor schimbă ușor căile de succes urmărite anterior și produce mai întâi cele mai importante imagini de eșantionare. Acest lucru poate reduce zgomotul imaginii și poate reduce numărul de eșantioane.

Este destul de dificil să estimăm corect nivelul de performanță a redării. O abordare este de mostre de numărare (probe) pe secundă și celelalte contorizează numărul de căi care pot fi adăugate la ottrassirovannymi și imaginea pe secundă. Rezultatele acestor metode variază considerabil în funcție de scenă și depind de "adâncimea căii", adică de câte ori este permisă reflectarea razei de la obiect înainte de a fi oprită. Rezultatul măsurării performanței depinde și de hardware-ul utilizat. În cele din urmă, un renderer poate produce o mulțime de probe de calitate scăzută, în timp ce celălalt poate aduce imaginea finală mai repede prin utilizarea unui număr mai mic de probe de înaltă calitate.

Funcțiile distribuției distribuției

Urmărirea traseului

Imaginea funcțiilor bidirecționale de distribuție a dispersiei

Reflectând abilitatea suprafetei - cantitatea de lumină reflectată, direcția și culoarea - sunt modelate utilizând o funcție de distribuție de reflexie bidirecțională. Echivalentul luminii transferate (lumina transmisă prin obiect) este funcția funcției de distribuție bidirecțională. Un traseu de traseu poate profita de funcțiile de distribuție complexe, modelate cu atenție sau calculate, care definesc aspectul ("material", "textura" și "umbra" în ceea ce privește grafica computerizată) a obiectului.







Articole similare

Trimiteți-le prietenilor: