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.

Slides:



Advertisements
Ähnliche Präsentationen
Agenda Einleitung Risiken und Gefahren Vorbeugung
Advertisements

Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Objektorientierte Programmierung
Konzepte objektorientierter Systeme
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Der Prototyp des Verbundfindmittels – Aufbau und Funktionen Kerstin ArnoldErfurt, 16. September 2008 DFG-Projekt "Ausbau des Netzwerks SED-Archivgut zu.
6. Der OpenMP Standard Direktiven-basiertes API zur Programmierung von Parallelrechnern mit gemeinsamem Speicher für FORTRAN, C und C++
Kapitel 6: Klassifizierung von Sortiertechniken
Kapitel 4 Datenstrukturen
Seminar: "Einführung in C/C++" Einführung in die Programmiersprache C/C++ Donnerstag Andreas Döring SS 2004.
Kombinatorische Topologie in der 3d Geomodellierung
Gliederung Motivation / Grundlagen Sortierverfahren
Sortieren mit Binären Bäumen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Seminar zum pi-Kalkül betreut von Andreas Rossberg
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 11 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Sebastian Grahn Sebastian Kühn
Diskrete Mathematik I Vorlesung Arrays-
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Geometrische Objekte in Datenbanken Martin Pfeifle Institut für Informatik, Universität München Lehr- und Forschungseinheit für Datenbanksysteme Prof.
Intelligent self-adaptation of user interface complexity in a case-based medical training system Alexander Hörnlein, Frank Puppe.
Charly Müller Die Mindestvoraussetzung zum Liga-Fliegen : Fliegen Fliegen Loggern Loggern bis zum folgenden Tag (10 Uhr) online melden.
Displacement Mapping Dynamische Generierung detaillierter Geometrien
Kurzvorstellung der AG Algorithmen und Komplexität MPI Informatik
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
Zur Rolle der Universitätsbibliotheken im Kontext der digitalen Weltbibliothek Vortrag auf der 37. Jahrestagung der Gesellschaft für Informatik am
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Einführung in die Programmierung
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
4 Sortierverfahren 4.1 Einführung 4.2 Naive Sortierverfahren
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Einführung in die Programmierung
Institut für C omputer G raphik, TU Braunschweig ModNav3D D. Fellner, S. Havemann, G. Müller 1 Modellierung von und Navigation in 3D-Dokumenten (ModNav3D)
Computergraphische Visualisierungs- verfahren für 3D-Stadtmodelle
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Polynome und schnelle Fourier-Transformation
Efficient Alias Set Analysis Using SSA Form Proseminar Programmanalyse WS 11/12 André Hunke.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Institut für Theoretische Informatik
Informatik 1 Letzte Übung.
Objekte und ihre Beschreibung
Linking and Brushing on ODBC Basis
Institut für C omputer G raphik, TU Braunschweig BioBrowser Interaktive Molekülmodelle als zentrales Zugangs- und Dokumentationswerkzeug für biologische.
Michael Schmidt computer graphics & visualization Texture Mapping Lapped Textures.
Institut für C omputer G raphik, TU Braunschweig ModNav3D S. Havemann 1 Effizienter Austausch von 3D- Dokumenten auf Basis von Generativer Modellierung.
Repetitorium PG : Standard Template Library FH-Darmstadt, FB Informatik.
Institut für C omputer G raphik, TU Braunschweig V 3 D 2 -Workshop München Fellner/Havemann/Müller1 Modellierung von und Navigation in großen 3D-Dokumenten.
Multimedia und Virtual Reality Vorlesung am Martin Kurze Multimedia in 3D.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Einführung in die Programmierung mit Java
Geoinformation II 6. Sem. Vorlesung April 2000 Geometrische Algorithmen - ein einführendes, größeres Beispiel für ein Semester-begleitendes Programmier.
Spatial Partition Game Programming Patterns / Optimization Patterns AM3: Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Dozent: Prof.
Tutorium Software-Engineering SS14 Florian Manghofer.
THOMAS HANNEFORTH C++ IN DER CL II. GRUNDLEGENDE THEMEN Objektkonstruktion/ Objektdestruktion/ Zuweisung Objekte, Zeiger und Referenzen Wert und Referenzaufruf.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
 Präsentation transkript:

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

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

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.

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

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

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

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

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

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

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

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

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 (?)

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

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]

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;

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;... };

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

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

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