Institut fur¨ Software- und Multimediatechnik, Professur fur ... - TU … · 2013-09-26 · TU...

Post on 04-Apr-2020

0 views 0 download

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