3D Paviršių tipai - Kompiuterinė grafika - 5 paskaita PDF
Document Details
Uploaded by AstonishedObsidian2727
KTU
2024
Kęstutis Jankauskas
Tags
Summary
This document provides a lecture on 3D surfaces, part of a computer graphics course offered at KTU university. It covers various types of 3D models and methods of building them. It also describes the principles and elements used, while also detailing surface representations and mathematical models.
Full Transcript
3D paviršių tipai Kompiuterinė grafika – 5 paskaita Doc. dr. Kęstutis Jankauskas KTU. IF. Multimedijos inžinerijos katedra © 2024 Šiandien paskaitoje 3D modelis ir modeliavimas Modeliavimo metodai Paviršių tipai...
3D paviršių tipai Kompiuterinė grafika – 5 paskaita Doc. dr. Kęstutis Jankauskas KTU. IF. Multimedijos inžinerijos katedra © 2024 Šiandien paskaitoje 3D modelis ir modeliavimas Modeliavimo metodai Paviršių tipai Konstravimo metodai 2 Modelis ir modeliavimas Modelis – rinkinys duomenų (nebūtinai visų), apibrėžiantis objekto savybes ir santykių tarp šių duomenų visumą Geometrinis modelis – skaitmeninis objekto aprašas, apibrėžiantis jo formą Geometriškai modelis gali būti apibrėžtas daugiamatėje erdvėje: 2D modelis – virtualioje plokštumoje išdėstytos dvimatės formos su įvairiais duomenimis 3D modelis – virtualioje trimatėje erdvėje išdėstytos trimatės formos su įvairiais duomenimis (Geometrinis) modeliavimas – realaus/išgalvoto objekto virtualioje 3D scenoje formavimas Apytikslis modeliavimas – vizualinės reprezentacijos tikslais Tikslus modeliavimas – inžinerinių skaičiavimų ar gamybos tikslais 3 2D modelis Plokščių figūrų rinkinys: Atviri kontūrai: atkarpos, lankai, atviros kreivės... Uždari kontūrai: daugiakampiai, apskritimai, elipsės, uždaros kreivės... Vizualiniai figūrų duomenys: Kontūro spalva Kontūro storis Užpildo spalva ar tekstūra Figūrų topologiniai ryšiai Organizavimo informacija (vaizdavimo eiliškumas, sluoksnis, (ne)matomas)... 4 3D modelis Erdvinių figūrų rinkinys: Atviri paviršiai: plokštumos, atviri cilindrai, laisvos formos paviršiai... Uždari paviršiai: sferos, cilindrai, kubai, laisvos formos paviršiai... Vizualiniai figūrų duomenys: Paviršiaus spalva Paviršiaus medžiaga ir tekstūros Paviršiaus elementų topologiniai ryšiai Paviršiaus išklotinės Organizavimo informacija (sluoksnis/kolekcija, (ne)matomas)... 5 3D modelio modeliavimo metodai Interaktyvus modeliavimas pagal brėžinius (vektorizavimas) Daugiakampių tinklo modeliavimas cyberware_WholeBody Kreivių modeliavimas Skulptavimas Monolito modeliavimas Procedūrinis modeliavimas... Modelio rekonstravimas iš nuotraukų aibės (fotogrametrija) 3D skenavimas 6 3D scenos duomenų hierarchija Failas Scena Modelis (kolekcija) Objektas Paviršius Konstrukciniai elementai 7 Objektas ir paviršius Geometrinį objektą sudaro paviršių aibė Objektas turi savo lokalią erdvę Objektas turi savo transformacijas Objekto transformacijos taikomos visiems jo paviršiams Reprezentacijos: Išorinis lukštas (angl. Shell) Vientisas monolitas (angl. Solid) 3D paviršius yra 2D esybė išformuota 3Derdvėje Paviršiaus erdvė yra dvimatė, aprašoma koordinatėmis U ir V Bet kuriame (u, v) taške galima paskaičiuoti liestines ir normalę 8 Paviršių tipai ir matematiniai modeliai Daugiakampių tinklas Monolitinė geometrija Trikampių tinklas Tūrių sankirta Keturkampių tinklas Tūrių sąjunga N-kampių tinklas Tūrių skirtumas Parametriniai paviršiai Implicitiniai paviršiai Matematinės išraiškos Kontroliniai elementai Splaino paviršiai Poveikio laukas Bezjė splainai Tūrių sąjunga NURBS Tūrių skirtumas Hermito splainai Vokseliai T-splainai 9 Daugiakampių tinklas Formuojamas iš daugiakampių aibės Konstrukciniai elementai: Viršūnės (angl. Vertices) Briaunos (angl. Edges) Daugiakampiai (plokštumos) (angl. Faces) Paviršiaus topologija – sąsajos tarp elementų Briauna – ryšys tarp 2 viršūnių (kaimyninių plokštumų) Daugiakampis – ryšys tarp 3 ar daugiau viršūnių Uždaras daugiakampis gali atriboti dalį beribės plokštumos esančios 2D arba 3D erdvėje 10 Daugiakampių tinklo raiška Tinklo raiška apibrėžia konstrukcinių elementų skaičių ir modelio tikslumą Raiška matuojama tinklo tankumu – viršūnių arba daugiakampių skaičiumi Žemos raiškos (angl. Low poly) paviršių sudaro tūkstančiai daugiakampių Aukštos raiškos (angl. High poly) paviršių sudaro milijonai daugiakampių Tinklo pranašumai: Paprastas modeliavimo principas Tiesiogiai naudojamas GPU Tinklo trūkumai: Ribotas tikslumas Aukštos raiškos tinklą sudėtinga redaguoti Aukštos raiškos tinklas užima daug atminties 11 Daugiakampis Daugiakampis yra plokštumos plotas apribotas uždaros laužtės Paprastai aprašomas nurodant viršūnių sąrašą prieš laikrodžio rodyklę Gali būti aprašomas nurodant briaunų ciklą Viršūnių arba kampų skaičius Trikampis – 3 ne vienoje tiesėje esantys taškai Keturkampis – leidžia apibrėžti išilginius ir skersinius pjūvius N-kampis – retai naudojamos 5 viršūnės dėl sudėtingos topologijos Geometrinės daugiakampio savybės: Iškilumas – naudojami iškilieji (angl. Convex) daugiakampiai, vengiama neiškiliųjų (angl. Concave) daugiakampių Taisyklingumas – taisyklingas (angl. Regular) keturkampis (kvadratas) yra efektyviausias daugiakampis 12 Daugiakampio charakteristikos Daugiakampio orientaciją 3D erdvėje apibrėžia normalę, pagal ją skaičiuojamas paviršiaus tonavimas (angl. Shading) ir reakcija į šviesą Daugiakampiai „nusisukę“ nuo kameros gali būti nevaizduojami Uždariems iškiliesiems daugiasieniams taikoma Eulerio lygybė 𝑣 + 𝑓 = 𝑒 + 2, kur 𝑣 – viršūnių skaičius, 𝑒 – briaunų skaičius, 𝑓 – daugiakampių skaičius 13 Tinklo konstravimas iš taškų debesies Skenuojant ar rekonstruojant 3D paviršių iš vaizdų sekos sudaromas taškų (viršūnių) debesis Iš tašų galima konstruoti paviršių, nurodant ryšius tarp viršūnių Naudojama Delaunė trianguliacija, sujungiant artimas 3 viršūnes į trikampius Tokio paviršiaus topologija netaisyklinga, ją sudėtinga efektyviai redaguoti Retopologija – topologijos permodeliavimas, išlaikant geometrinę formą 14 Parametriniai paviršiai Tikslios formos paviršiai konstruojami, pasitelkiant 𝑆 𝑢, 𝑣 = 𝑥 𝑢, 𝑣 , 𝑦 𝑢, 𝑣 , 𝑧(𝑢, 𝑣) matematines formules: Paviršiaus tašką 𝑆 𝑢, 𝑣 galima apskaičiuoti pagal formulę Forma priklauso nuo konkrečios formulės Pranašumai Turint paviršiaus formulę, paprasta apskaičiuoti, liestinę, normalę, glodumą, plotą, tūrį, masę ir t.t. Paviršių galima vaizduoti ir skaičiavimus atlikti su bet kokia raiška Trūkumai Turi būti sudaromas daugiakampių tinklas prieš atvaizdavimą Nelankstus formos redagavimas 𝑆 𝑢, 𝑣 = (𝑅 cos 𝑢 sin 𝑣 , 𝑅 sin 𝑢 sin 𝑣 , 𝑅cos(𝑢)) 15 Splaino paviršiai Splainas – interpoliavimo funkcija, leidžianti apskaičiuoti tarpines reikšmes bet kokiu tikslumu, kai žinomos kontrolinės reikšmės Konstrukciniai elementai: Viršūnės (sudaro kontrolinę laužtę arba tinklą) Svoriai (angl. Weights) Laipsnis (angl. Degree) arba eilė (angl. Order) Mazgų vektorius (angl. Knot vector) Splaino funkcija leidžia modeliuoti glodžias kreives 2D ir 3D erdvėje, kai turima kontrolinė laužtė 2 splaino funkcijos leidžia modeliuoti glodų paviršių, kai turimas kontrolinis tinklas 16 Interpoliacija ir splainas Interpoliacija leidžia apskaičiuoti tarpines reikšmes, kai žinomos kontrolinės reikšmės Kontrolinės reikšmes nurodo kontrolinės viršūnės (su svoriais) Viršūnių seka suformuoja kontrolinę laužtę, kuri negali šakotis Viršūnių matrica suformuoja kontrolinį tinklą, kuris negali šakotis Paviršiaus glodumą nurodo splaino laipsnis Mazgų vektorius būtinas bazinės splaino funkcijos skaičiavimui, jį paprastai automatiškai apskaičiuoja programa Kontrolinė laužtė (tinklas) apgaubia kreivę (paviršių) 17 Bezjė splainas ir B-splainas Bet koks kreivės taškas 𝐶 𝑢 = (𝑥, 𝑦, 𝑧) trimatėje Bezjė splaino bazinė funkcija: erdvėje gali būti apskaičiuotas, kai žinomos 𝑛! kontrolinės viršūnės 𝑃𝑖 𝐵𝑖,𝑛 𝑢 = 𝑢𝑖 (1 − 𝑢)𝑛−𝑖 𝑖! 𝑛 − 𝑖 ! Bezjė splaino viršūnių kiekis surištas su laipsniu 𝑖 = 0,1 … 𝑛 𝑘 = 𝑛 – laipsnis B-splaino viršūnių kiekis surištas su laipsniu ir B-splaino bazinė funkcija: mazgų kiekiu 𝑚 = 𝑛 + 𝑘 + 1 Mazgų vektorius – nemažėjanti reikšmių seka 1, 𝑗𝑒𝑖 𝑢𝑖 ≤ 𝑢 < 𝑢𝑖+1 𝐵𝑖,0 𝑢 = ቊ 0, 𝑘𝑖𝑡𝑢 𝑎𝑡𝑣𝑒𝑗𝑢 𝑛 𝑢 − 𝑢𝑖 𝑢𝑖+𝑘+1 − 𝑢 𝐵𝑖,𝑘 𝑢 = 𝐵 (𝑢) + 𝐵 (𝑢) 𝐶 𝑢 = 𝐵𝑖,𝑘 𝑢 𝑃𝑖 𝑢𝑖+𝑘 − 𝑢𝑖 𝑖,𝑘−1 𝑢𝑖+𝑘+1 − 𝑢𝑖+1 𝑖+1,𝑘−1 𝑖=0 18 NURBS splainas Netolygusis racionalusis B-splainas – NURBS (angl. Non- nu −1nv −1 N i, p (u) N j ,q (v)wi, j Pi, j uniform Rational B-Spline) Naudojamos viršūnės su svoriais leidžia konstruoti antros eilė i =0 j =0 S(u, v) = nu −1nv −1 kreives (apskritimas, hiperbolė ir pan.) N i, p (u) N j,q (v)wi, j Pranašumai i =0 j =0 Vaizduoti galima pasirinkta raiška Glodumas valdomas laipsnio, viršūnių ir mazgų pagalba Trūkumai Nėra lokalaus valdymo Kontrolinis tinklas negali šakotis 19 Paviršių konstravimas iš kreivių Kreivės išstūmimas (angl. Extrude) Sukimas apie ašį (angl. Revolve) Skleidimas išilgai trajektorijos (angl. Sweep) Interpoliacija tarp kreivių (angl. Loft)... 20 Dalomasis paviršius Žemos raiškos kontrolinis daugiakampių tinklas naudojamas formai valdyti Galutinis aukštos raiškos tinklas apskaičiuojamas tankinant paviršių Tankinimui naudojamas specifinis algoritmas, pavyzdžiui Catmull-Clark Iteracijų kiekis nurodo tankumą Pranašumai: Išsprendžia NURBS ir tinklo trūkumus 21 Monolitinė geometrija Forma sudaroma kombinuojant paprastų formų tūrius Kombinavimui naudojamos sankirtos, sąjungos, skirtumo operacijos Pranašumai: Tikslus būdas formuoti uždarus tūrius Trūkumai: Ribotos galimybės formuoti netaisyklingus kompleksinius modelius 22 Implicitiniai paviršiai Kontroliniais elementais gali būti taškai, kreivės, plokštumos... Kiekvienas elementas turi poveikio lauką, kuris susilieja su kito elemento lauku jiems suartėjus Gali būti naudojamos sąjungos ar skirtumo operacijos Pranašumai Tinka skysčio modeliavimui Paprastas principas Trūkumai Netinka aštriems paviršiams modeliuoti Daug elementų apkrauna procesorių 23 Vokseliai Forma apibrėžiama tūrinio rastro pagalba Kiekvienas vokselis gali turėti spalvą, tekstūrą, permatomumą ar kitus parametrus Privalumai Galima aprašyti vidinę ir išorinę struktūrą Paprastas tiesioginis atvaizdavimas Trūkumai Užima daug atminties Neįmanoma atvaizduoti glodžius paviršius 24 Literatūra 1. A. Lenkevičius. Kompiuterinė grafika ir vizualizacija. E. mokomoji knyga. TEV, 2011. p. 36- 50, D207577 + internete 2. Edward Angel, Dave Shreiner. Interactive Computer Graphics. 6th edition, 2012. p.195-204 3. Hearn Baker Carithers. Computer Graphics with OpenGL. 4th Edition, 2014. p. 3210-324 4. John F. Hughes, Andries van Dam, Morgan McGuire and others. Computer graphics principles and practice. 3th Edition, 2014. 7-8, 37 (struktūros) skyriai. 25