Gouraud-árnyalás

A Wikipédiából, a szabad enciklopédiából
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_{start} = X_1 + 0.5, X_{end} = X_1 + 0.5

\,R_{start} = R_1 + 0.5, G_{start} = G_1 + 0.5, B_{start} = B_1 + 0.5

for \,Y = Y_1 to \,Y_2 do

\,R = R_{start}, G = G_{start}, B = B_{start}

for \,X = Trunc(X_{start}) to \,Trunc(X_{end}) do

Pixel\,(X,Y,Trunc(R), Trunc(G), Trunc(B))

\,R_{start} += δ\,R_X, G += δ\,G_X, B += δ\,B_X

endfor

\,X_{start} += δ\,X_Y^s, X_{end} += δ\,X_Y^e

\,R_{start} += δR_Y^s, G_{start} += δG_Y^s, B_{start} += δ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[szerkesztés | forrásszöveg szerkesztése]

  1. Dr. Szirmay-Kalos László: Számítógépes grafika, p. 140. , p. 146.