Institut fur¨ Software- und Multimediatechnik, Professur fur ... - TU … · 2013-09-26 · TU...
Transcript of Institut fur¨ Software- und Multimediatechnik, Professur fur ... - TU … · 2013-09-26 · TU...
Fakultat Informatik Institut fur Software- und Multimediatechnik, Professur fur Computergraphik und Visualisierung
BESCHLEUNIGTE VISUALISIERUNGVON CAD-MODELLEN MITTELSNETZVEREINFACHUNG
DiplomverteidigungPhilipp Bohnke
Dresden, 26.09.2013
Motivation� CAD-Modelle werden fur verschiedene Anwendungen tesseliert� Tesselierung von CAD-Modellen erzeugt hoch aufgeloste 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 M0 eines Netzes M
� Entweder wird eine Zielkomplexitat 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
! AnalyseVereinfachungSelbstdurchdringungStitchingFazit & Quellen
Initiale Annahmen & Anforderungen� Es werden Dreiecksnetze betrachtet� Die Netze sind technischer Natur� Visuelle Qualitat der Ergebnisse ist wichtig
! Features im Netz sollen erhalten bleiben! Selbstdurchdringung/Self Intersection (SI) soll verhindert werden
� Robustheit gegenuber 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 Oberflachen =nicht zusammenhangend
Weitere Eigenschaften� Hohe Valenzen
� Heterogene Tesselierung
! Sollten bei der Wahl des Algorithmus berucksichtigt werden!
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 5 von 27
Analyse! Vereinfachung
SelbstdurchdringungStitchingFazit & Quellen
UmsetzungDie 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]
v0v1
v0 v1 v′
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 6 von 27
Ablauf der Vereinfachung
for all edge do . Priorisierung aller Kantenerror = rate(edge)heap.push( error, edge )
end for
while requirements not met do . Prufe Abbruchbedingungedge = heap.minif check operation allowed( edge ) then . Ist die Operation erlaubt?
execute operation( edge )update neighbours( edge ) . Operation andert Kosten
end if
heap.popend while
. Abbruchbedingungen: Maximaler Fehler, Zielkomplexitat
. Erlaubte Operation: Keine SI, maximale Normalenabweichung eingehalten,keine komplexe Geometrie erzeugen
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 7 von 27
Auflosungssequenz
Auflosungssequenz Auto - 100 % , 50 %, 20 %
� Das Original besteht aus ca. 144.000 Dreiecken� Vereinfacht wurde mit Edge Collapse� Die Normalenabweichung wurde auf 35� beschrankt� Der Maximale Fehler wurde auf 256 bzw. 1.024 beschrankt
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 8 von 27
Erhaltung von Lochern
� Durch Ausschluss von Randkanten
� Durch Gewichtung der Fehlermetrik fur Randkanten
� Gewichtung vereinfacht allerdings auch Netzrand
Original Ablehnung Gewichtung
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 9 von 27
Erhaltung von Bohrungen
� Durch Ablehnung von Featurekanten
� Durch Gewichtung der Fehlermetrik fur Featurekanten und Beschrankung derNormalenabweichung
! Gewichtung allein reicht nicht aus!
Original Ablehnung Gewichtung zus. Normalen
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 10 von 27
Erhaltung von Vertiefungen
� Durch Beschrankung der Normalenabweichung
! Rest des Netzes wird auch weniger vereinfacht
Original Begrenzung auf 15� - 80 % Keine Begrenzung - 90 %
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 11 von 27
Diskussion Vereinfachung
Vorteile� Qualitativ gute Ergebnisse
� Ermoglicht hohe Reduktionsraten
� Flexibel anpassbar & erweiterbar
� Ermoglicht die Verhinderung von Selbstdurchdringung
� Ausschluss und Gewichtung von Kanten ermoglicht Erhaltung von Features
Nachteile� Gesamtes Netz muss in Speicher passen
� Maximaler Fehler wenig intuitiv
� Behandelt Unstetigkeiten nicht ! Stitching
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 12 von 27
AnalyseVereinfachung
! SelbstdurchdringungStitchingFazit & Quellen
Selbstdurchdringung
� Wird durch Modellierung oder Tesselierung erzeugt� Bedeutet Schneiden der Oberflache 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 verandert, kann dadurch SI entstehen
� Wurde eine Operation SI verursachen, muss sie abgelehnt werden
Problem� Beim Schnitttest wird nur der konkrete Zustand betrachtet
� Uberprufung der beeinflussten Geometrie in allen Zustanden notig
! Verfolgen der Operation uber 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 uber die Zeit werden ,,Time-Sweeps” der beeinflusstenNetzelemente genutzt [BGK03].
� Netzelement wird um Zielpunkt der Operation erganzt
� Knoten ! Liniensegment
� Kante ! Dreieck
� Dreieck ! Tetraeder
Die Time-Sweeps werden gegen stationare (= nicht beeinflusste) Geometriegetestet.
v0
Vertex Sweep
e0
e1
Edge Sweep
t0
t1
t2
Triangle Sweep
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 15 von 27
Ablauf SI-Testfor a in affected do . Beeinflusste Geometrie
for s in stationary do
if have common vertex( a+target, s) then . Triviale Falle ausschließencontinue
end if
if intersect( a+target, s ) then . Bei Schnitt abbrechencheck failed
end if
end for
end for
check passedTriviale Falle: Mit stationarer Geometrie benachbarte, beeinflusste Geometrie.
v0 v′
TU Dresden, 26.09.2013 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 beschranken !Suchgitter notig
Suchgitter� Regulares Gitter
� Ermoglicht Abfrage der umliegenden Elemente
� Zellbreite = 2 * mittlere Kantenlange
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 fur Performance-ProblemeI. Heterogene Auflosung der Netze
� Lange Kanten ! viele nahe Elemente
� Beispiel Container: 0,0004 bis 1118,01 Kantenlange (ø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. gunstiger
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 18 von 27
Diskussion - Performance
Ursachen fur Performance-ProblemeII. Operationen ohne Selbstdurchdringung
� Wird nur geometrische Redundanz entfernt, entsteht keine SI
� Es mussen alle SI-Tests durchgefuhrt werden
! SI-Verhinderung ist zu Beginn oftmals nicht notig! Trennung in zwei Phasen: Redundanzentfernung und starkere Vereinfachung
III. Implementierung
� Nicht-optimierte Reihenfolge der Schnitttests
� Nicht-optimierte Schnitttests
� Hohe Anzahl der Schnitttests, da Elemente aufgrund ihrer Bounding Boxeingetragen werden
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 19 von 27
Diskussion - Funktionalitat
Die erfolgreiche Verhinderung ist stark von einem gewahlten " abhangig� Benotigt bei der Erkennung von degenerierten Fallen und Vergleich von
Floats� Aufgrund heterogener Tesselierung der Netze kaum allgemeingultig zu
bestimmen� Zum Finden eines " wurde eine Reihe von Netzen mit variiertem " vereinfacht� Dabei konnte kein allgemeingultiges " gefunden werden
Ist das " entsprechend gewahlt, funktioniert die SI-Verhinderung zufriedenstellend.
Original Ohne Verhinderung Mit Verhinderung
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 20 von 27
AnalyseVereinfachungSelbstdurchdringung
! StitchingFazit & Quellen
Unstetige Patches! Stitching� Topologieverandernde Operatoren verbinden nahe Elemente [BGGK03]� Problematisch bei beidseitig modellierten Flachen
?
Die Orientierung ist beim Verbinden nicht immer konsistent orientierbar.� Bei Beschrankung auf Rander eindeutig� Im ersten Schritt entsteht komplexe Geometrie – schlecht bei Abbruch
v0
v1
v′0
v′1
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 21 von 27
Stitching - Ablauf
� Alternative zu topologieverandernden Operatoren
� Nahe Flachen werden nicht verschmolzen
� Verringert Anzahl Randkanten durch Einfugen von Facetten
� Vorverarbeitungsschritt - unabhangig von Abbruchkriterien
Ablaufworking list = find boundary edges . Randkanten des Netzesfor all edge in working list do
partner = find partner( edge ) . Finde Partnerkante zum Verbindenif check( edge, partner ) then . Uberprufe Bedingungen
insert face(edge, partner) . Fuge Facette einworking list.push( new boundary edges) . Betrachte neue Rander
end if
end for
� find partner sucht geeignete Kante zum verbinden
� check pruft Bedingungen: Distanz, Orientierung, Partner sind Randkanten
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 22 von 27
Auswertung - Stitching
Original Nach Stitching
� Reduktion der Randkanten von 1.234auf 993 (-19.53%)
� Reduktion der Patches von 26 auf 4
� Konsistente Orientierung erreicht
� Heterogene Rander werden kaum erfasst
� Dauer: 8,54 Sekunden
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 23 von 27
Auswertung - Stitching
Original Nach Stitching
� Reduktion der Rander 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 mussen
� Schließt nicht alle Lucken (tw. vergleichbar mit Vertex Clustering)
� Erhoht die Anzahl der Facetten im Netz
� Eingefugt Facetten ergeben oft Featurekanten ! Glatten verursacht Fehler
Erweiterungen� Behandlung heterogener Patchrander
� Selbstdurchdringungsverhinderung
TU Dresden, 26.09.2013 Netzvereinfachung von CAD-Modellen Folie 25 von 27
AnalyseVereinfachungSelbstdurchdringungStitching
! Fazit & Quellen
Fazit� Implementierung der Vereinfachung zufriedenstellend
� Stitching erarbeitet – Erweiterungen noch notig
� SI-Verhinderung langsam, funktioniert prinzipiell gut
Offene Probleme� Globale, intuitive Fehlerschranke (Beispielsweise Hausdorff-Distanz)
� Auflosen initialer Selbstdurchdringung
� Vermeidung von Selbstdurchdringung
� Erweiterung des Stitching-Operators auf heterogene Rander
� 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 andComputer 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 WernerStuetzle.Mesh optimization.In Proceedings of the 20th annual conference on Computer graphics andinteractive 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 fur die Aufmerksamkeit!
Quadric Error Metrik� Berechnet den quadratischen Abstand eines Punktes zu einer Menge von
Flachen
� Erlaubt Vereinfachung mit Gedachtnis - Bewertung bezieht sich aufOriginalnetz
� Durch Gewichte flexibel einsetzbar
Quadrik bezuglich einer Facette Fi mit Normale ni und Abstand zum Ursprung di :
Q(p) = hAip � 2~bi , pi+ ci
A = ni nTi ist quadratische Matrix, ~bi = nidi ein Vektor, und ci = d2 ein Skalar.
Die Vertexquadrik ergibt sich durch Aufsummieren der Quadriken der inzidentenFacetten:
Qv (p) =1P
i Areai
X
i
Areai �Q(p)
Eine optimale Position kann durch Losen von
Ap = ~b
bestimmt werden.
Rand- und Featurekanten� Eine zur Kante senkrecht stehende Ebene wird der QEM hinzugefugt
� Diese kann uber die Binormale bestimmt werden
� Es muss eine Affinkombination erhalten bleiben:
Q0
v (p) = (1 � !b) � Qv + !b � Qb
n ~t
b
Berechnung der Binormale
Topologieverandernde Operatoren
v0 v1v0 v1 v′
(Vertex) Pair Contraction
v0e
v0
v1 v′
Vertex Edge Contraction
v0
t
v0
v1v′
Vertex Triangle Contraction
(nach [BGGK03])
Stitching - Knotenpaare
v0
v1
v′0
v′1
Knotenpaare
v1
v0
v′0/v′
1
Kantenpaare
� Finde Randnoten v 0
0, v 0
1 zu v0, v1 mit minimalem Abstand
� Zwei Falle sind moglich
Stitching - Minimaler Maximalabstand
d1 d2 d3 d4
d5
� Finde Randkante mit minmalem Maximalabstand
� Gunstig, falls keine gultigen Knotenpaare gefunden werden
Stitching - Konsistenzbedingungen
Entfernung zu groß Falsche Orientierung
Erweitertes Stitching
v′1
ev0
v1
v′0
v′1
ev0
v1
Erweitertes Stitching
Features
Loch Bohrung Vertiefung