340 likes | 455 Views
Curs 4. Modelarea in R ealitate V irtual ă. Medii virtuale. Sampling. Synthesis. Modeling. Behaviours. Properties. VIRTUAL ENVIRONMENT. Management. Rendering. Interaction. User. Modelarea. Procesul de descriere al unui obiect ( model ) prin synthesis sau sampling
E N D
Curs 4 Modelarea in RealitateVirtuală
Medii virtuale Sampling Synthesis Modeling Behaviours Properties VIRTUAL ENVIRONMENT Management Rendering Interaction User
Modelarea • Procesul de descriere al unui obiect (model) prinsynthesissausampling • Modelul poate fi folosit în faza de rendering și/sau simulare • Proprietățile obiectului modelat: • Geometrice (formă) • Fizice • Mecanice (cinematică, dinamică,…) • Optice (culoare)
Structuri de date Exemple: • Geometry = Listăde vârfuri(n elemente) G = { v1: [x1, y1, z1], v2: [x2, y2, z2], …, vn: [xn, yn, zn],} • Connectivity = Listătriunghiuri (m elemente ~2n) : C = { t1: [vi, vj, vk], t2: [vk, vl, vp], …, tm: [vq, vs, vt], }
Format fișiser 3D: VRML VRML (Virtual Reality Modeling Language) – mult mai mult decât un format de date -pune la dispoziție posibilități de interacțiune și descriere. În zilele noastre este folosit ca format de fișier “universal” pentru numeroase aplicații SW în ciuda faptului ca are mai multe dialecte. VRML poate descrie o întreagă scenă 3D drept un copac cu noduri. Există 54 de tipuri de noduri, fiecare dintre ele reprezentând în mod direct obiecte 3D sau realizândconexiuni geometrice. VRML premite specificarea materialului, a texturilor, pozitia camerei, luminile, etc. http://www.wiley.com/legacy/compbooks/vrml2sbk/toc/toc.htm VRML -> X3D format (multi-syntax)
Format fișiser 3D: COLLADA Acronim -COLLAborative Design Activity, creat pentru a deveni format universal, bazat pe XML. Marca Sony, open-source - Khronos Group. Folosit de Google Earth pentru a stoca informația 3D. Permite definirea informației de natură fizică. khronos.org/collada/
Format fișiser 3D: FBX Forma binar creat de Kaydara pentru Filmbox (MOCAP sw), a devenit un format foarte cunoscut. A fost achizitionat de Autodesk care a făcut release la SDK – a devenit “open-standard” (aproape). Se pot specifica nu numai date de natură 3D, dar de asemenea animații, audio, video. etc. Permit includerea unor fișiere cu extensii de alte formate (ex.COLLADA). autodesk.com/fbx/
Format fișiser 3D: AAM Format XVR nativ: – optimizatpe timpi de randare XVR – ASCII sau binary – 1:1 cu structuri de date XVR • Suportă: • Multitexturing • Animations • Smoothing Groups • Shaders, Skinning • Exportă Max, Maya, Blender
Mixed modeling: Point-based modeling • Componente de bază- surfels (surface elements), specificate prin: • Coordonate 3D • Culoare/Material • Normală (pentru lighting) • Mai puțină încărcare decât în cazul vorxelilor • Excelent cu modele “samplate”, se evită nevoia de a produce meshuriprecum și problemele de conectivitate • Nu există implementări HWeficiente • Nu sunt optimepentru geometrii simpleși suprafețe plane
Sampling • Este posibilă măsurarea directă, prin scanare, a formei unui obiect (și a culorii în unele cazuri) • Scanarea produce un ‘nor’ de puncte, mai mult sau mai puțin dens - depinde de rezoluția scanerului • De obicei, norul de puncte (point cloud)este procesat pentru a produceun mesh poligonal (este calculată conectivitatea) Meshul rezultat este de obicei high-res, și necesită simplificare pentru afi randatîn real-time
Sampling: data flow Realobject Cloudofpoints Polygonalmesh Meshing 3D Scan Optimization Detailrecover Simplification
Modelarea bazată pe imagini • Tehnica de modelarecare folosește poze realepentru a descrie proprietăți geometrice • Mai bine spus: “Image based modeling and rendering”deoarece aceste 2 aspecte sunt practic inseparabile. • Ca si exemplu: photogrammetry,unde 2 sau mai mult poze, luate din diferite poziții, sunt procesate pentru a returna măsurătorice conduc la calculul coordonatelor 3D ale unui obiect • http://www.youtube.com/watch?v=H2GDkdvkI74 • http://www.youtube.com/watch?v=fLnd9ucUu9Y&feature=endscreen&NR=1 • http://www.youtube.com/watch?v=ftbnETO_c-w&feature=related • http://www.youtube.com/watch?v=qRrMHaO6NpE
Software pentru grafică 3D • Obiective distinctedar strâns legate: • shape modeling • animation • physical modeling • rendering • - setarea luminilor • - definirea materialelor • - definirea camerelor • - procesarea • - offline / real-time Generareaunei imagini 2D care corespunde perspectivei3D a scenei,din viewpointul respectiv
Frameworkuri RV Application VRFramework Networking Fisica 3D Haptics Engine 3D Audio Engine 3D GraphicsEngine OpenGL OpenGL OpenHaptics OpenAL OpenAL HW Tracking HW Haptic HW Audio HW Visual
Workflow Geometryfile Geometry modeling export 3D ModelingSoftware Material Texture Textures import VirtualEnvironment programming VRFramework Application
Managementul scenei Grafică 3D real-time • Rata minimă de refresh - 25 Hz • Nevoia de a procesa rapid scene complexe (tframe<40 ms) • Bottleneck – HW pentru grafică • Obiectiv: ușurarea loadului computaționalpe HW pentru grafică • Soluție: managementul sceneipentru (în vederea): • Permiterii de calcule rapide • Evitarea trimiterii către pipeline-ul grafic a unor poligoane care nu sunt necesare • Un management efectiv are nevoie de o structură organizată • SCENE GRAPH
Scene Graph • STRUCTURĂ NON-IERARHICĂ • 3D grid, voxels • Simpludar nu prea eficient • STRUCTURĂ IERARHICĂ • Complex dar eficient • Are nevoie de pre-procesare • De tip TreeorDAG (Directed acyclic graph) • Ciclurile nu sunt permise
SG • Ce informatie contine SG?? • Geometrică – datele spațiale • Camerele • Sunete, Lumină, etc. • DE CE IERARHICĂ? • Ex. Testul de visibilitate • Partițiaeste făcută după ocupare spațială • Tăierea rapidă de subarbori, dar algoritmi complecși • PREPROCESARE • off-line Chiar dacă poate fi complexă, nu sunt limite de timp
SG • Folosire ierarhică • Descompunerea posibilă: • Scenă -> Obiecte • Obiecte -> Părți • Părți -> Poligoane • Nodul rădăcinăeste legat la un sistem de referință • Fiecare nod este legat la alt nod, la un sistem de referință și la o listă de poligoane • Posibilă limitare: poligoaneledoar pe frunze În aceste cazuri, un nod intermediar este folosit pentru a stoca: • Transformările geometrice • Organizarea spațială (Clustering) • Proprietățile comune
Folosirea arborelui • Arborele NU e construit în real-time • Arborele este traversatîn real-time: • Se pleacă de la rădăcină • Fiecare nod (proprietățile acestuia)este verificat în funcție de scop: • Collision Detection • Visibility • Etc. • Arborele pentru un singur obiect: • Nod sub obiect, sau direct triunghiuri • Arborele pentru întreaga scenă: • Nod pointer la o structură de datea unor obiecte din interiorul regiunii legate de nod
Structuri geometrice în SG • BSP – trees – Binary Space Partitining Trees • Tot spațiul este divizat • Top-Down • Pot exista subdiviziuni goale • Cazuri speciale: k-d-tree,quadtree, octree • Bounding Volume Trees • Bounding Volume • Bottom-Up • Clustering
BSP tree • Spațiu este subdivizat de fiecare datăîn 2 subspațiuricu ajutorul unui plan (BSP: Binary Space Partition) • Dacă planul de subdivizareeste orientat întotdeauna de-a lungul uneiadintre cele 3 axe, este generat un k-d-tree • Dacăun k-d-tree este întotdeauna subdivizatde-a lungul celor 3 axeprincipale, este obținut un octree (BSP xu subspații cubice)
Octree • Cea mai simplă formă de organizare ierarhicăa spațiului • Unitate fundamentală - cubul • Procesul de subdiviziune este oprit atunci cand: • Este atinsă adâncimea maximă • Cantitatea minimă de geometrie este legată de nod • Un nod gol nu mai este împărțit
De ce BSP tree? • Octree nu este cea mai bună alegere dacă geometria spațiului nu este distribuită uniform • BSP tree permite o partiționare mai ‘strâmtă’ atunci când avem de-a face cu o geometrie mai densă, și mai ‘largă’ în caz contrar • Arborele rezultat este mai ‘proporționat’
BVH - Bounding Volumes Hierarchy • Bottom-Up • Pornește de la obiecte, sau clustere de obiecte • Alegerea volumelor de conținut • Crearea unei ierarhii de volume de conținut până la nodul de rădăcină, care este BV pentru întreaga scenă • Ce fel de BV? • Bounding Sphere • Bounding Box • AABB (Axis Aligned) • OBB (Oriented) • Trade off: Simplicitate – Eficiență vs. Reprezentabilitate
BVH • Avantaje: • La nivele mici, BV subdivizează într-un mod mai bun spațiul, spre deosebire de alte metode • Maiușor de updatat în cazul în care avem obiecte care se mișcă: când se schimbă o frunză BV, schimbările sunt propagate până la nivelele superioare • Dezvoltări Mixte: • Posibilitatea de a folosi abordări de subdivizare mixte: • Inter-object • Intra-object