Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, 22.7.99...

19
Fellner/Havemann/Müller 1 Institut für Computer Graphik, TU Braunschweig MPI Saarbrücken, 22.7.99 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

Transcript of Institut für C omputer G raphik, TU Braunschweig MPI Saarbrücken, 22.7.99...

Page 1: 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.

Fellner/Havemann/Müller 1Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Interaktion mit großen 3D-Welten durch Generative Modellierung mit

Subdivision Surfaces

D. Fellner, S. Havemann, G. Müller

TU Braunschweig

DFG-Schwerpunkt V3D2

Page 2: 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.

Fellner/Havemann/Müller 2Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Übersicht

Sehr große 3D-Welten möglich durch andere Art der Modellierung in Verbindung mit effizienter Szenenstrukturierung

Alternatives Modellierparadigma: Subdivision Surfaces als Modellierprimitiv Variante von Progressive Meshes

Detailprobleme bei der Realisierungwork in progress

Page 3: 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.

Fellner/Havemann/Müller 3Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Subdivision Surfaces I

Reduktion von Freiformflächen-Modellierung auf Polyeder-Modellierung

Reduktion der Modellgröße um 1-2 Größenordng.

Page 4: 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.

Fellner/Havemann/Müller 4Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Subdivision Surfaces II

Tesselation on the fly [Pulli/Segal]

parallelisierbar, wenig Overhead Idee: Progressive Subdivision Surfaces

Page 5: 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.

Fellner/Havemann/Müller 5Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Progressive Meshes I

Grundoperationen: edgeSplit, edgeCollapse zueinander invers

Basismesh + Liste der Verfeinerungsoperationen Datenstruktur (Hoppe): Ersparnis ca. 10% Vsplit:18 bits + 1 int Topologie-Info pro Split Problem: Höchste Modellauflösung muß stets

zugreifbar sein

Page 6: 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.

Fellner/Havemann/Müller 6Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Verallgemeinerung von PMs - Idee 1

Abhängigkeitsgraph der Verfeinerungsoperationen Adaptive Anzeige mit Hilfe von

BBox-Informationen

Page 7: 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.

Fellner/Havemann/Müller 7Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Verallgemeinerung von PMs - Idee 2

Mesh-Operationen zum Modellieren benutzen Viele Teilsequenzen ähneln einander Zusammenfassen durch lazy macros

Page 8: 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.

Fellner/Havemann/Müller 8Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Generative Modellierung

Generative Modellierung abstrakt: Objekte werden zu Abbildungen, Abbildungsobjekte Informationen über Bildbereich wird mitgeführt

Beispiel: f(x)=x2 bildet auch Intervalle ab, [a,b]->[a2,b2] in R+ => Intervallrechnung

Invertieren per Intervallschachtelung möglich Ziel: Operations- statt objektbasiertes Modellieren

Page 9: 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.

Fellner/Havemann/Müller 9Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Verallgemeinerung von PMs - Idee 3

Generative Mesh-Modellierung Elementaroperationen mit BBox-Info versehen BBoxes von Makro-Operationen aufsammeln Damit BBox-Hierarchie des Modells

Lazy Mesh Evaluation: Makroliste ist implizit Operatorliste BBox-Liste vorkompiliert: DAG traversieren BBox-Info stößt Makroausführung an

Page 10: 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.

Fellner/Havemann/Müller 10Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Zusammenfassung Viewer-Architektur

Gegeben: BBox-Hierarchie und Abhängigkeitsgraph der (Makro-) Operationen

Bei der Interaktion: Kamera stößt Auswertung der BBox-Hierarchie an BBoxes stoßen Ausführung der Makros an Damit Teilaufbau des Kontrollmeshes Kontrollmesh wird on-the-fly adaptiv tesseliert

Caching auf allen Ebenen, insbes. Displaylisten

Page 11: 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.

Fellner/Havemann/Müller 11Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Problem I: Subdivision Surfaces

Adaptive Tesselierung: Verschiedene Unterteilungsgrade von Nachbarfaces

Projektion auf die Grenzfläche: position rules Diss. Schweitzer: creases, conical vertices für

Dreiecksnetze Position rules für Vierecksnetze? Pixar-Erweiterung: Blend-Faktor für halbscharfe

Kanten, nichtstationäre subdivision rules Eigenwert-Kalkül nicht unmittelbar übertragbar

Page 12: 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.

Fellner/Havemann/Müller 12Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Problem II: Mesh-Operationen

Menge der Elementaroperationen für Meshes, analog zu den Euleroperatoren der BReps:

Vollständigkeit: Jedes Mesh ist erzeugbar Abgeschlossenheit: Anwendbarkeit eines Operators

überprüfen, Konsistenzerhaltung Minimalität der Operatormenge vs. Benutzbarkeit

Klar für BReps, möglich für Dreiecksnetze, unklar für Vierecksnetze (?)

Page 13: 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.

Fellner/Havemann/Müller 13Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Problem II: Mesh-Operationen

faceSplit

edgeSplit

vertexSplit

edgeSwap

edgeCollapse shellSplit

Page 14: 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.

Fellner/Havemann/Müller 14Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Problem II: Mesh-Operationen

Dreiecksnetze: edgeSwap, faceSplit, edgeSplit, vertexSplit, shellSplit

Dazu jeweils die inversen Operationen Vierecksnetze: Wie vermeidet man Elementarops

mit variabler Signatur? Beispiel: Y-Split [Kobbelt]

Page 15: 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.

Fellner/Havemann/Müller 15Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Details der Implementierung 1

Mesh-Zugriff gekapselt durch Iteratoren analog zur Standard Template Library (STL)

void deleteVertices(list<Vertex*>& l) { list<Vertex*>::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;

Page 16: 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.

Fellner/Havemann/Müller 16Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Details der Implementierung 2template<class V, class F> class TriIter {public: typedef TriMesh<V,F> Mesh; typedef TriIter<V,F> 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 V, class F> class TriMesh {public: typedef TriMesh<V,F> Mesh; typedef TriIter<V,F> Iter;

Tuple2<Iter> edgeSwap (const Iter& tri); Tuple3<Iter> faceSplit (const Iter& tri, const V& p, const F& f1, const F& f2); Tuple4<Iter> edgeSplit (const Iter& edge, const V& p, const F& f0, const F& f1); ... const list<Iter>& faces () const; Iter rayIntersect(const Vector3D& point, const Vector3D& dir, Vector3D& hit) const; ...};

Page 17: 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.

Fellner/Havemann/Müller 17Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Problem III: Mächtigkeit der Datenstruktur

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());}

Page 18: 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.

Fellner/Havemann/Müller 18Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Problem III: Mächtigkeit der Datenstruktur

Erweiterung: Makros mit variabler Signatur Parameter-Datentypen: float, int, Vector3D, Iter, Listen, Makros

Hintergrund: Funktionale Programmierung

Page 19: 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.

Fellner/Havemann/Müller 19Institut für Computer Graphik, TU Braunschweig

MPI Saarbrücken, 22.7.99

Ausblick: V3D2 Phase II

Arbeitsprogramm: Konsolidierung des bestehenden Ansatzes Generative Modelle sind durchgängig parametrisiert,

neuer Aspekt: Variation der Modellparameter Ziel: Viewer für Modelle mit dynamischer Geometrie

DL-Aspekt: Statt multimedialer Objekt-Datenbank nun übertragbare DL der Modellierwerkzeugen

Ziel: Modelldatei enthält Modellierwerkzeuge