See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Cieniowanie Phonga - Wikipedia, wolna encyklopedia

Cieniowanie Phonga

Z Wikipedii

Oświetlenie Phonga i cieniowanie Phonga nie odnoszą się do tego samego pojęcia, choć często są mylone. W tym artykule znajduje się wyjaśnienie obu terminów.

Spis treści

[edytuj] Oświetlenie Phonga

Oświetlenia Phonga - model oświetlenia stosowany w grafice komputerowej służący do modelowania odbić zwierciadlanych od nieidealnych obiektów, został opracowany przez Phong Bui-Tuonga w roku 1975. Model ten nie ma podstaw fizycznych, ale dobrze przybliża charakterystykę powierzchni dla których został stworzony.

Model ten przyjmuje, że powierzchnia obiektu jest pokryta bardzo cienką przezroczystą warstwą, na której zachodzi odbicie zwierciadlane, tzn. światło nie zmienia swojej barwy, natomiast na powierzchni znajdującej się pod tą warstwą następuję odbicie rozproszone, które zabarwia światło na kolor przypisany do obiektu. W świecie rzeczywistym takimi właściwościami cechują się np. błyszczące plastiki czy powierzchnie pomalowane bezbarwnym lakierem.

Przyjmuje się, że maksymalne odbicie zwierciadlane zachodzi, gdy kąt pomiędzy promieniem odbitym, a kierunkiem do obserwatora jest równy zero. Gdy kąt ten jest większy od zera, wówczas odbicie zwierciadlane bardzo szybko słabnie, co jest aproksymowane współczynnikiem cosnα, gdzie n jest większe od 0 i zazwyczaj przyjmuje wartości kilka-kilkaset.

N - wektor normalny, L - promień światła, R - promień odbity, V - kierunek do obserwatora
N - wektor normalny, L - promień światła, R - promień odbity, V - kierunek do obserwatora

Na natężenie światła docierające do obserwatora składają się:

  1. Natężenie światła odbijanego zwierciadlanie (ang. specular) wyznaczane z zależności I_s = I_r \cdot \cos^n\alpha, gdzie Ir jest natężeniem światła odbitego i w najprostszym przypadku jest ono równe natężeniu światła padającego Ii. Jednak może również zależeć od kąta β i wówczas wzór przyjmuje postać I_s = I_i \cdot f(\beta) \cdot \cos^n\alpha.
  2. Natężenie światła rozproszonego (ang. diffuse) jest obliczane na podstawie modelu Lamberta: I_d = I_i \cdot \cos\beta, gdzie Ii to natężenie światła padającego.
  3. Natężenie światła otoczenia (ang. ambient), które jest stałe i równe Ia.

Każdy z czynników może zostać jeszcze przemnożony przez współczynniki z przedziału [0,1], kolejno ks, kd, ka. Służą one do procentowego ustalenia wpływu składowych na wynikowe natężenie, a poszczególne wartości zależą wyłącznie od tego jaki efekt finalny jest wymagany.

Ostatecznie natężenie światła w modelu Phonga wyraża się wzorem:


I = k_a I_a + k_d I_d + k_s I_s =
k_a I_a + I_i \left(k_d \cos\beta + k_s f(\beta) \cos^n\alpha\right)

Gdy wektory \vec N, \vec R, \vec L i \vec V są znormalizowane (mają długość równą jeden), wówczas w równaniu można użyć wygodniejszych iloczynów skalarnych:

I = k_a I_a + I_i \left(k_d (\vec N \cdot \vec L) + k_s f(\beta) (\vec R \cdot \vec V)^n\right)

Jeśli występuje tłumienie atmosferyczne, tzn. natężenie światła maleje wraz z odległością od obserwatora, wówczas tłumieniu podlegają czynniki kdId + ksIs.

[edytuj] Przykład

Dla wszystkich kul ka = 0, kd = 0.5, natomiast n wynosi (kolejno, od lewego górnego rogu): 1, 5, 10, 20, 50, 100.

Sześć czerwonych kul, oświetlanych przez dwa białe źródła światła.
Sześć czerwonych kul, oświetlanych przez dwa białe źródła światła.

[edytuj] Cieniowanie Phonga

Cieniowanie Phonga (cieniowanie z interpolacją wektora normalnego) to technika cieniowania wielokątów, w której interpolowany jest wektor normalny do powierzchni. Dla każdego przetwarzanego piksela jest wyznaczany wektor normalny, a następnie stosuje się jakiś model oświetlenia (np. oświetlenie Phonga, Lamberta, Blinna lub inne) w celu określenia koloru piksela.

Na rysunku obok został pokazany przykład cieniowania trójkąta, dla którego dane są normalne \vec N_A, \vec N_B i \vec N_C. Przed rasteryzacją pikseli w wierszu y (y jest podany we współrzędnych ekranu) obliczane są normalne \vec N_{A-B} i \vec N_{A-C}. Następnie, dla każdego piksela w wierszu wyznaczana jest normalna \vec N_X.

[edytuj] Bibliografia

  • James D Foley, Andries van Dam, Steven K Freiner, John F Hughes, Richard L Phillips: Wprowadzenie do grafiki komputerowej. Jan Zabrodzki (tłumaczenie). Warszawa: Wydawnictwa Naukowo-Techniczne, 1995. ISBN 83-204-1840-2. 

[edytuj] Zobacz też


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -