Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, 22.7.99 Fellner/Havemann/Müller1 Interaktion mit großen 3D-Welten durch Generative Modellierung.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, 22.7.99 Fellner/Havemann/Müller1 Interaktion mit großen 3D-Welten durch Generative Modellierung."—  Präsentation transkript:

1 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller1 Interaktion mit großen 3D-Welten durch Generative Modellierung mit Subdivision Surfaces D. Fellner, S. Havemann, G. Müller TU Braunschweig DFG-Schwerpunkt V 3 D 2

2 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller2 Übersicht u Sehr große 3D-Welten möglich durch l andere Art der Modellierung in Verbindung mit l effizienter Szenenstrukturierung u Alternatives Modellierparadigma: l Subdivision Surfaces als Modellierprimitiv l Variante von Progressive Meshes u Detailprobleme bei der Realisierung work in progress

3 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller3 Subdivision Surfaces I u Reduktion von Freiformflächen-Modellierung auf Polyeder-Modellierung u Reduktion der Modellgröße um 1-2 Größenordng.

4 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller4 Subdivision Surfaces II u Tesselation on the fly [Pulli/Segal] l parallelisierbar, wenig Overhead u Idee: Progressive Subdivision Surfaces

5 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller5 Progressive Meshes I Grundoperationen: edgeSplit, edgeCollapse l zueinander invers u Basismesh + Liste der Verfeinerungsoperationen u Datenstruktur (Hoppe): Ersparnis ca. 10% Vsplit :18 bits + 1 int Topologie-Info pro Split u Problem: Höchste Modellauflösung muß stets zugreifbar sein

6 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller6 Verallgemeinerung von PMs - Idee 1 u Abhängigkeitsgraph der Verfeinerungsoperationen u Adaptive Anzeige mit Hilfe von BBox-Informationen

7 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller7 Verallgemeinerung von PMs - Idee 2 u Mesh-Operationen zum Modellieren benutzen u Viele Teilsequenzen ähneln einander u Zusammenfassen durch lazy macros

8 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller8 Generative Modellierung u Generative Modellierung abstrakt: l Objekte werden zu Abbildungen, Abbildungsobjekte l Informationen über Bildbereich wird mitgeführt Beispiel: f(x)=x 2 bildet auch Intervalle ab, [ a,b ]->[ a 2,b 2 ] in R + => Intervallrechnung u Invertieren per Intervallschachtelung möglich u Ziel: Operations- statt objektbasiertes Modellieren

9 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller9 Verallgemeinerung von PMs - Idee 3 u Generative Mesh-Modellierung l Elementaroperationen mit BBox-Info versehen l BBoxes von Makro-Operationen aufsammeln l Damit BBox-Hierarchie des Modells u Lazy Mesh Evaluation: l Makroliste ist implizit Operatorliste l BBox-Liste vorkompiliert: DAG traversieren l BBox-Info stößt Makroausführung an

10 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller10 Zusammenfassung Viewer-Architektur u Gegeben: BBox-Hierarchie und Abhängigkeitsgraph der (Makro-) Operationen u Bei der Interaktion: l Kamera stößt Auswertung der BBox-Hierarchie an l BBoxes stoßen Ausführung der Makros an l Damit Teilaufbau des Kontrollmeshes l Kontrollmesh wird on-the-fly adaptiv tesseliert u Caching auf allen Ebenen, insbes. Displaylisten

11 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller11 Problem I: Subdivision Surfaces u Adaptive Tesselierung: Verschiedene Unterteilungsgrade von Nachbarfaces u Projektion auf die Grenzfläche: position rules l Diss. Schweitzer: creases, conical vertices für Dreiecksnetze l Position rules für Vierecksnetze? l Pixar-Erweiterung: Blend-Faktor für halbscharfe Kanten, nichtstationäre subdivision rules l Eigenwert-Kalkül nicht unmittelbar übertragbar

12 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller12 Problem II: Mesh-Operationen u Menge der Elementaroperationen für Meshes, analog zu den Euleroperatoren der BReps: l Vollständigkeit: Jedes Mesh ist erzeugbar l Abgeschlossenheit: Anwendbarkeit eines Operators überprüfen, Konsistenzerhaltung l Minimalität der Operatormenge vs. Benutzbarkeit u Klar für BReps, möglich für Dreiecksnetze, unklar für Vierecksnetze (?)

13 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller13 Problem II: Mesh-Operationen faceSplit edgeSplit vertexSplit edgeSwap edgeCollapseshellSplit

14 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller14 Problem II: Mesh-Operationen Dreiecksnetze: edgeSwap, faceSplit, edgeSplit, vertexSplit, shellSplit u Dazu jeweils die inversen Operationen u Vierecksnetze: Wie vermeidet man Elementarops mit variabler Signatur? u Beispiel: Y-Split [Kobbelt]

15 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller15 Details der Implementierung 1 u Mesh-Zugriff gekapselt durch Iteratoren analog zur Standard Template Library (STL) void deleteVertices(list & l) { list ::iterator i; for(i=l.begin(); i!=l.end(); i++) { delete *i; } } TriMesh::Iter hit = mesh.rayIntersect(point,dir); cout << p0=" << hit.p() << ", p1=" << hit.faceCCW().p() <<, p2=" << hit.faceCCW().p() << endl;

16 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller16 Details der Implementierung 2 template class TriIter { public: typedef TriMesh Mesh; typedef TriIter Iter; int faceId () const; int vertexId() const; int valence () const; Vector3D& p(); Vector3D normal () const; Vector3D faceNormal () const; Iter& vertexCW(); Iter& vertexCCW(); Iter& faceCW(); Iter& faceCCW(); Iter& edgeFlip();... }; template class TriMesh { public: typedef TriMesh Mesh; typedef TriIter Iter; Tuple2 edgeSwap (const Iter& tri); Tuple3 faceSplit (const Iter& tri, const V& p, const F& f1, const F& f2); Tuple4 edgeSplit (const Iter& edge, const V& p, const F& f0, const F& f1);... const list & faces () const; Iter rayIntersect(const Vector3D& point, const Vector3D& dir, Vector3D& hit) const;... };

17 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller17 Problem III: Mächtigkeit der Datenstruktur u Basisversion der Makros: subdivideHalf(Iter t0) { t1,t2,t3,t4 = edgeSplitHalf(t0); t5,t6,t7,t8 = edgeSplitHalf(t4.faceCCW()); t9,t10,t11,t12 = edgeSplitHalf(t1.faceCCW()); t13,t14 = edgeSwap(t8.faceCCW()); }

18 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller18 Problem III: Mächtigkeit der Datenstruktur u Erweiterung: Makros mit variabler Signatur Parameter-Datentypen: float, int, Vector3D, Iter, Listen, Makros u Hintergrund: Funktionale Programmierung

19 Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, Fellner/Havemann/Müller19 Ausblick: V 3 D 2 Phase II u Arbeitsprogramm: l Konsolidierung des bestehenden Ansatzes l Generative Modelle sind durchgängig parametrisiert, neuer Aspekt: Variation der Modellparameter l Ziel: Viewer für Modelle mit dynamischer Geometrie u DL-Aspekt: Statt multimedialer Objekt-Datenbank nun übertragbare DL der Modellierwerkzeugen u Ziel: Modelldatei enthält Modellierwerkzeuge


Herunterladen ppt "Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, 22.7.99 Fellner/Havemann/Müller1 Interaktion mit großen 3D-Welten durch Generative Modellierung."

Ähnliche Präsentationen


Google-Anzeigen