Gouraud-árnyalás

Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye.
Gouraud-árnyékolt sokszög
Gouraud-árnyékolt gömb animációja - pontatlanságok vehetők észre a sokszögek széleinél
Egy állókép ugyanarról a gömbről, sokkal több sokszög felhasználásával

A Gouraud-árnyalás a számítógépes grafikában használatos módszer: a háromszögek csúcspontjaiban értékeli ki a fényforrásokból idejutó fény visszaverődését.[1] Az illuminációs képlet alkalmazásánál az eredeti felület normálvektorával dolgozik, azaz a tesszellációs folyamat során a kiadódó pontokban a normálvektort is meg kell határozni, amit a poligonháló visz magával a transzformációk során. Ezután a Gouraud-árnyalás a háromszög belső pontjainak színét a csúcspontok színéből lineárisan interpolálja. Vegyük észre, hogy ez pontosan ugyanaz az algoritmus, ahogyan a z mélység koordinátát a háromszög három csúcspontjából lineáris interpolációval határozzuk meg, így az ott említett inkrementális módszer itt is használható.

A Gouraud-árnyalás programja, amely egy háromszög alsó felét színezi ki:

X s t a r t = X 1 + 0.5 , X e n d = X 1 + 0.5 {\displaystyle \,X_{start}=X_{1}+0.5,X_{end}=X_{1}+0.5}

R s t a r t = R 1 + 0.5 , G s t a r t = G 1 + 0.5 , B s t a r t = B 1 + 0.5 {\displaystyle \,R_{start}=R_{1}+0.5,G_{start}=G_{1}+0.5,B_{start}=B_{1}+0.5}

for Y = Y 1 {\displaystyle \,Y=Y_{1}} to Y 2 {\displaystyle \,Y_{2}} do

R = R s t a r t , G = G s t a r t , B = B s t a r t {\displaystyle \,R=R_{start},G=G_{start},B=B_{start}}

for X = T r u n c ( X s t a r t ) {\displaystyle \,X=Trunc(X_{start})} to T r u n c ( X e n d ) {\displaystyle \,Trunc(X_{end})} do

Pixel ( X , Y , T r u n c ( R ) , T r u n c ( G ) , T r u n c ( B ) ) {\displaystyle \,(X,Y,Trunc(R),Trunc(G),Trunc(B))}

R s t a r t + = {\displaystyle \,R_{start}+=} δ R X , G + = {\displaystyle \,R_{X},G+=} δ G X , B + = {\displaystyle \,G_{X},B+=} δ B X {\displaystyle \,B_{X}}

endfor

X s t a r t + = {\displaystyle \,X_{start}+=} δ X Y s , X e n d + = {\displaystyle \,X_{Y}^{s},X_{end}+=} δ X Y e {\displaystyle \,X_{Y}^{e}}

R s t a r t + = {\displaystyle \,R_{start}+=} δ R Y s , G s t a r t + = {\displaystyle R_{Y}^{s},G_{start}+=} δ G Y s , B s t a r t + = {\displaystyle G_{Y}^{s},B_{start}+=} δ B Y s {\displaystyle B_{Y}^{s}}

endfor

A Gouraud-árnyalás akkor jó, ha a háromszögön belül a szín valóban közelítőleg lineárisan változik. Ez nagyjából igaz diffúz visszaverődésű objektumokra, de elfogadhatatlan tükrös, illetve spekuláris visszaverődésű felületekre. A lineáris interpoláció ilyen esetben egyszerűen kihagyhatja vagy szétkenheti a fényforrás tükröződő foltját.

Jegyzetek

  1. Dr. Szirmay-Kalos László: Számítógépes grafika, p. 140. , p. 146.
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap
Ez az informatikai tárgyú lap egyelőre csonk (erősen hiányos). Segíts te is, hogy igazi szócikk lehessen belőle!