Folien der Verteidigung ( - 1.7 MB)

Werbung
Fakultät Informatik Institut für Software- und Multimediatechnik, Professur für Computergraphik und Visualisierung
BESCHLEUNIGTE VISUALISIERUNG
VON CAD-MODELLEN MITTELS
NETZVEREINFACHUNG
Diplomverteidigung
Philipp Böhnke
Dresden, 26.09.2013
Motivation
CAD-Modelle werden für verschiedene Anwendungen tesseliert
Tesselierung von CAD-Modellen erzeugt hoch aufgelöste polygonale Netze
Die direkte Darstellung dieser Netze ist ineffizient
– Geometrische Redundanz
– Visuelle Redundanz
Mittels Netzvereinfachung lassen sich die Daten reduzieren
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 2 von 27
Thema
Netzvereinfachung
Erzeugung einer Approximation M 0 eines Netzes M
Entweder wird eine Zielkomplexität oder ein maximaler Fehler vorgegeben
Das jeweils andere wird minimiert
Besonderheiten
!
Je nach Art des Modells ergeben sich Anforderungen an den
Vereinfachungsalgorithmus
Thema: Erarbeitung der Anforderungen und Implementierung eines
geeigneten Vereinfachungsalgorithmus
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 3 von 27
! Analyse
Vereinfachung
Selbstdurchdringung
Stitching
Fazit & Quellen
Initiale Annahmen & Anforderungen
Es werden Dreiecksnetze betrachtet
Die Netze sind technischer Natur
Visuelle Qualität der Ergebnisse ist wichtig
Features im Netz sollen erhalten bleiben
Selbstdurchdringung/Self Intersection (SI) soll verhindert werden
Robustheit gegenüber topologischen Fehlern
!
!
Features
Loch
Bohrung
Vertiefung
Weiterhin gibt es Rand- und Featurekanten.
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 4 von 27
Technische CAD-Modelle
Topologische Fehler
Inkonsistente Normalen
=
Unstetige Oberflächen
nicht zusammenhängend
Weitere Eigenschaften
Hohe Valenzen
Heterogene Tesselierung
! Sollten bei der Wahl des Algorithmus berücksichtigt werden!
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 5 von 27
!
Analyse
Vereinfachung
Selbstdurchdringung
Stitching
Fazit & Quellen
Umsetzung
Die Netze durchlaufen die folgende Pipeline:
Der Vereinfachungsalgorithmus
Iteratives Verfahren - Schrittweise Anwendung lokaler Operatoren
Halfedge bzw. Edge Collapse [HDD+ 93]
Nutzt die Quadric Error Metric als Fehlermaß [GH97]
v0
v1
TU Dresden, 26.09.2013
v0
v1
Netzvereinfachung von CAD-Modellen
v0
Folie 6 von 27
Ablauf der Vereinfachung
for all edge do
error = rate(edge)
heap.push( error, edge )
end for
while requirements not met do
edge = heap.min
if check operation allowed( edge ) then
execute operation( edge )
update neighbours( edge )
end if
heap.pop
end while
.
.
. Priorisierung aller Kanten
. Prüfe Abbruchbedingung
. Ist die Operation erlaubt?
. Operation ändert Kosten
Abbruchbedingungen: Maximaler Fehler, Zielkomplexität
Erlaubte Operation: Keine SI, maximale Normalenabweichung eingehalten,
keine komplexe Geometrie erzeugen
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 7 von 27
Auflösungssequenz
Auflösungssequenz Auto - 100 % , 50 %, 20 %
Das Original besteht aus ca. 144.000 Dreiecken
Vereinfacht wurde mit Edge Collapse
Die Normalenabweichung wurde auf 35 beschränkt
Der Maximale Fehler wurde auf 256 bzw. 1.024 beschränkt
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 8 von 27
Erhaltung von Löchern
Durch Ausschluss von Randkanten
Durch Gewichtung der Fehlermetrik für Randkanten
Gewichtung vereinfacht allerdings auch Netzrand
Original
TU Dresden, 26.09.2013
Ablehnung
Netzvereinfachung von CAD-Modellen
Gewichtung
Folie 9 von 27
Erhaltung von Bohrungen
!
Durch Ablehnung von Featurekanten
Durch Gewichtung der Fehlermetrik für Featurekanten und Beschränkung der
Normalenabweichung
Gewichtung allein reicht nicht aus!
Original
TU Dresden, 26.09.2013
Ablehnung
Gewichtung
Netzvereinfachung von CAD-Modellen
zus. Normalen
Folie 10 von 27
Erhaltung von Vertiefungen
!
Durch Beschränkung der Normalenabweichung
Rest des Netzes wird auch weniger vereinfacht
Original
TU Dresden, 26.09.2013
Begrenzung auf 15 - 80 % Keine Begrenzung - 90 %
Netzvereinfachung von CAD-Modellen
Folie 11 von 27
Diskussion Vereinfachung
Vorteile
Qualitativ gute Ergebnisse
Ermöglicht hohe Reduktionsraten
Flexibel anpassbar & erweiterbar
Ermöglicht die Verhinderung von Selbstdurchdringung
Ausschluss und Gewichtung von Kanten ermöglicht Erhaltung von Features
Nachteile
Gesamtes Netz muss in Speicher passen
Maximaler Fehler wenig intuitiv
Behandelt Unstetigkeiten nicht
TU Dresden, 26.09.2013
! Stitching
Netzvereinfachung von CAD-Modellen
Folie 12 von 27
!
Analyse
Vereinfachung
Selbstdurchdringung
Stitching
Fazit & Quellen
Selbstdurchdringung
!
Wird durch Modellierung oder Tesselierung erzeugt
Bedeutet Schneiden der Oberfläche mit sich selbst
Ist mittels Schnitttests detektierbar
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 13 von 27
Selbstdurchdringung durch Vereinfachung
Da Vereinfachung Geometrie verändert, kann dadurch SI entstehen
Würde eine Operation SI verursachen, muss sie abgelehnt werden
Problem
!
Beim Schnitttest wird nur der konkrete Zustand betrachtet
Überprüfung der beeinflussten Geometrie in allen Zuständen nötig
Verfolgen der Operation über die ,,Zeit”
t=0
t = 0.5
t=1
Zu t=0 und t=1 tritt keine Selbstdurchdringung auf.
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 14 von 27
Time-Sweeps
Zur Verfolgung über die Zeit werden ,,Time-Sweeps” der beeinflussten
Netzelemente genutzt [BGK03].
Netzelement wird um Zielpunkt der Operation ergänzt
! Liniensegment
! Dreieck
Dreieck ! Tetraeder
Knoten
Kante
Die Time-Sweeps werden gegen stationäre (= nicht beeinflusste) Geometrie
getestet.
t0
e0
v0
t1
e1
t2
Vertex Sweep
TU Dresden, 26.09.2013
Edge Sweep
Netzvereinfachung von CAD-Modellen
Triangle Sweep
Folie 15 von 27
Ablauf SI-Test
for a in affected do
. Beeinflusste Geometrie
for s in stationary do
if have common vertex( a+target, s) then
. Triviale Fälle ausschließen
continue
end if
if intersect( a+target, s ) then
. Bei Schnitt abbrechen
check failed
end if
end for
end for
check passed
Triviale Fälle: Mit stationärer Geometrie benachbarte, beeinflusste Geometrie.
v0
TU Dresden, 26.09.2013
v0
Netzvereinfachung von CAD-Modellen
Folie 16 von 27
Optimierung der Schnitttests
Zum Ausschluss von SI muss Schleife komplett durchlaufen werden
Einige Test-Kombinationen werden subsumiert, es werden
– Vertex-Sweeps werden gg. Knoten, Kanten und Facetten,
– Edge-Sweeps werden gg. Knoten und Kanten,
– Triangle-Sweeps werden gg. Knoten getestet.
Getestete Geometrie auf Bounding Box der Time-Sweeps beschränken
Suchgitter nötig
!
Suchgitter
Reguläres Gitter
Ermöglicht Abfrage der umliegenden Elemente
Zellbreite = 2 * mittlere Kantenlänge
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 17 von 27
Diskussion - Performance
Keine Verhinderung (1,8 Sek.)
Mit Verhinderung (180 Sek.)
Ursachen für Performance-Probleme
I. Heterogene Auflösung der Netze
Lange Kanten
! viele nahe Elemente
Beispiel Container: 0,0004 bis 1118,01 Kantenlänge (øca. 300 )
! Viele kleine Elemente in Zellen
! Adaptives Gitter von Vorteil, wenn große u. kleine Elemente getrennt sind
! Median oder kleinere Quantile als Zellbreite u.U. günstiger
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 18 von 27
Diskussion - Performance
Ursachen für Performance-Probleme
II. Operationen ohne Selbstdurchdringung
Wird nur geometrische Redundanz entfernt, entsteht keine SI
Es müssen alle SI-Tests durchgeführt werden
! SI-Verhinderung ist zu Beginn oftmals nicht nötig
! Trennung in zwei Phasen: Redundanzentfernung und stärkere Vereinfachung
III. Implementierung
Nicht-optimierte Reihenfolge der Schnitttests
Nicht-optimierte Schnitttests
Hohe Anzahl der Schnitttests, da Elemente aufgrund ihrer Bounding Box
eingetragen werden
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 19 von 27
Diskussion - Funktionalität
Die erfolgreiche Verhinderung ist stark von einem gewählten " abhängig
Benötigt bei der Erkennung von degenerierten Fällen und Vergleich von
Floats
Aufgrund heterogener Tesselierung der Netze kaum allgemeingültig zu
bestimmen
Zum Finden eines " wurde eine Reihe von Netzen mit variiertem " vereinfacht
Dabei konnte kein allgemeingültiges " gefunden werden
Ist das " entsprechend gewählt, funktioniert die SI-Verhinderung zufriedenstellend.
Original
TU Dresden, 26.09.2013
Ohne Verhinderung
Netzvereinfachung von CAD-Modellen
Mit Verhinderung
Folie 20 von 27
!
Analyse
Vereinfachung
Selbstdurchdringung
Stitching
Fazit & Quellen
Unstetige Patches
! Stitching
Topologieverändernde Operatoren verbinden nahe Elemente [BGGK03]
Problematisch bei beidseitig modellierten Flächen
?
Die Orientierung ist beim Verbinden nicht immer konsistent orientierbar.
Bei Beschränkung auf Ränder eindeutig
Im ersten Schritt entsteht komplexe Geometrie – schlecht bei Abbruch
v1
v0
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
v10
v00
Folie 21 von 27
Stitching - Ablauf
Alternative zu topologieverändernden Operatoren
Nahe Flächen werden nicht verschmolzen
Verringert Anzahl Randkanten durch Einfügen von Facetten
Vorverarbeitungsschritt - unabhängig von Abbruchkriterien
Ablauf
working list = find boundary edges
. Randkanten des Netzes
for all edge in working list do
partner = find partner( edge )
. Finde Partnerkante zum Verbinden
if check( edge, partner ) then
. Überprüfe Bedingungen
insert face(edge, partner)
. Füge Facette ein
. Betrachte neue Ränder
working list.push( new boundary edges)
end if
end for
find partner sucht geeignete Kante zum verbinden
check prüft Bedingungen: Distanz, Orientierung, Partner sind Randkanten
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 22 von 27
Auswertung - Stitching
Original
Nach Stitching
TU Dresden, 26.09.2013
Reduktion der Randkanten von 1.234
auf 993 (-19.53 )
%
Reduktion der Patches von 26 auf 4
Konsistente Orientierung erreicht
Heterogene Ränder werden kaum erfasst
Dauer: 8,54 Sekunden
Netzvereinfachung von CAD-Modellen
Folie 23 von 27
Auswertung - Stitching
Original
Nach Stitching
%
Reduktion der Ränder von 55.294 auf 47.912 (-13.50 )
Reduktion der Patches von 6.379 auf 5.102
Keine konsistente Orientierung
Sehr lange Kante werden nicht verbunden
Dauer: 137,4 Sekunden
Viele kleine Patches, oft umorientieren
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 24 von 27
Diskussion - Stitching
Vorteile
Verringert die Anzahl der Randkanten und Patches
Vermeidet komplexe Geometrie
Ergibt konsistentere Orientierung der Normalen
Nachteile
Langsam, wenn (viele) Patches (oft) umorientiert werden müssen
Schließt nicht alle Lücken (tw. vergleichbar mit Vertex Clustering)
Erhöht die Anzahl der Facetten im Netz
Eingefügt Facetten ergeben oft Featurekanten
! Glätten verursacht Fehler
Erweiterungen
Behandlung heterogener Patchränder
Selbstdurchdringungsverhinderung
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 25 von 27
!
Analyse
Vereinfachung
Selbstdurchdringung
Stitching
Fazit & Quellen
Fazit
Implementierung der Vereinfachung zufriedenstellend
Stitching erarbeitet – Erweiterungen noch nötig
SI-Verhinderung langsam, funktioniert prinzipiell gut
Offene Probleme
Globale, intuitive Fehlerschranke (Beispielsweise Hausdorff-Distanz)
Auflösen initialer Selbstdurchdringung
Vermeidung von Selbstdurchdringung
Erweiterung des Stitching-Operators auf heterogene Ränder
Optimieren von Facettennormalen mittels QEM
Optimierung der Implementierung
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 26 von 27
Quellen
Pavel Borodin, Stefan Gumhold, Michael Guthe, and Reinhard Klein.
High-quality simplification with generalized pair contractions.
In In GraphiCon 2003, pages 147–154, 2003.
Pavel Borodin, Stefan Gumhold, and Reinhard Klein.
Intersection free simplification.
In In The 4th Israel-Korea Bi-National Conference on Geometric Modeling and
Computer Graphics, pages 11–16, 2003.
Michael Garland and Paul S. Heckbert.
Surface simplification using quadric error metrics, 1997.
Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald, and Werner
Stuetzle.
Mesh optimization.
In Proceedings of the 20th annual conference on Computer graphics and
interactive techniques, SIGGRAPH ’93, pages 19–26, New York, NY, USA,
1993. ACM.
TU Dresden, 26.09.2013
Netzvereinfachung von CAD-Modellen
Folie 27 von 27
Danke für die Aufmerksamkeit!
Quadric Error Metrik
Berechnet den quadratischen Abstand eines Punktes zu einer Menge von
Flächen
Erlaubt Vereinfachung mit Gedächtnis - Bewertung bezieht sich auf
Originalnetz
Durch Gewichte flexibel einsetzbar
^
Quadrik bezüglich einer Facette Fi mit Normale ni und Abstand zum Ursprung di :
( ) = hAi p
2~bi , p
Q p
=^^
i + ci
=^
=
A ni nTi ist quadratische Matrix, ~bi
ni di ein Vektor, und ci
d 2 ein Skalar.
Die Vertexquadrik ergibt sich durch Aufsummieren der Quadriken der inzidenten
Facetten:
1
Qv p
i
( ) = P Area
i
i
X Area Q(p)
i
Eine optimale Position kann durch Lösen von
Ap
bestimmt werden.
= ~b
Rand- und Featurekanten
Eine zur Kante senkrecht stehende Ebene wird der QEM hinzugefügt
Diese kann über die Binormale bestimmt werden
Es muss eine Affinkombination erhalten bleiben:
( ) = (1
Qv0 p
n̂
!b ) Qv + !b Qb
~t
b̂
Berechnung der Binormale
Topologieverändernde Operatoren
v0
v0
v1
v1
v0
(Vertex) Pair Contraction
v0
v1
e
v0
v0
Vertex Edge Contraction
v0
t
v0
v0
v1
Vertex Triangle Contraction
(nach [BGGK03])
Stitching - Knotenpaare
v1
v0
v10
v00
0 /v 0
v0
1
v1
v0
Knotenpaare
Kantenpaare
Finde Randnoten v00 , v10 zu v0 , v1 mit minimalem Abstand
Zwei Fälle sind möglich
Stitching - Minimaler Maximalabstand
d1
d2
d3
d4
d5
Finde Randkante mit minmalem Maximalabstand
Günstig, falls keine gültigen Knotenpaare gefunden werden
Stitching - Konsistenzbedingungen
Entfernung zu groß
Falsche Orientierung
Erweitertes Stitching
v0
e
v0
e
v00
v1
v1
v10
v10
Erweitertes Stitching
Features
Loch
Bohrung
Vertiefung
Herunterladen