videnje v d videnje v d je gotovo bolj zahtevno kot v d pri dvodimenzionalnem prikazovanju dolocimo okno v d svetu in okno videnja v d vidni povrsini nacelno objektom iz sveta priredimo velikost okna le ti se nato transformirajo v vidno polje zaslona dodatna komplekstnost v d videnju izhaja delno zaradi tretje dimenzije oziroma prikazovalnih naprav ki so po vecini d ceprav je na zacetku videti d prikazovanje zahtevnejse je lazje razumljivo ce ga pogledamo skozi niz preprostih i n razumljivejsih korakov ki smo jih pripravili v prejsnjih poglavjih sinteticna kamera in koraki d videnja zelo uporaben nacin za kreiranje d scene je nacelo 'umetne kamere' oziroma 'umetnega fotografskega aparata' predpostavimo da lahko naso kamero premikamo iz lokacije v lokacijo jo usmerimo v poljubno smer in s pritiskom na sprozilec naredimo dvodimenzionalno sliko d objekta v prostoru v nasem primeru lahko postane fotoaparat tudi kamera ce posnamemo niz zaporednih slik ki nam omogoca realizacijo 'premikajocih se slik' v razlicnih smereh in velikostih kot vidimo je kamera le racunalniski program ki nam realizira sliko na zaslonu objekt v d pa je zbirka tock linij in povrsin na zaslonu obicajno ima kamera svoj koordinatni siste m x y z in objekt svojega u v n pritisk na sprozilec v sinteticni kameri pa zahteva se nekatere postopke kot so a izbira vrste projekcije preslikavo iz d v d naredimo tako da vpeljemo projekcijo ki spremeni d objekt v d projekcijsko ravnino projekcija je lahko prvic perspektivna iz perspektive in drugic vzporedna paralelna preslikava b izbira parametrov videnja enkrat ko je tip projekcije definiran moramo dolociti pogoje pod katerimi zelimo videti d objekt realnega sveta v koordinate zunanjega sveta sodijo tudi pozicija ocesa opazovalca in polozaj ravnine kamor se projekcija prikazuje lahko uporabljamo dva koordinatna sistema videnja in gledanja oci c vpeljemo tri dimenzije tako kot moramo vpeti d sceno v mere nasega zaslona tako je tudi d sceno potrebno prirediti zaslonu lahko zanemarimo dele ozadja ki so predalec da bi jih jasno videli to je precej zahteven postopek zato je zelo pomembno da opredelimo glavnino vidnega prostora v katerem bomo uporabljali nase postopke d projekcije in zaslon koncno se projekcija glavnega vidnega prostora prikaze na projekcijski ravnini oknu ki jo nato vidimo na zaslonu projekcije v splosnem projekcija pretvori tocke nekega n dimenzionalnega prostora v koordinate sistema dimenzije manj kot n v racunalnistvu se bomo v splosnem omejili na preslikavo d v d projekcijo objekta v d si bomo predstavljali kot osvetlitev z mocnimi svetlobnimi zarki dobimo jih iz sredisca projektorja ki gredo skozi vsako tocko objekta ter sekajo projekcijsko ravnino in tako ustvarijo projekcijo v splosnem je center projekcije koncne dolzine in odmaknjen od projekcijske ravnine za nekatere projekcije je celo zeleno da je tak odmik tja v neskoncnosti na sl vidimo dve razlicni projekciji k sreci je projekcija crte se vedno crta zato je potrebno projicirati le koncni tocki slika dve razlicni projekciji iste premice a premica ab in njena perspektivna projekcija a'b' ter b premica ab in njena vzporedna paralelna projekcija a'b' projekciji aa' in bb' sta vzporedni projekcijam ki jih bomo uporabljali tu pravimo ravninske geometrijske projekcije saj se projekcije obicajno delajo na ravnino in ne na zvito povrsino in uporabljajo ravne projekcijske zarke in ne zv itih ravninske ali planarne projekcije v nadaljevanju kar projekcije so kot smo ze omenili dveh tipov iz perspektive perspektivne in vzporedne paralelne razlika med njima je le v dejstvu kje lezi center in kje ravnina projekcije ce je razdalja med njima koncna je projekcija iz perspektive ce pa se center oddaljuje sta projekcijski liniji vzporedni pri projekciji iz perspektive dolocimo kje je njen center medtem ko pri vzporedni projekciji dolocimo smer projekcije center projekcije je tocka ki ima svoje homogene koordinate x y z smer projekcije je vektor razlika dveh tock in ga lahko dolocimo z razliko dveh tock d x y z x' y' z' a b c vizualni efekt projekcije iz perspektive je podoben fotografskemu posnetku in cloveskemu vidnemu sistemu velikost objekta se spreminja z oddaljenostjo centra projekcije ceprav je videti perspektiva realisticna ni primerna za posnemanje natancnih oblik predmetov saj se ne ohranjajo niti koti niti razdaje linij z druge strani je paralelna projekcija videti manj realisticna vendar je primernejsa za prikazovanje saj vzporedne linije ostanejo vzporedne in tudi robovi vzporedni s projekcijsko ravnino se ne spremenijo perspektivna projekcija pri perspektivni projekciji vse vzporedne linije ki niso vzporedne s projekcijsko ravnino konvergirajo v beziscu tocki izginotja vanishing point pri d se vzporedne linije srecajo le v neskoncnosti zatorej si lahko bezisce mislimo kot projekcijo tocke v neskoncnosti seveda je tukaj neskoncno bezisc vsaka za svojo smer slika perspektivna projekcija kocke iz ene tocke na ravnino ki seka os z vidimo tudi bezisce premic desno ki so pravokotne na projekcijsko ravnino ce je niz linij vzporeden z eno od koordinat tedaj govorimo o 'osi bezisce obstajajo najmanj tri take bezisca ki jih dobimo ko ena od koordinat seka projekcijsko ravnino na primer ce projekcijska ravnina seka os z tedaj ima z svojo bezisce medtem ko linije ki so vzpor edne z x in y osjo in so vzporedne tudi s projekcijsko ravnino le te torej nimajo bezisca projekcijo iz perspektive razvrscamo po stevilu bezisc torej po stevilu osi in projekcijskih ravnin sl kaze dve inacici perspektivnih projekcij iz ene tocke kocke takoj vidimo da gre za perspektivno projekcijo iz ene tocke saj vzporedni osi x in y ne konvergirata samo tocke vzporedne z osjo z konvergirajo sl kaze konstrukcijo prespektive iz ene tocke slika konstrukcija perspektivne projekcije kocke iz ene tocke na ravnino ki seka os z normala na projekcijsko ravnino je vzporedna z osjo z sl kaze konstrukcijo perspektive iz dveh tock opazimo da linije vzporedne z osjo x in y ne konvergirajo perspektivna projekcija iz dveh tock se cesto uporablja v arhitekturi inzenirstvu ind nacrtovanju perspektiva iz treh tock pa se manj uporablja slika perspektivna projekcija kocke iz dveh tock projekcijska ravnina seka os x in z vzporedna paralelna projekcija vzporedno projekcijo razvrscamo v dve skupini glede na zvezo med smerjo projekcije in normalo na projekcijsko ravnino pri ortografski pravokotni vzporedni projekciji so vse smeri iste ali obratne druga drugi torej je smer projekcije normalna na projekcijsko ravnino pri neortografski projekciji pa niso a b slika a konstrukcija izometricne projekcije kocke velikosti ena b konstrukcija neizometricne projekcije najbolj pogoste ortografske projekcije so s sprednje strani s strani z vrha oziroma dna v vseh teh projekcijah so projekcijske ravnine pravokotne na glavno os ki tudi pomeni smer projekcije zato se izometricne projekcije cesto uporabljajo normale projekcijske ravnine imajo isti kot z vsako od glavnih osi ce je normala dx dy dz tedaj zahtevamo ½ dx½ ½ dy½ ½ dz½ ali ± dx ± dy ± dz da zadostimo tej zahtevi obstaja smeri v vsakem oktantu po ena na sl a vidimo konstrukcijo izometricne projekcije v smeri neizometricna ali posevna projekcija je druga inacica vzporednih projekcij in se loci od ostalih ortografskih projekcij v tem da se smer normale projekcijske ravnine in smer projekcije ne ujemata neizomericna projekcija je kombinacija projekcije od spredaj z vrha in s strani na sl b vidimo konstrukcijo neizomet ricne projekcije takoj tudi opazimo da normala projekcijske ravnine in smer projekcije nista v isti smeri specifikacije videnja v d videnje v d ni samo projekcija ampak tudi preslikava prostora v katerega je vpet d sistem projekcija in vidni prostor skupaj dasta vso informacijo ki jo potrebujemo da vpnemo in preslikamo prostor v d nato je transformacija d v fizicne koordinate naprave preprosta uporabili bomo nacelo ravninske planarne geometrijske projekcije zato da dolocimo volumen opazovanja a b slika a ravnina opazovanja je definirana z nor in rto os v je dolocena s projekcijo vektorja vop na normalo nor os u tvori desnorocni referencni kordinatni sistem rks skupaj z nor in osjo v b rks je torej narejen i z u v in n osi os n je vselej normala nor medtem ko je cok center okna projekcijska ravnina ki jo bomo imenovali tudi ravnina opazovanja je definirana s tocko na ravnini ki ji recemo referencna tocka opazovanja rto view reference point vrp in normalo na ravnino nor view plane normal vpn ravnina opazovanja je lahko kjer koli glede na realni objekt ki ga bomo projicirali lahko je pred njim ga seka ali je za njim ce torej imamo projekcijsko ravnino ravnino opazovanja rabimo tudi okno v ravnini opazovanja podobno kot je to veljalo za d njegova vsebina se preslika v okno prikazovanja okno v ravnini opazovanja definiramo tako da dolocimo min in max koordinate okna in dve ortogonalni osi na ravnini opazovanja s katerima merimo koordinate ti dve osi sta del sistema d referencnih koordinat opazovanja rks viewing reference coord vrc izhodisce referencnih koord opazovanja rks sistema je referencna tocka opazovanja rto view reference point vrp ena os rks je nor normala na r avnino to je os n drugo os rks pa dobimo iz vektorja opazovanja vop view up vector vup ki doloca v os na ravnini opazovanja os v je definirana tako da je to projekcija komponente vektorja vzporednega z normalo nor opazovanja vop na projekcijsko ravnino pravokotna na os v osi u v in n tvorijo desnorocni koordinatni sistem ki ga vidimo na sl a tudi referencna tocka rto in vektorja nor in vop definirajo desnorocni koordinatni sistem ko smo definirali rks lahko definiramo koordinate umin vmin umax in vmax sl b tudi kaze da ni potrebno da je okno simetricno na ref tocko rto kar jasno pokaze tocka v centru okna cok center of window cw a b slika a volumen opazovanja je v obliki neskoncne piramide pri perspektivni projekciji cok je center okna b volumen opazovanja je neskoncni paralelopiped pri ortogragfski projekciji nor in smer projekcije spr sta vzporedni spr je vektor iz rtp k centru okna cok in je vzporeden z nor center cok in smer projekcije spr direction of projection dop sta definirana z ref tocko projekcije rtp projection reference point prp in vrsto projekcije ce je projekcija prespektivna tedaj je rtp center projekcije ce pa je paralelna tedaj je smer projekcije spr iz ref tocke projekcije rtp proti centru okna cok referencna tocka projekcije rtp je definirana v rks u v n in ne v koordinatah zunanjega sveta x y z zato se polozaj rtp tocke ki je relativna glede na rto ne spreminja z menjavo vektorja opazovanja vop in ref tocke rto prednost take sheme je v tem da programer lahko doloci zahtevano smer projekcije in nato spremeni normalo nor in vektor opazovanja vop ne da bi mu bilo treba preracunati novo rtp za zeleno projekcijo z druge strani pa je bolj zahtevno premikanje tocke projekcije rtp z namenom da dobimo razlicne poglede na objekt v meje vidnega protora ali volumna prostora opazovanja vpnemo del realnega sveta ki ga projiciramo na vidno ravnino pri perspektivni projekciji je volumen opazovanja skoraj neskoncna piramida z vrhom v ref tocki projekcije rtp in robovi ki gredo mimo robov okna videnja na sl a vidimo prostor opazovanja v perspektivni projekciji pozicija za centrom projekcije ni vkljucena v prostor ali volumen prikazovanja in se zato ne projicira v resnici nase oci vidijo nepravilen konicast vidni prostor piramidast vidni prostor je matematicno enostavnejse dolocljiv in se tudi sklada z nacelom pravokotnega okna opazovanja pri vzporedni projekciji je vidni prostor koncen paralelopiped s stranicami vzporednimi na smer projekcije torej v smeri iz ref tocke projekcije k centru okna cok na sl b vidimo vzporedno projekcijo vidnega prostora in njegovo zvezo z vidno ravnino oknom in ref tocko proj rtp v primeru da zelimo imeti koncen vidni prostor in da omejimo stevilo tock ki jih projiciramo na vidno ravnino nam sl a in b kazeta kako naredimo vidni prostor koncen s celno ali sprednjo ravnino vpenjanja in hrbtno ali zadnjo stranjo vpenjanja ti dve r avnini vcasih imenujemo tudi sprednja in zadnja ravnina in sta vzporedni z ravnino opazovanja in njuna normala na ravnino je nor ravnini sta doloceni z dolzinama sprednje razdalje f in zadnje b ki sta ralativni na tocko opazovanja rto in vzdolzni glede na nor pozitivna razdalja je v smeri nor ce zelimo da protor opazovanja ni prazen mora biti sprednja razdalja algebrajsko vecja od zadnje razdalje a b slika a omejen vidni prostor pri ortografski vzporedni projekciji spr je smer projekcije b omejen vidni prostor pri perspektivni projekciji omejevanje vidnega prostora je koristno predvsem ce se zelimo znebiti nepotrebnih objektov in da omogocimo uporabniku da se omeji na dolocen del realnega sveta dinamicno spreminjanje mej sprednje in zadnje strani dajo gledalcu opazovalcu obcutek da nekatere stvari izginejo iz slike in se spet vracajo za perspektivno projekcijo je to se bolj pomembno saj se oddaljeni objekti 'vidi' le kot mocna svetla tocka slika hiso ki je podana v koordinatah zunanjega sveta bomo uporabljali kot primer cez celotno poglavje njene koordinate gredo od do m v smeri osi z od do m v smeri osi x in od do m v smeri osi z kako prenesemo vidni prostor na prikazovalnik na primer zaslon tiskalnik ali risalnik prvic predpostavimo kocko x x v normiranih projekcijskih koordinatah npk vidni prostor se prenese v npk ki gredo od xmin do xmax od ymin do ymax in od zmin do zmax prednja stran vpenjanja postane zmax zadnja pa zmin podobno tudi umin postane xmin in vmax postane xmax koncno vmin postane ymin in v max postane ymax temu vidnemu volumnu recemo d vidni volumen znotraj kocke primeri projekcij pri vseh primerih bomo uporabljali d vidni prostor ki je definiran z normiranimi enotinimi koor projekcije npk sl kaze hiso v naravnih koordinatah slika a zveza med koordinatami opazovanja in zunanjega sveta a za privzet nacin opazovanja je rto v izhodiscu vop je na osi y in nor je os z ta postavitev nam omogoci da rks u v n sovpada z x y z koordinatnim sistemom zunajega sveta okno se razsiri od do vzdolz osi u in v medtem ko je rtp v tocki b volumen opazovanja ce privzamemo vzporedno projekcijo c ce privzamemo perspektivno projekcijo vidni volumen v perspektivni projekciji je piramida in ne kocka kot pri vzporedni projekciji zvezo med koordinatami sveta in projekcijo vidimo na sl kot primer napisimo osnovne parametre za paralelno projekcijo a b slika a perspektivna projekcija iz ene toce b perspektivna projekcija iz centra perspektivna projekcija koordinate okna rks so xmin xmax ymin ymax parametri vrednosti rto x y z nor vop rtp ½ ½ okno rks tip projekcije paralelna ce zelimo perspektivno projekcijo iz ene tocke ali uporabimo program ali pa sami izdelamo preslikavo predpostavimo center projekcije v tocki x y in z opazovalec stoji na ravnini x z in ima oci v visini y koordinate projekcijska ravnina je pri z za sl a torej veljajo naslednji podatki parametri vrednosti rto nor vop rtp okno rks tip projekcije perspektivna vidimo da je projekcija hise zelo majhna pa tudi cenrirana ni to lahko popravimo z ustreznimi transformacijami postavimo ravnino opazovanja pred hiso tako da damo tocko opazovanja rto na ravnino z in sicer v levi kot spodaj torej ref tocka projekcije rtp postane tako popravek kaze sl b za katero veljajo sledeci podatki parametri vrednosti rto nor vop rtp okno rks tip projekcije perspektivna a b slika a druga moznost opazovanja objekta b perspektivna projekcija hise iz polozaja in normala nor je vzporedna z osjo z primer na sl kaze hiso iz perspektive dveh tock tako sliko dobimo ce postavimo projekcijsko ravnino tako da seka os x in z torej je normala nor isto hiso vidimo v perspektivi iz ene tocke na sl a podatki pa so sledeci parametri vrednosti rto nor vop rtp okno rks tip projekcije perspektivna parametri za projekcijo na sl b pa so parametri vrednosti rto nor vop rtp okno rks tip projekcije perspektivna isto hiso vidimo v perspektivi iz ene tocke na sl b podatki pa so sledec i parametri vrednosti rto nor vop rtp okno rks tip projekcije perspektivna slika paralelna projekcija hise s sprednje strani vzporedna paralelna projekcija na sl vidimo vzporedno projekcijo hise vzporedno z osjo z perspektivna projekcija je dolocena z ref tocko projekcije rtp in centrom okna z nekim privzetim rks in oknom je center okna za ref tocko rtp pri je projekcija vzporedna z osjo z podatki za primer s sl pa so parametri vrednosti rto nor vop rtp okno rks tip projekcije paralelna ce zelimo projekcijo s strani bomo upostevali proj ravnino y z a li katero koli vzporedno z njo izracun koordinat zunanjega sveta in rks enkrat ko je postavljen referencni koordinatni sistem rks potlej vse ostale izracune delamo v tem koord sistemu predno se lotimo procesiranja pa moramo pretvoriti koordinate zunanjega sveta v nase referencne koordinate sistema rks kako to naredimo koordinate x y z zunajega sveta bomo s translacijo t in rotacijo r prestavili v koordinate rks u v n a najprej postavimo rks v izhodisce koordinatnega sistema s tr anslacijo t rtox rtoy rtoz b enotini vektorji lezijo vzdolz u v in n osi vemo da dobimo elemente matrike r tako da zavrtimo vektor nor do osi z u os je pravokotna na vop in nor v os pa je zopet pravokotna na n i n u torej n nor ½ ½ nor ½ ½ u vop x nor ½ ½ vop x nor½ ½ in v n x u enotin vektor dolzine dobimo ce vektor na primer nor delimo z njegovo dolzino ½ ½ nor ½ ½ matrika r je torej r ux uy uz vx vy vz nx ny nz matrika m ki smo jo iskali je torej m r t ux ux uz ux rtox uy rtoy uz rtoz vx vy vz vx rtox vy rtoy vz rtoz nx ny nz nx rtox ny rtoy nz rtoz uporaba ravninske geometricne projekcije ce upostevamo prostor opazovanja in projekcijo opisimo se kako izvrsimo vpenjanje v meje prikazovanja nekateri prostori so enostavnejsi za vpenjanje kot drugi na primer enostavno je dolociti secisca koordinat z ravninami pri vzporedni projekciji x x y y z z podobno situacija je pri perspektivni projekciji x z x z y z y z z zmin z oba prostora opazovanja vidimo na sl slika dva normalizirana kanonicna prostora prikazovanja a za paralelno in b za perspektivno projekcijo transformacije vzporedne paralelne projekcije v tem poglavju bomo opisali postopek kako dobimo normalizirano transformacijo npar za paralelno projekcijo d koordinate zunanjega sveta pretvorimo v normirane koordinate volumna opazovanja trasformiramo prostor opazovanja v normaliziran canonical prostor opazovanja ter transformirane koordinate vpnemo v normaliziran prostor opazovanja in vzeti rezultat projiciramo na ravnino z zatem ga prenesemo se v okno prikazovanja d naprave transformacijo npar dobimo iz posevne neortogonalne vzporedne projekcije tako nam npar trasformacija vkljucuje transformacijo razvlecenja zato da postanejo vidne koordinate vzporedne z osjo z ceprav u v n niso paralelni z nor ce upostevamo razvlecenje tedaj lahko projekcijo naredimo na z ravnino enostavno tako da postavimo z ce je vzporedna projekcija ortografska tedaj postane komponenta razvlecenja normalizacijska transformacijska enota niz trasformacij ki nam naredijo npar so i prestavimo rto v izhodisce ii zasukamo ref koordinatni sistem rks tako da n os nor postane z os u os pa x os v os postane y os iii razvlecemo lik tako da postane smer projekcjie vzporedna z osjo z iv prestavimo in raztegnemo normiran v naprej dolocen kanonicen vidni prostor vzporedne projekcije najprej definiramo dve matriki smeri gledanja in preslikave tocke gledanja zatem sledijo omenjene trasformacije i najprej izvedemo transformacijo t rto ii tu upostevamo lastnosti prostorskih ortogonalnih matrik ki smo jih ze opisali normalo nor zavrtimo v os z rz nor ½ ½ nor½ ½ u os je pravokotna na vop in nor ter je zato izrazena s produktom vop in rz zavrti se v os x rx vop x rz ½ ½ vop x rz½ ½ podobno se os v ki je pravokotna na rz in rx zavrti v os y in sicer ry rz x rx rotacija rx je podana z matriko r x r x r x r y r y r y r z r z r z tu so podani elementi r x r x r x rotacije rx ostale ry in rz pa dobimo iz ostalih vrstic slika uporaba razvlecenja zato da naravnamo prostor opazovanja a paralelogram se razvlece v pravokotnik b nor ostane nespremenjena saj je vzporedna z osjo z iii sedaj gre se za razvlecenje poteg vidnega prostora v smeri osi z tako da so vse ravnine vpenjanja normalne na eno od osi koordin atenga sistema ta korak bomo naredili tako da bomo smer projekcije spr postavili v isto smer kot os z spomnimo se da je spr vektor iz rtp proti centru okna cok ter da je rtp definiran v ref koord sistemu prva dva koraka trasfomacij i ter ii sta spravila rks v zvezo z zunanjimi koordinatami sveta zato je rtp sam tudi v koordinatah zunanjega sveta spr t cok t rtp t kot vidimo smo cok postavili v center okna ce je spr cok rtp tedaj spr' t rtpu rtpv rtpn t na sl vidimo spr in zeleni spr' ki je vzporeden z osjo z poteg lahko naredimo z x y matrikami za poteg in koeficienti shpar z paralelno in shper za perspektivno projekcijo torej shpar shxy shx par shy par shx par shy par kot vemo shxy pusti komponento z nespremenjeno medtem ko k x in y pristeje z shx par oziroma z shy par nasa zelja je dobiti taka dva koeficienta sh da bo spr' t shpar spr do enakosti pride ce sta shx par sprx sprz shy par spry sprz ker za ortografsko projekcijo velja sprx spry zato je tudi shx par shy par in matrika se spremeni v enotino matriko a b slika a volumen opazovanja po transformacijskih korakih b prerez volumna opazovanja pri perspektivni projekciji po transformacijah na sl a vidimo volumen opazovanja potem ko smo uporabili vse tri transformacije meje prostora so umin £ x £ umax vmin £ y £ vmax in b £ z £ f tu sta f in b razdalji vzdolz normale nor od sprednje do zadnje strani vpenjanja iv v zadnejm koraku moramo razvleci prostor opazovanja in ga pretvoriti v odmerjen in vnaprej dolocen normiran prostor ali volumen to naredimo tako da prenesemo center prostora opazovanja v izhodisce koordinatnega sistema in povecamo prostor opazovanja na velikost x x normiranega prostora torej tpar t umax umin vmin vmax f spar s umax umin vmax vmin f b s tpar damo center okna v koordinatno izhodisce ce f in b nista dolocena tedaj lahko vzamemo vrednost b £ f na primer in koncno dobimo enacbo za normalizacijsko paralelno trasformacijo npar npar spar tpar shpar r t rto ki nam torej prestavi prostor opazovanja pri paralelni projekciji v normiran prostor prikazovanja transformacije perspektivne projekcije izdelali bomo normalizacijsko transformacijo perspektivne projekcije nper trasformacija nam trasformira koordinate sveta tako da prostor opazovanja postane normaliziran v naprej dolocen ali kanonicen kar je v tej projekciji prisekana piramida z vrhom v izhodiscu ko smo opravili vpenjanje izvedemo projekcijo na projekcijsko ravnino kjer uporabimo matriko mper postopki ki jih naredimo ob nper so i postavimo rto v izhodisce ii zavrtimo rks tako da os n nor postane os z os u postane x in os v postane y iii izvedemo premikanje tako da center projekcije dolocen rtp gre v izhodisce iv razvlecemo tako da srednja crta v prostoru opazovanja postane os z v skaliramo tako da prostor opazovanja postane normaliziran prostor opazovanja perspektivne projekcije in je omejen s stranicami odsekane piramide sledi natancen opis omenjenih postopkov i ii koraka sta ista kot pri paralelni projekciji torej r t rto iii korak je prenos centra projekcije cpr center of projection cop v sredisce kar zahteva normaliziran kanonicen prostor opazovanja cpr je relativen glede na ref tocko rtp v ref koordinatah opazovanja rks ter dolocen z rtp rtpu rtpv rtpn rks smo transformirali v koordinate sveta v korakih i in ii zato je tu pretvorba samo t rtp iv razvlecenje ki ga moramo narediti vidimo na sl b pravtako tu vidimo operaciji iz tock i in ii vedimo tudi da srediscnica prostora opazovanja ni isto kot os z namen razvlecenja pa je ravno to da pride srediscnica v os z srediscnica gre iz sredisca koord sistema rtp do centra okna cok in je isto kot smer projekcije pri vzporedni projekciji torej cok rtp matrika shpar je tako ista kot shper meje okna prikazovanja na projekcijski ravnini so umax umin £ x £ umax umin vmax vmin £ y £ vmax vmin ref tocka rto je pred postopkom iii bila center sedaj po izvedbi iii in razvlecenju se v postopku iv prestavi ce oznacimo rto' pred transformacijo iz tock iii in iv torej rto' shper t rtp t komponenta na osi z vektorja rto' ki je oznacena z rto'z je enaka rtpn zato ker x y razvlecenje ne vpliva na z koordinate a b slika prerez volumna opazovanja a pred skaliranjem in b po koncanem povecevanju v tem primeru sta f in b nasprotnega znaka zato sta prednja in zadnja stran na nasprotnih koncih rto v zadnji korak je povecanje skaliranje glede na vse tri osi zato da dosezemo normiran prostor opazovanja glej sl skaliranje naredimo v dveh korakih a loceno izvedemo povecanje po osi x in y zato da postaneta mejni ravnini 'enoti' to izvedemo s povecanjem tako da sta polovicna visina in sirina skupaj rto'z odgovarjajoca faktorja x in y povecave sta rto'z umax umin in rto'z vmax vmin b sedaj izvedemo se povecanje v vseh treh smereh tako da ohranimo enotin naklon in da zadnja stran vpenjanja z rto'z b postane z faktor skaliranja za ta podkorak je rto'z b kot vidimo je predznak negativen zato bo skaliranje pozitivno dokler bo rto'z b sam po vrednosti negativen ce zdruzimo oba podkoraka dobimo faktor skaliranja torej sper s rtp'z umax umin rtp'z b rtp'z vmax vmin rtp'z b rtp'z b ce sedaj upostevamo spremembo na osi z zaradi skaliranja tako na projekcijsko ravnino kot na vpenja nje dobimo nove pozicije z proj rtp'z rtp'z b z min f rtp'z b in z max rtp'z b rtp'z b torej je normalizacija iz prostora opazovanja perspektivne projekcije v normiran prostor opazovanja nper sper shpar t rtp r t rto kot vemo je za paralelno projekcijo veljalo npar spar tpar shpar r t rto obe transformaciji se naredita v homogenem prostoru v homogenih koordinatah vpenjanje v normiran d volumen normaliziran prostor opazovanja je prizma x x pri paralelni projekciji medtem ko je prisekana piramida pri perspektivni projekciji uporabimo podoben algoritem kot pri d ce zelimo razsirjavo v d preberi pog slika presek normaliziranega volumna opazovanja pri perspektivni projekciji a pred in po uporabi matrike m vpenjanje v homogene koordinate dva razloga sta zakaj uporabljamo homogene koordinate prvic zaradi boljsega dela mozno je trasformirati normaliziran prostor perspektivne projekcije v normiran prostor paralelne projekcije zato se uporablja optimizirana metoda prirejena za paralelno projekcijo vpenjanje mora biti izvedeno v homogenih koordinatah zato da dobimo prave rezultate drugic tocke ki so posledica nepravilnih homogenih trasformacij imaj o negativni w in so lahko pravilno vpete le v homogene koordinate in ne v d ce torej upostevamo vpenjanje je trasformacija iz homogenega prostora perspektivne projekcije v paralelno m zmin zmin zmin ter zmin ¹ spomnimo se na zmin rto'z f rto'z b in rto' shpar t rtp t na sl vidimo rezultat uporabe m pri perspektivni projekciji matriko m spremenimo z normalizacijsko trasformacijo nper za perspektivno projekcijo n'per m nper m sper shpar t rtp r t rto ce uporabimo npar za paralelno projekcijo namesto n'per lahko izvrsimo vpenjanje v normiran prostor paralene projekcije namesto perspektivne volumen opazovanja d paralelne projekcije je dolocen z £ x £ £ y £ in £ z £ pretvorbo v homogene koordinate naredimo ce zamenjamo £ x w £ £ y w £ in £ z w £ odgovarjajoce ravnine so x w x w y w y w z w in z ce zelimo razumeti ta nacin vpenjanja moramo loceno obdelati slucaj w in w in sicer w Þ w £ x £ w w £ y £ w in w £ z £ w Þ w ³ x ³ w w ³ y ³ w in w ³ z ³ na dlani je da samo zgornjo enacbo w lahko uporabljamo saj imajo vidne tocke w obicajno w predno uporabimo trasformacijo m primer predpostavimo tocko p t v obmocju a w ki se preslika v tocko v d v normaliziranem prostoru £ x £ £ y £ in £ z £ slika tocki p inp se preslikata v isto tocko na ravnini w tako kot tudi vse ostale tocke ki so na premici ce le ta gre skozi koordinatno izhodisce in lezita p in p na njej ce vpnemo volumen a to pomeni da tocke v b odpadejo tocka p t ni v obmocju a w pac pa je v b in se prav tako preslika v prostor d torej v isto tocko glej sl temu problemu se ognemo lahko na dva nacina prvic izvedemo vpenjanje v dva prostora ali drugic uporabimo w pri tocki p preslikava v prostor prikazovanja izhodne tocke se vpenjajo v normaliziran projekcijski koordinatni sistem ki mu recemo d koordinatni sistem zaslona privzeli bomo da je normaliziran prostor opazovanja paralelne projekcije vpet torej se uporabi transformacijo mper koordinate volumna opazovanja so znotraj £ x £ £ y £ in £ z £ programer doloci d prostor prikazovanja v katerega se preslika prostor opazovanj a prostor opazovanja d je vsebovan v volumnu enotine kocke £ x £ £ y £ in £ z £ sprednja stran z enotine kocke se preslika v najvecji kvadrat na zaslonu pri cemer predpostavimo da je spodnja koordinata primer pri zaslonu z locljivostjo resolucijo so piksli p s koordinatami px py v mejah £ px £ £ py £ prikazujemo tocke tako da ne upostevamo z osi torej se bo tocka prikazala pri koordinatah na zaslonu privzemimo da je d prostor prikazovanja znotraj enotine kocke dolocen z neenacbami xv min £ x £ xv max itd ter so vrednosti koordinate xv yv zv podane v pikslih okna d prikazovanja preslikava iz normaliziranega prostora opazovanja paralelne projekcije v kot smo ze omenili d prostor prikazovanja je sestavljena iz treh korakov a normaliziran volumen opazovanja paralelne projekcije se prestavi tako da je vogal v srediscu koordinatnega sistema to naredimo s translacij o t b prestavljen volumen opazovanja se skalira v velikost d volumna prikazovanja to naredimo s povecavo s xv max xv min yv max yv min zv max zv min c koncno se izvede prestavitev skaliranega volumna v levi spodnji k ot volumna prikazovanja s trasformacijo t xv min yv min zv min tako je skupna trasformacija mvv dv iz d vol opazovanja view volume vv v d volumen prikazovanja viewport v torej mvv dv t xv min yv min zv min s xv max xv min yv max yv min zv max zv min t povzetek obstajata vsaj dva nacina kako izvedemo preslikavo in sicer a razsirimo d koordinate v homogene koordinate b izvedemo normalizacijo z npar ali nper c delimo z w da pridemo zopet v d koordinate d vpnemo d prostor v normiran prostor perspektivne ali paralelne projekcije e razsirimo d koordinate v homogene koordinate f uporabimo paralelno projekcijo ter preslikavo mort ali pa perspektivno projekcijo mper ce je d torej mper d zgornji matriki smo tu kar privzeli g prestavimo in povecamo volumen v koordinate naprave h delimo z w in izvedemo preslikavo homogenih koordinat v d drugi nacin se uporablja ce so izhodne tocke v homogenih koordinatah in je w a razsirimo d koordinate v homogene koordinate b izvedemo normalizacijo z npar ali nper c ce je w vpnemo homogene koordinate v volumen glej slucaj w oziroma w d prestavimo in povecamo volumen v koordinate naprave e delimo z w da preslikamo iz homogenih koordinat v d koordinate glej sl slika koordinatni sistemi in matricne pretvorbe med njimi tako za perspektivno kot paralelno projekcijo literatura b g batchelor d a hilland d c hodgson automated visual inspection ifs pub ltd uk james d foley et al introduction to computer graphics addison wesley pub comp richard f ferraro programmer's guide to the ega vga and super vga cards addison wesley pub comp http www aw com cseng authors foley compgrafix compgrafix sup html za srgp in sphigs graficni paket