Phong-árnyalás

A Wikipédiából, a szabad enciklopédiából
Phong-árnyalás interpolációjára példa

A Phong-árnyalás az illuminációs képletben felhasznált normálvektort interpolálja a háromszög csúcspontjaiban érvényes normálvektorokból. Az illuminációs képletet pedig minden pixelre külön határozza meg. A phong-árnyalás a színtérben nemlineáris interpolációnak felel meg, így nagyobb poligonokra is megbirkózik a tükrös felületek gyorsan változó radianciájával. A Phong-árnyalás programja:

X_{start} = X_1 + 0.5, X_{end} = X_1 + 0.5, \overrightarrow{N}_{start} = \overrightarrow{N}_1

for \,Y = Y_1 to \,Y_2 do

\overrightarrow{N} = \overrightarrow{N}_{start}

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

(R,G,B) = ShadingModel \overrightarrow{N})

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

\overrightarrow{N} += δ\overrightarrow{N}_X

endfor

\,X_{start} += δX_Y^s, X_{end} += δX_Y^e, \overrightarrow{N}_{start} += δ\overrightarrow{N}_Y^s

endfor