tinr skripta predavanj 7

Upload: luka-kozuh

Post on 25-Feb-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 TINR Skripta Predavanj 7

    1/18

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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

    TINR@FRI,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