3D, ransforaioner, visualisering, belsning: inrodukion och begrepp Föreläsning 5 Innehåll 3D grunder och aeaiska verkg Lie o 3D-ransforaioner Inrodukion ill 3D-visualisering Algorier i objek respekive bildrden Belsning och rendering Trediensionella eoder Kaeraeafor Man brukar använda en analogi ed en kaera so placeras, rikas och flas i världen Visualisering Vi kan visualisera "realisisk" ed eurer/aerial, belsning, reflekion, skuggor, boragning av skda or osv eller ha e sålrådsodeller Vi kan visa objek i perspekiv- eller parallell projekion Vid kan använda ledrådar o avsånd geno a variera färgonen Vi kan visa spränskisser Sereobilder kan användas osv previous ne previous ne 2 Maeaiska verkg Skalärproduk inus för vinkeln ellan vå vekorer Krssproduk ger orogonal vekor Planes ekvaion A +B +C+D= Koplanära vekorer Noral Tre vekorer a, b och c är koplanära o ans rikning a (b c) =... Mariser vi använder ariser för a beskriva ransforaioner Koordinasse objeefinieras i förhållande ill koordinasse previous ne 3 previous ne 4 Osluande voler För a reducera arbesängden vid es av skärning Två objek och deras projekion på -plane fors o osluande rekanglarna överlappar finns vå öjligheer objeken skär varandra Konvea hölje där noralisering och perspekivransforaion redan gjord I bilden överlappar ej rekanglarna så inga vidare eser för skda or behöver göras objeken skär ine varandra så finkornigare es åse göras previous ne 5 previous ne 6
previous ne 7 Do rediensionella priiiverna I re diensioner har vi flera olika priiiva objek so: kurvor och linjer or av olika slag olika per av rediensionella objek sfär, räblock, praid, ec previous ne 8 I re diensioner använder vi precis so i 2D hoogena koordinaer Däred kan vi behandla ransforaioner på e unifor sä Marisen och represenaionen av punkerna i 3D blir i sil ed = 33 32 3 23 22 2 3 2 ransforaion.ee previous ne 9 Translaion = So i 2D, fas en diension ill So i 2D, fas en diension ill previous ne Roaion = kring -aeln kring -aeln = kring -aeln kring -aeln = kring -aeln kring -aeln previous ne Roaion kring fipunk. Fla fipunk ill origo 2. Roera 3. Fla illbaks fipunk ) ( ) ( ) ( f f p T R p T M = previous ne 2...
Projekioner... Perspekivprojekion Parallellprojekion Direcion of projecion projekionscenru previous ne 3 previous ne 4 Parallella projekioner Perspekivprojekioner projekionsplan projekionscenru previous ne 5 previous ne 6 Klassiska visualiseringssä Orografisk projekion Projekorerna vinkelräa o projekionsplane previous ne 7 previous ne 8
... E epel och re orografiska projekioner av de Seriska projekioner O den vinkel projekionsplanes noral bildar ed koordinaalarna uppfller vissa villkor har projekionen ege nan Dierisk serisk ed ed avseende på på vå vå alar alar Trierisk generella falle falle Isoerisk serisk ed ed avseende på på alla alla re re alarna previous ne 9 previous ne 2 Oblique projekion Projekorerna parallella en ej orogonala o projekionsplane Perspekiv repunks våpunks enpunks Specialfall Cabine (ed djupe = halva bredden) previous ne 2 previous ne 22 Orogonal projekion -koponenen säs ill noll Uriningsvoler och generella projekionsransforaioner I OpenGL anger vi visualiseringsvol Objek uanför denna vol klipps bor Man alar o a kaeran har en vinkel för visualiseringsplane (angle of view) previous ne 23 previous ne 24
... vi anger klipplan Den resulerande runkerade praiden brukar kallas för frusu Noraliserade koordinaer Många algorier förenklas o eser uförs förs efer ransforaion ill noraliserade enheskoordinaer (kanonisk for) projecion.ee previous ne 25 previous ne 26 Boragning av skda or Proble Avgöra vad i scenen so sns från en given punk Tper av algorier Algorierna är av vå olika huvudper so beror av o do baseras direk på objekens definiion eller deras projekioner. Alernaiv forulering Avgöra vilka delar av scenen so ine sns Näligen o avgörande sker i: Objekrue Jäför objek och delar av de för a avgöra vad so sns Bildrden Vad so sns avgörs piel för piel på projekionsplane previous ne 27 previous ne 28 Algorier i objekrue Också kända so objekprecisionsalgorier Algori (principskiss) for (varje objek i världen){ hia delar av objeke so ine är skda av andra delar eller andra objek; ria dessa delar Kopleie jäföra varje (n) objek ed varje anna Dvs i sorleksorningen n 2 jäförelser previous ne 29 Algorier i bildrden Också kända so bildprecisionsalgorier Algori (principskiss) for (varje piel i bilden){ hia de objek so är näras berakaren på en projekionslinje geno pieln; ria pieln Kopleie (brual eod) kräver a vi för varje piel undersöker alla n objek för a avgöra vilke so är näras, dvs för p pilar krävs np jäförelser previous ne 3
Vilken p av algori är bäs? Man kan ro a objekalgorier är bäre än bildalgorier då n < p. Men i objekalgorier är ofa varje seg bedlig er kople och idskrävande än i bildalgorier. Ofa är objekalgorier också svårare a ipleenera. Objekalgorier är bäre då vi e vill ändra upplösning Bildalgorier är föruo a do ofas enklare a ipleenera också snabbare. De finns också algorier so kobinerar de vå sraegierna. Saanfaning: principer för a ria objek objekorienerade också kända so sorera förs För varje objek ria objeke avbildningsorienerade också kända so sorera sis för varje piel ildela en färg previous ne 3 previous ne 32 Olika fall E objek sker hel e anna Objeken sker ine varandra De ena objeke sker delvis de andra eller vice versa De sisa falle är es koplicera Boragning av or ed noralen rikad bor från berakaren O projekionscenru i (,, ) är varje plan so uppfller B A + B + C + D < borrika Noralen för e borrika plan bildar en icke negaiv skalärproduk ed vekorn från projekionscenru ill någon punk på plane A H G C D E F previous ne 33 previous ne 34...fors O projekionsrikningen är längs -aeln kan vi göra e enklare es geno a enbar beraka planes noralvekorer (A, B, C) O C < så är noralen rikad bor från berakaren och däred är plane en baksida Z-buffer-algorien Snon: djupbufferalgorien Idé esa en punk (, ) i age an ed sörsa -koordina är snlig O världen endas besår av en enda konve poleder så är ese illräcklig annars kan frasidor so C och E i figuren ändå vara skda och vi åse esa vidare i edelal eliineras i alla fall hälfen av orna (, ) previous ne 35 previous ne 36
...-buffer fors Algori /* Iniiera */ sä alla pilar ill bakgrundsfärgen, dvs WriePiel(,, bakgrundsfärg); WrieZ(,, ) för varje punk; /* gå igeno alla polgoner */ for (varje polgon){ for (varje piel i polgonens projekion){ p = polgonens -värde i (, ); if (p >= ReadZ(, )){ WrieZ(,, p); WriePiel(,, färg(pol,, ))...-buffer fors Fördelar enkel a ipleenera snabbheen oberoende av anal polgoner (anal pilar so äcks av viss polgon inskar då anale polgoner ökar) kan enkel hanera laers (so ine lagras i -bufferen) kan sparas Proble inneskrävande kan klaras av geno a e band i age av bilden beakas objek lång bor kan avrundas (ransforeras) ill saa -värde även o do ine hade gjor de o do var närare vpunken aliag, avrundningar kan ge upphov ill a delade kaner kan få olika -värden. Kan lösas geno a na vere införs. previous ne 37 previous ne 38 Belsning Nu kor och snabb e avsni o belsning och relaerade ekniker Belsning och skuggning Realisiska bilder kräver ofa belsning, skuggning och reflekion lighposiion.ee Tidiga odeller var ofa ad hoc uan egenlig grund i fsiken en do fungerade ofa bra i prakiken! lighaerial.ee previous ne 39 previous ne 4 Scenen/bilden påverkas av Ljuskällor Allänljus Diffus reflekion Aosfärisk försvagning Spegelreflekioner Skuggor Ljuskällor Usrålande Glödlapor Sol Reflekerande Andra objeks belsa or väggar åne Punkforade Med usräckning eller a lsrör Rikade spoligh Transparens previous ne 4 previous ne 42
Allänljus också kän so: bakgrundsljus belsningsekvaion där varje objek har en slags inre srålning och k ed allänljus Där I resulerande ljuensieen i I = k är objekes reflekion I = I a I a allänljuses inensie allänljuses reflekionskoefficien [, ] so är en aerialkonsan previous ne 43 i Diffus reflekion... proble odellen ed bakgrundsljus edför a objek är likforig belsa över hela dess or en punkljuskälla edför a e objek kan vara olika bels i olika delar o en a endas belses ed allänljus så ger diffus reflekion likforig reflekion över hela an, dvs (so i allänljusfalle) I = I a previous ne 44 Diffus reflekion diffus reflekion och ljuskälla reflekionen beror av vinkeln ellan ans noral och vinkeln o ljuskällan N infallsvinkel L I =I p = I p (N L) för bäre resula: dvs både allänljus och diffus reflekion I = I a + I p (N L) Försvagning av ljuskälla För bäre resula inför fakor so beror av avsånde ill ljuskällan I = I a + f a I p ( N L ) f a = d L Proble: lien variaion vid sora avsånd och sor variaion vid så ändringar vid så avsånd. Följande ger bäre resula f a = in 2 c + c 2 d L + c 3 d L previous ne 45 previous ne 46 Färga ljus och or Beraka varje färg (röd, grön, blå) separa, e rö I R = I ar O dr + f a I pr O dr (N L) O dr diffusa färgen för rö Generellare gör en (koninuerlig) beskrivning so beror av våglängden (över de odellerade våglängdsoråde) I λ =I aλ +f a I pλ (N L) Aosfärisk försvagning För a siulera aosfärens inverkan erbjuder ånga sse djupandning. Objek längre bor rias ed lägre inensie än närare objek. previous ne 47 previous ne 48
Spegelreflekioner Varje blank a speglar ljus. Eepel E äpple reflekerar i en viss del ljus so har ljusare färg än resen so reflekerar e diffus ljus. N L R α V V vekor i rikning o berakaren. Reflekion endas längs R. Berakaren ser spegelreflekion o α = previous ne 49 Phongs belsningsodell För icke perfeka reflekorer (so äpple) anar a aial spegelreflekion sker då α = en inskar drasiså α ökar Den snabba däpningen är approierad ed n α där n spegelreflekionseponen so pisk varierar från ill flera hundra där sora värden ger e skarp fokusera ljus N L R α V blank a sor n N L R α V a a lie n previous ne 5 Phongs belsningsodell fors De reflekerade ljuse beror av infallsvinkeln I λ = I aλ + f a I pλ [ + W () n α] W () anger hur sor bråkdel, [, ], so reflekeras vid given vinkel aeriales spegelreflekionskoefficien W() pisk en konsan, k s, so anar värde ellan och. Väljs eperienell! Vid noraliserade koordinaer kan (so vanlig) skalärproduken användas I λ =I aλ +f a I pλ [ (N L)+k s (R V) n ] Gaakorrekion En skär visar färger geno a väcka fosfor på skären Olckligvis sker ine dea linjär, dvs hur ljus de blir är ine linjär beroende av belsningensieen o vi e använder saa belsningensie på en skär so på en bild får de hela ine saa ljushe Gaakorrekion är e sä a ågärda dea fel vanligen används en abell so ersäer e viss felakig värde ed e anna previous ne 5 previous ne 52 Gouraud shading Avsik a bor diskoninuieer i inensieer ellan inilligande plan Också känd so inensies-inerpolaion shading färg-inerpolaion shading N v N 3 N 4 Gouraud shading (fors) Meod beräkna noralen för varje vere geno a a edelvärde av inilliggande ors noraler beräkna inensieen för dessa vere inerpolera inensieerna l l a = l (l l 2 ) s 2 Idé variera inensieerna linjär över varje plan så a do achar varandra vid inilligande kaner s 2 3 l a l p l b l 2 l 3 l b = l (l l 3 ) s 3 l p = l b (l b l a ) b p b a previous ne 53 previous ne 54
Gouraud shading (fors) Konsekvenser kan ge upphov ill oregelbundna skuggor och skarpa band, sk Mach-band, på an Phong shading Avsik förbära Gouraud shading så a Mach-band effeker undviks Också känd so noralvekor inerpolaion shading N N 3 N N 2 previous ne 55 previous ne 56 Phong shading (fors) Idé beräkna noralen vid varje punk geno a approiera den längs en sveplinje, använd sedan dea (approierade) värde för inensieen i akuell punk Meod so Gouraud shading fas noralerna inerpoleras fra sedan beräknas inensieen från dea värde Konsekevenser kräver bedlig er beräkning än Gouraud shading previous ne 57 Racag Idé rika en sråle från projekionscenru geno varje piel i bilden hia närase objek so skär respekive sråle och färglägg pieln ed objekes färg Meod välj projekionscenru och fönser på vplane for (varje sveplinje){ for (varje piel på sveplinjen){ besä sråle från projekionscenru geno piel for (varje objek i scenen){ if (objek skärs och hiinills näras) bokför skärning och objekes nan; sä pielns färg ill de närase objekes färg; previous ne 58 Raracing lå racagsrålen sudsa vidare srålen forsäer via andra objek, belsningskällor eller hanar sluligen i oändligheen (ed bakgrundsfärgen so resula) vi kan evenuell låa användaren sra anal sudsar (eller sra dea på grundval av illgänglig inne) srålen delas upp o den räffar ransparen objek relaiv enkel a ipleenera Radiosi Idé Yor bidrar ill andra ors belsning geno a sråla u energi Meod Beräkna den diffus-diffusa inerakionen Dela upp bilden i lappar so var och en kan anas vara perfeka och bidra ed konsan inensie fora fakorer parvis ellan lapparna beräkna inegralekvaion (so kan reduceras ill e anal linjära ekvaioner) för a beräkna refleivieen för faceerna Konsekvenser cke beräknings och ureskrävande scener besår ofa av diffus ljus beräkningar oberoende av visualisering ganska svår a ipleenera previous ne 59 previous ne 6