Pāriet uz saturu

Fonga ēnojums

Vikipēdijas lapa

Fonga ēnojums attiecas uz interpolācijas paņēmienu, kuru izmanto virsmas ēnošanai 3D datorgrafikā. To arī sauc par Fonga interpolāciju[1] vai normālvektora interpolācijas ēnojumu.[2] Tas plaknē interpolē normālu, pāri taisnstūra režģa(ar pikseļiem) poligoniem un datorpikseļu krāsām, balstoties uz interpolētā normālu un atspulga modeli. Fonga ēnojums arī var attiekties uz specifisku kombināciju no Fonga interpolācijas un Fonga atspulga modeļiem.

Fonga ēnojumu un Fonga atstarošanas modeli izstrādāja Bujs Tongs Fongs Jūtas universitātē.[3][4] Fonga metodes tika uzskatītas par radikālām, kad viņš ar tām nāca klajā, taču kopš tā laika tās ir kļuvušas par de facto pamata ēnošanas metodēm daudzām renderēšanas lietotnēm. Fonga metodes ir kļuvušas populāras, pateicoties iedarbīgam skaitļošanas laikam, renderējot katru pikseli.

Fonga interpolācija

[labot šo sadaļu | labot pirmkodu]
Fonga ēnojuma interpolācijas piemērs

Fonga ēnojums pilnveido Guro ēnojumu un nodrošina labāku gludas virsmas pietuvināšanas ēnojumu. Fonga ēnojums pieņem vienmērīgāk, mainot virsmas normālvektoru. Fonga interpolācijas metode strādā labāk nekā Guro ēnojums, kad tiek lietots atstarošanas modelis, kam ir mazs atspīduma gaišums, piemēram Fonga atstarošanas modelim.

Visnopietnākā problēma ar Guro ēnojumu notiek, kad atspīduma gaišums atrodas liela poligona vidū. Kad atspīduma gaismas ir izklīdušas no poligona virsotnēm un Guro ēnojuma interpolācijas, balstoties uz virsotņu krāsām, atspīduma gaismas būs neredzemas no poligona iekšienes. Šo problēma atrisina Fonga ēnojums.

Atšķirībā no Guro ēnojuma, kurš interpolē krāsas visā poligonam, Fonga ēnojumā, normālvektors ir lineāri interpolētē pāri visam virsmas poligonam no poligona virsotņu normāla. Virsmas normāls interpolē un normalizē katru pikseli, kuru pēc tam izmanto atstarošanas modelī, piemēram, Fonga atstarošanas modelī, lai iegūtu galējo pikseļa krāsu. Datorsistēmā Fonga ēnojums ir daudz dārgāks nekā Guro ēnojums, jo atstarošanas modelī ir jāskaitļo katrs pikselis, nevis virsotne.

Fonga atstarošanas modelis

[labot šo sadaļu | labot pirmkodu]

Fonga ēnojums var attiekties arī uz kombināciju — Fonga interpolāciju un Fonga atstarošanas modeli, kas ir empīrisks modelis lokālai izgaismošanai. Tas apraksta veidu, kā virsma atstaro gaismu kā rupju virsmu izkliedētu atstarojumu kombinācijā ar spīdīgu virsmu spoguļatstarojumu. Modelī ir arī ambientas gaismas termins, kas raksturo gaismu, kura ir izkliedēta pa visu ainu.

Fonga vienādojuma vizuālā ilustrācija: gaisma ir balta, ambientā un izkliedētā krāsa ir zila, un spoguļatstarojuma krāsa ir balta, kas ļoti šauros spīdumos atstaro mazu daļu no gaismas, kas krīt pret virsmu. Izkliedētās komponentes intensitāte ir atkarīga no tās virsmas virziena attiecībā pret gaismu, bet ambientā komponente ir vienveidīga (nav atkarīga no virziena).
  1. Alan H. Watt, Watt, Mark. Advanced Animation and Rendering Techniques: Theory and Practice. Addison-Wesley Professional, 1992. 21–26. lpp. ISBN 978-0-201-54412-1.
  2. James D. Foley, van Dam, Andries, Feiner, Steven K., Hughes, John F. Computer Graphics: Principles and Practice. (2nd ed. in C). Addison-Wesley Publishing Company, 1996. 738–739. lpp. ISBN 0-201-84840-6.
  3. B. T. Phong, Illumination for computer generated pictures, Communications of ACM 18 (1975), no. 6, 311—317.
  4. University of Utah School of Computing, http://www.cs.utah.edu/school/history/#phong-ref