Kateri so najboljši nasveti za osvetlitev OpenGL®?

Osvetlitev OpenGL® je eden najbolj zapletenih in včasih najmanj razumljenih vidikov tridimenzionalnega (3D) programiranja računalniške grafike. Uporablja se lahko za dodajanje potrebnih, realističnih končnih poudarkov upodobljenemu prizoru, lahko pa je tudi računalniško zahteven in na koncu zmeden, če učinki niso zlahka doseženi. Nekatere elemente, kot je definiranje normalnih površin, je mogoče zlahka razumeti, medtem ko lahko druge dele svetlobnega modela, kot je delitev različnih tipov svetlobe, za popolno razumevanje zahteva več študij. Pri delu z osvetlitvijo OpenGL® sta običajno prisotna dva pomisleka: hitrost upodabljanja in kakovost. Obstaja nekaj nasvetov, ki lahko pomagajo doseči sprejemljiv delež obeh, vendar bo na koncu treba narediti kompromise med kakovostjo in hitrostjo.

Ena težava, s katero se pogosto srečujemo, zlasti pri tistih, ki so novi v osvetlitvi OpenGL®, je ta, da mora imeti vsako točko v sceni definirano normalno normalno površino. Brez normalnih vrednosti bo upodabljalnik namesto tega uporabil eno samo konstanto, kar bo dejansko povzročilo, da je vse v prizoru videti ravno in nezasenčeno. En trik pri definiranju normal je uporaba vrednosti, ki niso pravokotne na površino, ampak so obrnjene v drugo smer. To bo spremenilo, kako je svetloba upodobljena na površini, in se lahko uporablja za preprosto ustvarjanje hrupa ali kamnitih tekstur, postopek, znan kot kartiranje udarcev.

Da bi dobili dobre in potencialno edinstvene učinke v prizoru z uporabo osvetlitve OpenGL®, je treba v celoti razumeti, kaj pomenijo ambientalni, zrcalni, razpršeni in oddajni viri svetlobe. Prizor, poln megle, lahko naredite tako, da je videti bolj realističen z visoko sivo vrednostjo okolja. Podobno je mogoče posebne učinke, kot so ogenj ali izpostavljene luči, narediti z oddajnimi materiali in svetlobnimi viri. Plastenje in kombinacija štirih osnovnih modelov je tisto, kar lahko naredi prizor bolj realističen.

Pomembno je razumeti, da osvetlitev OpenGL® zahteva veliko moč procesorja za vsak upodobljeni okvir. To pomeni, da lahko optimizacija scene pomaga doseči boljšo hitrost sličic. Nekatere stvari, ki lahko skrajšajo čas upodabljanja, so uporaba čim manj svetlobnih virov, zmanjšanje količine osvetljenih površin in izogibanje algoritmom ali razširitvam, ki večkrat obdelujejo končni framebuffer. Premikanje osvetlitve v prizoru ima lahko tudi nekaj škodljivih učinkov na zmogljivost in se mu je treba izogibati, ko hitrost upodabljanja postane problematična.

Še zadnji nasvet glede uporabe osvetlitve OpenGL® je vedeti, kdaj ne uporabljati osvetlitve OpenGL®. Lahko si je enostavno zamisliti, da bi oddajne predmete in luči postavili v prizor na vsaki točki, kjer bi bili v resnici, vendar to lahko hitro postane nepraktično. Namesto tega je mogoče veliko svetlobnih trikov izvesti z iluzijami z uporabo dobro izdelanih teksturnih slik, ki imajo osvetlitev že narisano na površini. Na enak način lahko ureditev geometrije prizora včasih odpravi potrebo po več svetlobnih virih, tako da prikrije nekatera problematična področja ali dovoli, da en sam vir znotraj votlega sestavljenega predmeta sije skozi več načrtovanih odprtin.