ray metoda de urmărire a fost dezvoltat la începutul anilor '80 și folosit pentru a crea imagini realiste de înaltă calitate, care nu sunt în timp real. De exemplu, construcția de scene de pe o mașină cu un procesor 80286 durează mai multe zile sau chiar săptămâni. In ciuda acestei etape de viteză lentă, calitatea imaginii a fost cât mai aproape de realitate. înapoi metoda ray tracing permite obținerea unor efecte cum ar fi reflexie, refracție și umbrirea, etc. Avantajul acestei metode constă și în faptul că este posibil să se lucreze cu scene care nu sunt dați set de triunghiuri pentru a aproxima suprafețele netede, și, de fapt, aceste suprafețe de ei înșiși în formă matematică. Astfel, suprafața de formare a imaginii astfel problema poate fi rezolvată exact, nu aproxima ca în cazul în care o astfel de suprafață are un set de triunghiuri aproximat.
Înainte de descrierea metodei de urmărire a razelor inverse, ia în considerare modul în care se obține imaginea în lumea reală atunci când te uiți la omul lui. Să presupunem că avem o scenă simplă constând dintr-o sferă și un cuboid (fig. 1). De asemenea, să nu fie o sursă de lumină. Luați în considerare lumina de la această sursă ca un flux de fotoni. Având în vedere că sursa de lumină este un punct, fluxul fotonic se propagă de la ea în mod uniform în toate direcțiile. Presupunem că mediul în care fotonii sunt distribuite pe sursa de lumină m este uniformă, astfel încât fotonii muta rectiliniu și cu o viteză constantă. Luați în considerare în cazul în care calea de fotoni blochează orice obiect, cum ar fi o sferă. O parte din fotonii reflectate din sfera și își schimbă direcția. O parte din fotonii pot trece prin sfera, în cazul în care este transparent (flux fotonic refractată). După un anumit număr de reflecții și refracții de o mică parte a fluxului fotonic devine în ochii omului, formând astfel o imagine. Un astfel de model de propagare a luminii ar putea fi construit pe computer, dar faptul că este doar o foarte mică parte a fluxului fotonic din original intră în ochiul uman. Astfel, pentru construirea de imagini de înaltă calitate ar trebui să traseze calea unui număr foarte mare de fluxuri de fotoni, și doar nebolshre numărul lor ar avea un impact asupra imaginii rezultate, iar cele mai multe dintre fotonii nu ar fi lovit un om în ochi și calculele făcute de ei au fost în zadar. Acest model se numește directă ray tracing imagistica. Spre deosebire de aceasta, în urmărirea razelor inverse ia în considerare numai acele raze (fotoni de flux), care se încadrează în mod evident în ochii omului. Să presupunem că aparatul este utilizat, care este închisă pe toate laturile cutiei, din care un perete se face deschidere mică și pe partea opusă aceasta există un ecran (Fig. 2) pentru imagini. Raze de lumina pătrunde prin gaura, formează o imagine pe ecran.
În simulare, situația de pe ecranul computerului este ecranul monitorului. Beam implicat în formarea unei imagini este realizată din punctul de a vedea prin pixelii ecranului, pentru care, la momentul în care se face de calcul de culoare. În acest scop, fasciculul poate fi luat în considerare trei cazuri:
Beam se intersectează cu unul din obiectele din scena. În acest caz, culoarea unui anumit pixel este determinată de culoarea obiectului în punctul de intersecție cu grinda.
Fasciculul intră sursa de lumină. În acest caz, culoarea pixelilor este complet determinată de culoarea sursei de lumină.
Beam cu nimic, a trecut și nu se încadrează într-una dintre sursele de lumină. Apoi, culoarea pixel este determinată de caracteristicile mediului și, de regulă, culoarea pixelului este constantă.
În primul caz, pentru a determina culoarea obiectului în punctul de intersecție sa se intample aveți nevoie pentru a determina direcția din care ar veni la energia luminoasă. Pentru a face acest lucru, puteți petrece încă două grinzi: lumina reflectată și refractată și de a determina energia pe care o generează la un moment dat al obiectului. Aceste două grinzi pot de asemenea interfera cu unele dintre obiectele din scena. Astfel, un algoritm pentru construirea imaginii folosind urme de raze înapoi este recursiv. Energia adusa de razele reflectate si refractate depinde de proprietățile de suprafață de la acel moment. De exemplu, suprafața poate fi oglindită și de a reflecta complet toate razele incidente pe suprafața sa - în acest caz, culoarea obiectului la un anumit punct va fi determinat numai energia luminoasă adusă de fasciculul reflectat. Pe de altă parte, obiectul poate fi transparent, atunci culoarea obiectului la un anumit punct este determinată nu numai de energia fasciculului reflectat, dar energia fasciculului refractate. Astfel, pentru o descriere a ceea ce fracțiune din energia face ca razele reflectate și refractate fasciculului în culoarea obiectului la un anumit punct poate folosi coeficienți reflectate și refractate. Obiectul poate avea, de asemenea, o altă proprietate - difuze de reflecție. În difuză de lumină la intrarea reflecție într-un punct al obiectului este împrăștiată în toate direcțiile cu aceeași intensitate și iluminarea obiectului în acest moment depinde numai de raportul suprafață a obiectului vizibil de către observator, și pe care razele pot fi reflectate și care sunt absorbite de obiect (culoarea intrinsecă a obiectului ).
Se ridică întrebarea, cum să setați iluminarea unui obiect într-un anumit punct? În acest scop, trebuie remarcat faptul că lumina poate fi considerată numai ca de exemplu un flux de fotoni, dar, de asemenea, ca o undă electromagnetică de o anumită lungime. Dar fascicul de lumină arbitrară poate consta dintr-un set de unde electromagnetice de lungimi diferite. Mai mult decât atât stabilit că fasciculul de lumină de o culoare arbitrară poate fi dată un număr infinit de seturi de unde electromagnetice de lungimi diferite. Astfel, nu există nici o cale pentru o anumită culoare definesc în mod unic un set de valuri pe care le constituie. Cu toate acestea, culoarea poate fi reprezentat ca o combinație a trei dintre unde electromagnetice cu o lungime corespunzătoare respectiv pur roșu, verde și albastru. Prin urmare, în descrierea care urmează, iluminarea va fi prevăzută cu vectorul tridimensional coordonate depozitele valuri corespunzătoare de culorile roșu, albastru și verde, precum și cu alte cuvinte, coordonatele vectorului va reprezenta modelul de culoare RGB, deoarece acest model este utilizat pentru a reprezenta culoarea pixelilor de pe ecran.
Pentru a construi o imagine realistă ar trebui să fie, de asemenea, remarcat faptul că propagarea luminii într-un mediu poate avea loc cheltuieli de proprietățile sale de atenuare ale mediului (mediul de lumina este absorbită). Mai mult decât atât, această atenuare este mai mare, cu atât mai mare distanta un fascicul de treceri ușoare.
Pentru a simula propagarea luminii pe un calculator și pentru a simplifica calculele, vom introduce unele restricții pe scena utilizate:
Toate sursele de lumină, presupunem punct.
Dependența absorbția fluxului luminos al lungimii de undă (culoare) vor fi ignorate. Vom ignora, de asemenea, dependența indicelui de refracție de lungimea de unda.
Suprafața unei scene obiect poate avea proprietăți reflectorizante și de refracție precum proprietatea de reflexie difuză.
Pentru a determina luminanța obiectului la un anumit punct trebuie, în primul rând, determină o iluminare directă (primară), care reprezintă incidentul de energie de lumină în acest moment, în mod direct obiectul din sursele de lumină. În acest scop, de la un moment dat de razele obiect sunt efectuate pentru toate disponibile în sursele de lumină de scenă pentru a determina vizibilitatea lor, iar în cazul în care sursa de lumină este vizibilă, atunci este luată în considerare la calcularea luminanța pentru un anumit punct al obiectului. În al doilea rând, este necesar să se definească așa-numita secundar iluminare - iluminarea, care alcătuiesc razele reflectate și refractate și reflexia difuză. Deoarece reflexia difuză este imposibil de a determina direcția în care fasciculul de lumină a lovit obiect la un anumit punct, pentru a se introduce această iluminare de fundal, care este constantă pentru toate punctele de obiect și nu depinde de nimic.
Luați în considerare una dintre cele mai simple modele de iluminare - un model de Whitted. Conform acestui model, energia luminii, lăsând un punct obiect în direcția observatorului este definită prin următoarea formulă:
în cazul în care:
Ka - rata de fond de iluminare;
Ia - valoarea de fond de iluminare;
Kd - coeficientul de lumină difuză (contribuția reflexiei difuze);
C - culoarea unui obiect într-un anumit punct;
Ij - culoarea sursei de lumină-j-lea;
n - normală la suprafața obiectului, la un anumit punct;
lj - direcția sursei de lumină-j-lea;
m - numărul de surse de lumină în scenă;
Kr - greutatea fasciculului reflectat;
Ir - culoarea fasciculului reflectat (iluminarea adusă de fasciculul reflectat);
br - coeficientul de absorbție pentru mediul în care se răspândește fasciculul reflectat;
dr - distanța de la un anumit punct al obiectului în punctul de intersecție al fasciculului reflectat de scena obiect;
Ks - lumină primară coeficient;
p - coeficientul Fong;
Kt - greutatea grinzii refractate;
Acesta - culoarea fasciculului refractată (iluminarea adusă de fasciculul refractate);
bt - coeficientul de absorbție pentru mediul în care se propagă fasciculul refractată;
dt - distanța de la un anumit punct al obiectului în punctul de intersecție al razei refractate pe scena de obiect.
Raportul Fong determină proprietățile obiectelor în reflectarea luminii și este unic pentru fiecare material. Există un set standard de factori Phong care determină proprietățile reflectorizante ale materialelor, cum ar fi metal, plastic, sticlă, lemn, etc.
Deoarece raza înapoi urmărire algoritm este recursiv, unele criterii sunt obligate să se oprească, la care se oprește în continuare de rutare razele reflectate și refractate. Aceste criterii sunt în general deținute de numărul maxim de raze reflectate și / sau refractate, precum și contribuția fasciculului reflectat și / sau refractate. Cu alte cuvinte, în cazul în care cantitatea de construit reflectate raze (refractate) nekotorgo mai mult decât o valoare predeterminată, linia este terminată. Sau, în cazul în care contribuția razelor reflectate (refractate) devine mai mică decât o valoare predeterminată, linia este, de asemenea, anulată.
Pentru a determina direcția razelor reflectate și refractate sunt utilizate cu formula care definește direcția razelor reflectate și refractate pentru cazul ideal. Fig. 4 prezintă razele reflectate și refractate, precum și fasciculul incident și vectorul normal pe suprafața obiectului.