Author
luka-kozuh
View
220
Download
0
Embed Size (px)
7/25/2019 TINR Skripta Predavanj 7
1/18
[email protected],draftv09,PeterPeer++ 130
Poglavje#7(3Dizris)
Aktualnekatlice:
izriso kamerao
primitivio
senenjeo
3Dmodeli
1.Preskokv3D
Podrojeraunalnikegrafikebaziranadeluzvektorjiinmatrikami.Vsiizrauni,skupajskartezijskim
koordinatnimsistemom,temeljijonatevilkah,kipodajajorazdalje.Kartezinikoordinatnisistemje
takoosnovnisistemzaunikatnoidentifikacijopoljubnihtokvprostoru:
Koordinateverteksov(oglji,vrhovkota,tok)zapiemokot(x,y,z),kjerravninexy,xzinyzrazdelijo
koordinatniprostorna8delov:
7/25/2019 TINR Skripta Predavanj 7
2/18
[email protected],draftv09,PeterPeer++ 131
Odnapraveneodvisnikoordinatnisistemi(deviceindependentcoordinatesystems)delujejona
principukonverzijemedkoordinatamsvetainkoordinatamnaprave,zaslona.Zatokonverzijoskrbi
grafinisistem.Tuditransformacijenisoni drugakotprocespreklopamedrazlinimikoordinatnimisistemi.Vsespremembesopredstavljenezmatrikami,transformacijskamatrikapajesestavljenakot
serijatranslacij,rotacijinskaliranj.Grafinisisteminavadnotemeljijoalinalevosunem(left
handed)(DirectX/3D)alinadesnosunem(righthanded)(OpenGL)kartezijskemkoordinatnem
sistemu:
2.Kamera
Modelsintetinekamerejeosnova3Dgrafike.Temeljinamodelutokovnekamere(pinhole
camera),kjerseslikaustvarinaslikovniravnini(filmplane)nanekirazdaljisodtokevstopa
svetlobnegaarka.evtotokopostavimoizhodienaegakoordinatnegasistema,dobimo:
7/25/2019 TINR Skripta Predavanj 7
3/18
[email protected],draftv09,PeterPeer++ 132
Upodobljenislikinaslikovniravninipravimoprojekcija,kjervidnopolje(fieldofviewFOV)omejuje
projekcijo.Raunalnikagrafikagradinaprincipuneskonneglobinepolja(depthoffield).Globina
poljasicerpodateviloobjektovvfokusuvvidnempolju.
Modelsintetinekamereimaenekajlastnosti,meddrugimpredstavinavideznoslikovnoravnino
(virtualimageplane),kijopostaviprednaoleo,toko(pinhole),semerseizognetudipotrebipo
obraanju(flipping)slike:
Pritemoznaujemosprojektorjiarkemednavideznoslikovnoravninoinslikovnoravnino(film
plane),vsiarkipapotujejoskozisredieprojekcije(centerofprojectionCOP).Navideznaslikovna
ravninanadziratudirezanje(clipping)opazovanihobjektov.Takonaprimerzmanjanjevidnegapolja
iz90na20povzroiefektpoveanjaoziromapriblianjaobjektu(zoom).Doloimotorejustrezen
pravokotnik(clippingvolume/rectangle),kiodreeobjektealinjihovedele,kiopazovalcunisovidni.
Rezanjesenavadnozgodinaosnovirezanjaprimitivovinneverteksov(priemermnoiceverteksov
gradijoprimitive,recimopoligone,rte):
7/25/2019 TINR Skripta Predavanj 7
4/18
[email protected],draftv09,PeterPeer++ 133
Opazovalnisistem(viewingsystem)jemodelvizualizacijescene,nastankaslike,kigasestavljajo
koordinatnisistem,gledinatoka(alitokaopazovalca)(pointofview),(navidezna)slikovna
ravninainvolumenvidnescene(viewfrustum/volume),kidefiniravidnopolje:
Koordinatnisistemingledinatokalocirataopazovalcaznotrajnaegasveta.Opazovalnisistem
torejnimakonnegavolumna,karpavpraksininajboljuporabno.Zatodefiniramoustrezno
prirezanopiramidnostrukturotako,dadefiniramoedveravnini(nearandfarclippingplane),ki
dodatnoomejitavidnostobjektovnaleobjekteznotrajtakoomejenvolumen:
Procesodstranjevanjaobjektov,kinisoznotrajtakodefiniranegavolumna,imenujemostoasto
izbiranje(viewfrustumculling)(glejpoglavje3).Izbiranje(culling,backfaceelimination)samopo
sebipomeniodstranjevanjepoligonov,kisoopazovalcunevidni.Todoseemotako,daprimerjamolokacijoinorientacijopoligonovzvolumnomvidnescene.Poligone,kinisoznotrajtegavolumna(to
jepravzapravrezanje(clipping)),alipasoobrnjenistranodopazovalca(kamere),neizrisujemo.Test
zaizbiranje,torejizris,jepravzapravenostaven:Izraunamoskalarniproduktmednormalopoligona
invektorjem,kigadefiniratasredieprojekcijeinopozovanpoligon(lineofsightvector).eje
rezultatpozitiven,potemjepoligonviden(normalakaeprotiopazovalcu).
7/25/2019 TINR Skripta Predavanj 7
5/18
[email protected],draftv09,PeterPeer++ 134
VOpenGLlahkotakovsakpoligonoznaimokotvidenalineviden(konstantiGL_CCWinGL_CW,ki
dejanskopodatavidnostodspredaj(frontfacing)inodzadaj(backfacing)),priizbiranju(culling)pa
namomogoaaliizloitevsprednihalizadnjihpoligonov(konstantiGL_FRONTinGL_BACK):
glFrontFace(GL_CCW);
glCullFace(GL_BACK);
Postopekizbiranjapasetukajenekona,naslovitimoramoepostopekizbiranjazaradiprekrivanja
(occlusionculling).Vtemprimerumoramosevedadoloitideleobjektov,kisozakritizdrugimi
objektiintorejopazovalcuspetnisovidni.Vtanamensenajvekratuporabljatadvaalgoritma:slikar
(painter'salgorithm),kjersenariejopoligoniodnajboljoddaljenegadonajblijega,in Zvmesnik(Z
buffering,depthbuffering),kjerzavsakslikovnielementhranimoglobinoterizriemoletiste,kiso
najblijeopazovalcu.
Samorezanje(clipping)lahkopotekavprostoruslike,objektovaliobojegahkrati.Rezanjevprostoru
sliketemeljinaslikovnihelementihinjenadnjimizelouinkovit.alpataknorezanjeniuinkovito
zavelike
objekte,
kiso
opisani
spoligoni.
Ve
krat
uporabljeni
rezalni
algoritmi
so:
2D
linijsko
rezanje
(LiangBarskyrezanje,CohenSutherlandrezanje),2Drezanjepoligonovinnjihoveraziritvev3D
prostor.
Kakovsetelastnostikamerevplivajonanasvetigrezvidikapostavitvekoordinatnegasistema,
prikaza?
Objektjenavadnodefiniranvsvojemlastnemkoordinatnemsistemu,posledinoimenovanem
koordinatnisistemobjektaalimodela(object/modelframe/space).Takoordinatnisistemmoramo
natopretvoritivkoordinatnisistemsveta(worldframe),simervseobjekteopiemogledena
skupnoizhodie.Obtemsevedeevednonevemo,kakosebodotiobjektividelizvidikakamere.
Zatomoramokoordinatnisistemsvetapretvoritivkoordinatnisistemkamere(camera/viewframe),
kjernjenopozicijodefinirasredieprojekcije,njenaorientacijaokolisrediatervidnopolje.Nato
jepotrebnoreitieproblemprikaza3Dsveta,kigavidikamera,na2Dzaslonu.Zavseopisano
poskrbijoustreznematrike(transformacije):
Matrikasveta(worldmatrix)vsebujetrirotacije(zausmeritev)intranslacijozapostavitev
koordinatnegasistemamodelavkoordinatnisistemsveta:
7/25/2019 TINR Skripta Predavanj 7
6/18
[email protected],draftv09,PeterPeer++ 135
Matrikapogleda(viewmatrix)usmerikameroizsrediaprojekcije(izvoropazovanja),vsmeri
pogleda(smerglavneosipogleda),protitokizanimanjavsvetu(ponor).VOpenGLbitozapisalikot:
gluLookAt(x_izvor,y_izvor,z_izvor,x_ponor,y_ponor,z_ponor,x_smer,y_smer,z_smer);
Projekcijskamatrika(projectionmatrix)opisujeravninskogeometrijskoprojekcijo,sajopisuje
upodobitevscenesvetanaslikovniravnini.Zdaj,kosmonaredilipretvorboizkoordinatnegasistemamodelavkoordinatnisistemsvetaspomojomatrikesvetainnatopretvorboizslednjegav
koordinatnisistemkamerespomojomatrikepogleda,moramoprojicirati3Dkoordinatenanao
navideznoslikovnoravnino.Mednajpopularnejimiprojekcijamistatudiperspektivnainparalelna:
Prvasledidejstvu,dasezoddaljenostjoobjektimanjajo,drugapapostavljasredieprojekcije
neskonnodale odnavidezneslikovneravnine.Prislednjisstoastimizbiranjemprirezano
piramidodejanskopretvorimovkvader.
Matrikaohranjanjarazmerja(viewportmatrix)definiraoknonavidnosceno(viewingvolume),njen
namenpajeohranjanjerazmerjastranicobjektovnaupodobljenisliki.Objekti,opazovalecinstrojna
opremazaprikazsonamre neodvisni,zatomoramonaohranjanjerazmerjabitiposebejpozorni:
VOpenGLbitozagotovilizuporabofunkcije:
glViewport(x,y,w,h);
kjerprvadvaparametrapodajataspodnjelevooglieoknavslikovnihelementih,drugadvapa
irinoinviino(winh
navadnonastavimonaloljivostzaslona).
3.Primitivi
???framebuffer,Rautenbach,str.89+bibliji,str.424dodameto???!!!
Primitivisoenostavnigeometrinielementi(objektialioblike),kijihuporabljamozaustvarjanje
kompleksnejihgeometrinihobjektov.Osnovniprimitiviso:verteksi(prostorsketoke),rte,
ravnineinpoligoni(slednjidefinirajoravninoinnjenobarvo(fillarea)).Znjimilahkozgradimoali
7/25/2019 TINR Skripta Predavanj 7
7/18
[email protected],draftv09,PeterPeer++ 136
aproksimiramopoljubenobjekt,obstajajopatakov2Dkottudiv3Dsvetu,kjerjihlahko
manipuliramozosnovnimitransformacijami,kotnaprimerrotacijo,translacijo.
Poligonjedejanskozaprtaravnina,zgrajenaizkonnegatevilart.Osnovnipoligon,kijev
raunalnikigrafikinajvekratuporabljen,jetrikotnik,velikokratpasouporabljenerecimotudi
oblikestirimiogljii(quadrilaterals).Dalahkopoligonepravilnoupodobimo(render),morajo
ustrezatidvemazahtevama:poligonmorabitienostaveninkonveksen.
Poligonjeenostaven,enobenrobpoligonanesekanobenegadrugegarobaistegapoligona:
Poligonlahkoupodobimonatrinaine:samorobove,samonotranjostpoligonaalioboje.
Upodobitevnotranjostizahtevanekakenalgoritemzapolnjenje(fillingalgorithm),grafiniAPIjipa
garantirajokonsistentnopolnjenjelekonveksnihpoligov.Enostavenpoligonjekonveksen,konima
nobeneganotranjegakotavejegaod180,vsenotranjetokepoligonapalahkopoveemotako,da
povezavenesekajorobovpoligona:
Tipiprimitivov:
Primitivekombiniramov2Din3Dmreeinentitete,katerimnavadnoreemokarmodeliboljje
objektkompleksen,ve primitivovgasestavlja.Pravzapravlahkoreemo,dajevsakobjekt,kiga
lahkouporabimokotnekakenblokzagradnjokompleksnejihobjektov,primitiv.Takorecimoorodji
3DStudio
Max
inMaya
tudi
znano
ajno
skodelico
(Utah
teapot)
obravnavata
kot
primitiv:
7/25/2019 TINR Skripta Predavanj 7
8/18
[email protected],draftv09,PeterPeer++ 137
Vsplonemdelamozosnovnimigeometrijskimiprimitivi,omenjenimizgoraj,vendarlahkodelamo
tudizrasterskimiprimitivi.Primerrasterskegaprimitivajepoljeslikovnihelementov.Tiprimitivi
sevedanimajogeometrijskihlastnosti,zatoznjiminemoremomanipulirativ2Din3Dprostoru.
Pasioglejmotipe:
Osnovniprimitiv,kiganemoremorazbitinanimanjkompleksnega,jeverteksaliprostorskatoka.
Tiprimitivisovosnoviupodobljenikotenslikovnielement,definiramopajihnavadnokotzbirko,
seznamtok(pointlist)(toka(a)nazgodnjisliki).
7/25/2019 TINR Skripta Predavanj 7
9/18
[email protected],draftv09,PeterPeer++ 138
Naslednjiprimitivjertnisegment(linesegment),kijeupodobljenkotpovezavameddvema
verteksoma(toka(b)nasliki).Zaimplementacijonavadnouporabljamoseznamert(linelist),kjerv
tabelozapiemovertekseterparepoveemomedseboj.Takneprimitivelahkouporabimoza
simulacijodeja,utrinkov,iskeripd.
Poznamodvenadgradnjiidejertnegasegmenta:rtnitrak(linestrip,polyline)terrtnazanka(line
loop).rtnitrakjeserijapovezanihrtnihsegmentov,kjerprviinzadnjiverteksnistapovezana(toka(c)nasliki).Trakovisozelouporabnizarisanjekrivulj.epoveemoeprviinzadnjiverteks,
dobimortnozanko(vsebinetakosklenjenegaobjektanezapolnimo)(toka(d)nasliki).Kotako
dobimozaprtobjekt,lahkoobjektprvi poimenujemotudipoligon.
Kozapolnimovsebino(fillarea)poligonazbarvo,vzorcem,teksturo,sesreamoznovimprimitivom:
zapolnjenpoligon(filledpolygon)(toka(e)nasliki).
Oblikestirimiogljii(quadrilaterals)(toka(f)nasliki),trikotniki(toka(g)nasliki),trakoviin
pahljae(fans)poligonovsoprimeripoligonov,kisonamenjenipredvsemizboljanjuperformanc
upodabljanja(pospeevanjerealiziranovstrojniopremi).Trakovitrikotnikovsenarejenitako,da
poveemovsaknovvertekssprejnjimadvemaindobimonovtrikotnik(toka(h)nasliki),vprimeruoblikstirimiogliipapoveemodvanovaverteksasprejnjimadvema(toka(i)nasliki).Pahljaa
trikotnikovjepravtakozanimivtippoligona,uporabenpredvsemtam,kjerjepotrebnozgraditivelike
povrine,kotnaprimerstrehokatedrale.Vtemprimeruimamoopravkazenimfiksiranim
verteksom,kateregapovezujemoznovimverteksominprejnjimverteksom(toka(j)nasliki).
TipiprimitivovvOpenGL:
7/25/2019 TINR Skripta Predavanj 7
10/18
[email protected],draftv09,PeterPeer++ 139
Primeruporabe:
glBegin(GL_POLYGON);
glVertex2f(1.5,1.5);
glVertex2f(1.5,1.5);
glVertex2f(1.5,1.5);
glVertex2f(1.5,1.5);glEnd();
Narisalismozapolnjenkvadratv2Dprostoru(tipGL_POLYGON).KlicglBeginvednosluikotzaetna
tokazaupodabljanjeskupineprimitivov.
4.Senenje
Senenjejepoenostavljenoreenopostopekdoloevanjavideza,konkretnobarveupodobljenih
objektovnasceni.
Barvovsakegaupodobljenegaslikovnegaelementadoloa:
svetloba,kiprihajaiznekegasvetlobnegavira
doklersvetlobanepridedoponora(kamere,oesa),sevmesodbijaodrazlinihpovrin
tenekaterevalovnedolinevsrkajo,drugeodbijejo(karmizaznamokotbarvopredmeta)
torejsvetloba,kipotempriletidirektnovkamero,doloabarvovtistitoki.
SenenjepoPhongu(Phongshading/reflectionmodel)
Phongovmodelsimulirazgorajopisanprocesvobratnismeri.
Dabomorazumelinaindolovanja,moramopoznatitudiosnovnemodelenakaterihgradi:
ambientnimodel,difuznimodelinzrcalni(specular)model.Barvapovrinejenamre vsota
komponentambientalneosvetlitve,difuzneosvetlitveinzrcaljeneosvetlitve,mo komponentpajesevedaodvisnaodlastnostimaterialovizkaterihsoobjektioziromanjihovepovrine.
Zambientalnimmodelomrefleksijeimamoopravititakrat,konemoremodoloitiizvoraosvetlitve.
Ambientalnaosvetlitevjenamre ponaravivsesmerna(omnidirectional):
Taknaosvetlitevpovzroi,dasoobjektividetidokajploskiinbrezsenc.
Zzrcalnimmodelomimamoopravititakrat,kojesvetloba,kiprihajaizenegavira,odbitaleveni
smeri:
7/25/2019 TINR Skripta Predavanj 7
11/18
[email protected],draftv09,PeterPeer++ 140
Taknaosvetlitevpovzroi,dasodeliobjektasvetlejivsmeripogleda.
Zdifuznimmodelomimamoopravititakrat,kosesvetlobaodbijevpoljubnesmeri:
Taknaosvetlitevpovzroi,dadobimoobutekglobineinstem3Doblike.Difuznapovrinaje
prikazana(senena)vednoenako,negledenasmerpogleda(pointofview,viewvector).
Phongovmodeljeosvetlitvenimodel,kinadzorujesenenjevsakegaslikovnegaelementa;je
raunskouinkovitinvodikrealistinimizgledomobjektovinrefleksij.Zdruujevsezgorajomenjenemodele:
Priizraunuvrednostivsakegaslikovnegaelementanapovriniobjektaseuporabijotirjevektorji:
7/25/2019 TINR Skripta Predavanj 7
12/18
[email protected],draftv09,PeterPeer++ 141
(AliemrazloitieenabozadoloitevPhongoverefleksijevvsakitokiobjekta???)
GouraudmodeljepoenostavitevPhongovega,sajosvetlitevzraunamosamovvsakemverteksu,barvonasamihvmesnihslikovnihelementihpasepreprostolinearnointerpolira.???!!!Takosmoraunskozagotovouinkoviteji,hitreji.
Lui
Osvetlitevlahkoopiemokotinterakcijomedviromsvetlobe(lujo)inpovrinoobjekta,kije
definiranaskozilastnostimaterialovizkaterihjeobjekt.Takolastnostivirovsvetlobeigrajo
pomembnovlogoprisenenju.Luilahkokategoriziramogledenasmersvetlobeterenergijo,kijo
oddajaprirazlinihvalovnihdolinah,kardefinirabarvosvetlobe.Poznamopetglavnihvirov
svetlobe:tokastalu,omejenatokastalu,ambientnalu,vzporedna/usmerjenalu,sevalnalu.
Tokastalu (pointlight):
Tokastalu oddajasvetloboenakomernov vsesmeri(360).Imajofiksnobarvoinlokacijo,po
naravipasotorejvsesmerne.Navadnosoobjektipodtolujoalipresaturiranialipapretemni
problem,kigalahkohitroodpravimozdodajanjemambientnelui.Primarnifaktor,kivpivana
svetlost,jerazdaljamedlujoinpovrinoobjekta:
Omejenatokastalu (spotlight):
Tuditalujeokarakteriziranazbarvo,prostorskolokacijo,vendarnivsesmerna,pa paje
usmerjena,dodatnopaspecificiratudizmanjevanjeintenziteteluiprotirobudefiniranegakotalui
(upadsvetilnostifalloff).Torejgrevosnovizatokastolu,kiimaomejenkotoddajanjasvetlobe:
7/25/2019 TINR Skripta Predavanj 7
13/18
[email protected],draftv09,PeterPeer++ 142
Ambientnalu:
Talu zagotavljaenakomernoosvetlitevcelotnescene.Navadnotakenuinekdoseemotako,dav
prostorurazporedimovelikotevilomonihlui,kirazprijooddanosvetlobonavsestrani.Stem
doseemo,danimogoedoloitilokacijeoriginalnegavirasvetlobe(primerjajzambientnim
modelomzgoraj).
Vzporedna/usmerjenalu (parallel/directionallight):
Talu osvetliobjektsserijovzporednihsvetlobniharkov.Nanjolahkogledamokotnatokastolu,
kijezelodale odobjekta.RecimoSoncelahkoobravnavamokottaknolu.Upadasvetilnostivtem
primerusevedani:
Sevalnalu (emissivelight):
Tukajgrezalastnostmateriala(izkateregajeobjekt),kisevasvetlobo;torejnegrezalu v
primarnempomenubesede.
Senilniki(shaders)
Senilnikjeskupinaukazov,kijihsprocesiragrafinipospeevalec,dauinkovitoizraunaneko
oblikoposebnegaefektaoziromaupodablja.Poznamotritipesenilnikov,izhodenegajevhodv
drugega:
1. Senilnikiverteksovimajonalogospreminjatigeometrijskopodobo(parametrov)objektana
osnoviverteksov.Takolahkorecimodoseemogibanjetravevvetru,kjersopotrebnerealno
asovnemanipulacije,transformacijeinpremikinaosnoviverteksov.
7/25/2019 TINR Skripta Predavanj 7
14/18
[email protected],draftv09,PeterPeer++ 143
2.
Senilnikigeometrijegrupirajoverteksevgeometrijskeobjekte.Sozelopomembniza
detekcijosilhuetoziromarobovobjektovterdoloanjasenc.
3.
Senilnikislikovnihtok(alisenilnikifragmentov)operirajonadiskretnihslikovnihtokah
primitivov.Pritemseupotevaosvetlitevinsencenaosnoviobravnavesameslikovnege
toke,karjevelikopripomoglokrealnemizgledumodernihiger.
Kajjefiksencevovodsenenja?
Grezauporabovnaprejdoloenegaalgoritmazatransformacijoverteksov(preprostapogled/projekcija/zaslon(view/projection/screen)transformacija)insenenja(recimoGouraudovega).
Kajjeprogramabilnicevovodsenenja?
Nasprotnokotprejlahkosamispiemoraunanjetransformacijeinpodatkovnaverteksih(svojsenilnikverteksov) tersamiposkrbimozasenenjeslikovnihelementov(svojsenilnikslikovnihelementov).
Pasioglejmoecevovodsenenjavstrojniopremiterpokaimo,kakogarazirimosmonostjoprogramiranja:
Transformacijaverteksovopraviserijooperacij(spremembakoordinatnegasistema,osvetlitev,
barvanje,doloanjeteksturnihkoordinatitd.)nadvsakemvGPUposlanemverteksuposebej.
Vfazisestavljanjakompleksnejihprimitivovizobdelanihverteksovposkrbimotudizaustrezno
obravnavolevidnegapolja(clipping,viewfrustum),rasterizacijapaizloitudipoligone,kikaejo
stranodnaekamere.Izhodizrasterizacijesofragmentivelikienslikovnielement.Vsakfragment
nosiinformacijoolokacijislikovnegaelementa,globini,barviinkoordinatahteksture.
Enotazaprocesiranjefragmentovjeodgovornazanastavitevbarvnihvrednostifragmentov,tekstur
ineventuelnointerpolacijoparametrovalistarihvrednostivslikovnemvmesniku(framebuffer).
Konnaenotazaprocesiranjerastranadaljujeprocesiranjefragmentov:
7/25/2019 TINR Skripta Predavanj 7
15/18
[email protected],draftv09,PeterPeer++ 144
Testiranjeglobinetakorecimoizloiskriteravnine.Potem,kofragmentvsetesteuspenoopravi,se
izvrioperacijazlivanjabarvefragmentazbarvoslikovnegaelementa.Nakoncuserezultat(barva)
zapienaustreznomestoslikovnegaelementavslikovnemvmesniku(framebuffer).(Birazloile
ostalo???!!!)
Zdajpatoznanjenadgradimoezmonostjoprogramiranjacevovodasenenja:
Kotprvojepotrebnoomeniti,dadanesmodernegrafinekarticenedelajove razlikmedsenilniki
verteksovinslikovnihelementov,torejlahkonanjihizvajamooperacijeobeh(GeForce8imatako8
splonihsenilnikov).Taarhitekturnipremikjeposledicazavedanja,daprihodnostgrafinihkartic
leivmonostihprogramiranjacevovoda.Kotlahkovidimonaspodnjisliki,lahkotako
programabilnesenilnikeverteksovkotsenilnikeslikovnihelementovenostavnopredstavimokot
dodatkeksplonem,zgorajpredstavljenemcevovodu:
7/25/2019 TINR Skripta Predavanj 7
16/18
[email protected],draftv09,PeterPeer++ 145
Gledenazgorajomenjenozdruenofizinoarhitekturo,lahkonaloginemnivojutorejevedno
prikaemotakoprogramabilnoenotozasenenjeverteksovkotprogramabilnoenotozasenenje
slikovnihelementov.
5.3Dmodeli
Sedajlahkoprimitivenanizamovmodele,jihosvetlimotersenimo,upodobimo.VXNIlahkozaenkratberemole.xdatoteke(definiraformat),kipodajajotekstovnizapis3Dmodelov,vendarsopodprtepraktinovvsehglavnihmodelirnihprogramih(recimo3DStudioMax,Maya,Blender).
Naredimokratekpregledpotrebnihinpovezanihpojmov:
sestavnideli3Dmodelao geometrija
verteksi pozicija normala teksturnekoordinate
trikotniki(indexlistpovezavmedverteksi) katerimaterialuporablja
o
materiali teksture,kisestavljajomaterial
o animacije strukturaokostja
uteiverteksov animacije
zakljunetokevasu(keyframes)doloenipremikikosti
???!!!(eboljgloboko?!)
Dodatniviri:
[1]PierreRautenbach:3DGameProgrammingUsingDirectX10andOpenGL,CengageLearning,
2008.http://www.cengage.co.uk/rautenbach/index.htm
Naloganavajah:
Obveznadomaanalogaeizprejnjegapoglavja:meniji,tedenkasnejeeshranjevanje
(prejnjitedenpasmoeimelinalogoizkontrol).
Povzetek:
Kamera
lastnostikamere(pozicija,usmerjenost,razmerjeslike(aspectratio),globinskaporezava(nearplane,farplane),vidnikot(fieldofview)
o
kajspreminjajotiparametri? viewmatrix projectionmatrix
7/25/2019 TINR Skripta Predavanj 7
17/18
[email protected],draftv09,PeterPeer++ 146
skrivanjenevidnihpredmetovo
esoizvenvidnegapoljakamere frustumcullingo
esozakritizadrugimipredmeti occlusionculling,portals(glejpoglavje3)...
Primitivi
ozadjeizrisasliko kajsedogajanagrafinikartici
grafiniprimitivi(pika,rta,trikotnikinnjihoveoblike(linestrip,linelist,trianglestrip,trianglefan,trianglelist))
sestavnideliverteksa(pozicija,normala,teksturnakoordinata)
indeksiranjeverteksov,seznamverteksov,seznamindexov(vertexbuffer,indexbufferprislednjemzapovezavoverteksovvtrikotnikenenavajmovednosamihverteksov,pa patenavedemoleenkrat,potempazakonstrukcijoposameznihtrikotnikovuporabimolenjihoveindekse)
teksture,poveevanje/zmanjevanje(sampling)
Senenje
raunanjeosvetljaveo
kajdoloabarvoenegapiksla? svetloba,kiprihajaiznekegasvetlobnegavira vmesseodbijaodrazlinihpovrin tenekaterevalovnedolinevsrkajo,drugeodbijejo(tomizaznamokotbarvopredmeta)
svetloba,kipotempriletidirektnovkamero,doloabarvovtistitokio Phongshading
simulirataprocesvobratnismerio Gouraudshading
poenostavi,daosvetlitevzraunamosamovvsakemverteksu,barvona
samihpikslihpasepreprostolinearnointerpolira
luio
vrste ambient directional point spotlight
o
lastnosti ambientcolor diffusecolor specularcolor pozicija
usmerjenost
kot upadsvetilnosti ...
materiali
o diffusecoloro specularcoloro specularpower
senilniki(shaders)
7/25/2019 TINR Skripta Predavanj 7
18/18
[email protected],draftv09,PeterPeer++ 147
o
kajjefixedpipeline vnaprejdoloenalgoritemzatransformacijoogli (preprostaview/projection/screentransformacija)insenenje(gouraudshading)
o
kajjeprogrammablepipeline samilahkospiemoraunanjetransformacijeinpodatkovnaogliih(vertexshader)
inobarvanostkonnihpikslov(pixelshader)
3Dmodeli
sestavnideli3Dmodelao
geometrija verteksi
pozicija normala teksturnekoordinate
trikotniki(indexlistpovezavmedverteksi) katermaterialuporablja
o
materiali teksture,kisestavljajomaterial
o
animacije strukturaokostja
uteiverteksov animacije
zakljunetokevasu(keyframes)doloenipremikikosti animiranje
o 3dokostje drevesnahierarhijakosti,vsakakostzmatrikopovekjesenahajagledenastara
o
ssestavljanjemve 3Dmodelov
3Dmodel
postavimo
relativno
na
eno
od
kosti
o
zutemikosti imamosamoen3Dmodelinzavsakverteksdoloeno,katerimkostempripada(uteeno)
zanimiranjemokostjazveznopremikamovertekse