www.wikidata.de-de.nina.az
Marching Cubes ist ein Algorithmus zur Darstellung von Isoflachen in der 3D Computergrafik Er nahert eine Isoflache durch eine Polygongrafik an Polygonmodell eines Kopfes der mittels Marching Cubes aus 150 MRT Schichten extrahiert wurde 150 000 Dreiecke Inhaltsverzeichnis 1 Entwicklung des Algorithmus 2 Bedeutung des Algorithmus 3 Der Algorithmus 3 1 Eingabe 3 2 Datenstrukturen 3 3 Verarbeitung 3 4 Ausgabe 4 Funktionsweise 5 Verbesserungen 5 1 Octree 5 2 Approximation durch Diskretisierung 6 Patentierung 7 Weblinks 8 EinzelnachweiseEntwicklung des Algorithmus BearbeitenMarching Cubes wurde von William E Lorensen und Harvey E Cline als Ergebnis einer Forschungsarbeit fur die Forschungsabteilung des Unternehmens General Electric im Jahre 1985 entwickelt und zum Patent angemeldet 1 Im Jahre 1987 wurde der Algorithmus in der Fachzeitschrift Computer Graphics vorgestellt Lorensen und Cline beschaftigten sich mit der effizienten Visualisierung von Bilddaten bildgebender Verfahren wie Computertomografie Magnetresonanztomografie und Single Photon Emissionscomputertomographie 2 3 Bedeutung des Algorithmus Bearbeiten nbsp DrahtgittermodelleIn der 3D Computergrafik gibt es verschiedene Methoden dreidimensionale Objekte zu modellieren Eine davon ist die Modellierung als polygonale Oberflache Drahtgittermodell Man fugt eckige Flachen in der Regel Dreiecke so aneinander dass sie die Oberflache des Objektes nachbilden Diese Modelle konnen sehr schnell und einfach in Bilder umgesetzt werden der Speicherbedarf eines Modells ist relativ gering und durch zahlreiche Raffinessen sind sehr realistische Bilder moglich Andererseits ist es fast unmoglich auf diese Weise ein Medium wie Nebel zu modellieren welches keine klar umrissene Oberflache aufweist nbsp Modellhafte Veranschaulichung eines Voxelgitters Eine andere Methode ist die Modellierung als Voxel Datenmenge In regelmassigen Abstanden wird an einem einzelnen Punkt aus dem Objekt die Dichte des Materials abgelesen das Ergebnis ist ein wurfelformiges dreidimensionales Gitter aus Voxeln Bildgebende Systeme wie die Computertomografie erzeugen von Natur aus solche Modelle Diese Voxel Modelle konnen recht einfach in Bilder umgesetzt werden die zudem sehr realistisch und detailgetreu wirken Allerdings benotigt das Modell sehr viel Speicherplatz in Grossenordnungen von mehreren hundert Megabyte bis einigen Gigabyte und die Visualisierung dauert erheblich langer als bei einem polygonalen Oberflachenmodell vergleichbarer Grosse Zudem sind Manipulationen zum Beispiel das Deformieren eines Objektes deutlich schwieriger teils sogar unmoglich Marching Cubes ermoglichte es erstmals unpraktikable Volumen Modelle durch praktikable polygonale Oberflachen Modelle anzunahern um sie anschliessend effizient zu visualisieren Der Algorithmus befriedigte damit den Wunsch der Radiologie nach einem Verfahren Daten bildgebender Systeme wie der Computertomografie schnell und aussagekraftig bildlich darzustellen Auch heute noch ist Marching Cubes als effizienter Transformationsalgorithmus im Einsatz Zwar hat die Volumengrafik in der Zwischenzeit Fortschritte gemacht und durch 3D Texturen Eingang in die Computergrafik Praxis gefunden jedoch gibt es bisher keine Hardware welche die Volumengrafik auf ahnliche Weise beschleunigt wie dies mit Grafikprozessoren fur Dreiecke gelingt Der Algorithmus BearbeitenDie Idee von Marching Cubes ist es das gegebene Voxelmodell eines Objekts zunachst in kleine Wurfel cubes zu zerlegen und anschliessend von einem Wurfel zum nachsten zu marschieren und zu bestimmen wie die Oberflache des Objekts den jeweiligen Wurfel durchschneidet Dazu wird ein vom Benutzer gewahlter Grenzwert verwendet um zu bestimmen welche Teile der einzelnen Wurfel innerhalb und welche ausserhalb des letztendlichen Objekts liegen Durch Veranderung dieses als Dichte interpretierten Grenzwerts kann der Benutzer bestimmen welche Bereiche des Objekts dargestellt werden und welche nicht Eingabe Bearbeiten Der Algorithmus verarbeitet folgende Eingabeparameter Voxelgrafik Das Volumen Modell des Objekts Format Fur gewohnlich liegt eine Voxelgrafik als Liste L zweidimensionaler Arrays Ai genannt Scheiben vor Es gilt L i Ai ferner ist Az x y rx y z 0 1 der Dichtewert des modellierten Objektes an der Stelle x y z dd Dichtewert r Uber diesen Parameter wird gesteuert welche Bereiche des Modells als solide und welche als transparent interpretiert werden Format r 0 1 dd Datenstrukturen Bearbeiten nbsp Die 15 unterschiedlichen KonfigurationenDie folgenden Datenstrukturen werden vom Algorithmus verwendet oder erzeugt aber nicht als Eingabeparameter ubergeben Triangle Lookup Table TLT Es gibt 256 Moglichkeiten wie eine beliebig geformte Oberflache einen Marching Cubes Wurfel in Innen und Aussenbereiche aufteilen kann denn laut Kombinatorik gibt es 28 256 Moglichkeiten die 8 Ecken eines Marching Cubes Wurfels in 2 Mengen innerhalb und ausserhalb aufzuteilen Die Triangle Lookup Table enthalt alle diese Moglichkeiten dabei gibt es aufgrund der Symmetrie der Falle tatsachlich nur 15 voneinander verschiedene Eintrage Format TLT i v1 v2 v3 fur den Fall i liefert TLT i eine Liste aller benotigten Dreiecke bestehend aus je drei Knoten dd D Der Algorithmus erstellt hier eine Liste aller Dreiecke die benotigt werden um die eingegebene Voxelgrafik durch eine Polygongrafik anzunahern N Zusatzlich zu der Dreiecksliste erstellt der Algorithmus hier eine Liste aller Einheitsnormalen der Knoten der Dreiecke Verarbeitung Bearbeiten nbsp Beispiel fur einen Wurfel Dunkle Ecken sind gt p nbsp Der Wurfel mit den berechneten DreieckenDaten einlesen Der Algorithmus wahlt zunachst zwei direkt aufeinanderfolgende Scheiben Ai und Ai 1 aus dem eingegebenen Voxelmodell aus Kubus bilden Dann bildet der Algorithmus aus vier benachbarten ein Quadrat bildenden Knoten der Scheibe Ai und den vier direkt gegenuberliegenden Knoten der Scheibe Ai 1 einen Kubus Die acht Ecken des Kubus werden als v1 v8 die zwolf Kanten als e1 e12 durchnummeriert v steht dabei fur vertex Knoten e fur edge Kante siehe Abbildung Index des Kubus berechnen Nun wird aus den Voxelwerten der acht Knoten ein Index gebildet Ist vi gt r so ist die i te Ziffer eine 1 ansonsten eine 0 Man erhalt also eine achtstellige Zahl deren Ziffern jeweils 0 oder 1 sind im Beispiel rechts 10100101 Betrachtet man dies als Binarzahl und wandelt sie in eine Dezimalzahl um so erhalt man den gewunschten Index i 0 1 255 Benotigte Kanten erzeugen Schlage den Eintrag i in der Triangle Lookup Table nach also TLT i Erzeuge alle dort angegebenen Dreiecke Oberflachenschnittpunkte interpolieren Bestimme die Position jedes Knotens der eben erzeugten Dreiecke auf den Kanten des Wurfels durch lineare Interpolation der anliegenden Ecken Einheitsnormalen berechnen und interpolieren Berechne fur jede Ecke des Kubus die Einheitsnormale und interpoliere die Einheitsnormalen der Knoten der eben erzeugten Dreiecke durch lineare Interpolation zwischen den Einheitsnormalen der anliegenden Kubus Ecken Daten ausgeben Fuge die erzeugten Dreiecke und die dazugehorigen Einheitsnormalen der Liste aller bisher gefundenen Dreiecke und Einheitsnormalen hinzu und marschiere weiter zum nachsten Kubus Ausgabe Bearbeiten D die Liste aller erzeugten Dreiecksknoten N die Liste aller Einheitsnormalen in den Dreiecksknoten Funktionsweise BearbeitenDer Standard Algorithmus wie ursprunglich von William E Lorensen und Harvey E Cline beschrieben konstruiert eine facettierte Isoflache indem er den Datensatz sequentiell wurfelweise verarbeitet Somit verarbeitet der Ansatz zuerst die m Wurfel der ersten Zeile der ersten Schicht des Datensatzes in sequentieller Reihenfolge Wahrend dieser Verarbeitung wird jede Wurfelecke der einen Wert gleich oder uber dem Isowert hat markiert Alle anderen Ecken bleiben unmarkiert Die Isoflache schneidet jede Wurfelkante die mit einer markierten und einer unmarkierten Ecke endet Jeder Wurfel der eine geschnittene Kante enthalt ist aktiv Die Berechnungen die die aktiven Wurfel finden konnen als die aktive Wurfelbestimmungskomponente des Algorithmus angesehen werden Diese Komponente kann als eigenstandiger fruher Verarbeitungsschritt implementiert oder in eine andere Verarbeitung integriert werden aber in beiden Fallen beinhaltet sie das Durchlaufen von Datensatzen in sequentieller Reihenfolge Da jeder der 8 Eckpunkte eines Wurfels entweder markiert oder unmarkiert sein kann gibt es 28 256 mogliche Markierungsszenarien fur einen Wurfel Der Standard Algorithmus berucksichtigt jedoch Spiegelsymmetrie und Rotationssymmetrie was zu nur 15 Markierungsszenarien fuhrt Spiegelsymmetrische Wurfel haben das gleiche Wurfel Isoflachen Schnittmuster Zwei Wurfel sind rotationssymmetrisch wenn es eine Reihe von Drehungen gibt die wenn sie auf einen Wurfel angewendet werden ihn in eine neue Orientierung transformieren in der die Markierung an jeder transformierten Ecke identisch mit der Markierung des anderen Wurfels ist Rotationssymmetrische Wurfel haben aquivalente Wurfel Isoflachen Schnittmuster Die Schnittpunkte zwischen Isoflache und Kante konnen unter Verwendung einer Interpolationstechnik mit Subvertex Genauigkeit geschatzt werden Der Standard Algorithmus verwendet lineare Interpolation um den Schnittpunkt fur jede Schnittkante zu schatzen Wenn eine Kante E displaystyle E nbsp mit der Einheitslange die Endpunkte V s displaystyle V s nbsp und V e displaystyle V e nbsp hat deren Skalarwerte L s displaystyle L s nbsp bzw L e displaystyle L e nbsp sind dann hat der Schnittpunkt I I x I y I z displaystyle I I x I y I z nbsp bei einem Isowert a displaystyle alpha nbsp Komponenten der Form I x y z V s x y z r V e x y z V s x y z displaystyle I x y z V s x y z rho V e x y z V s x y z nbsp wobei r a L s L e L s displaystyle rho frac alpha L s L e L s nbsp Ein Vorteil der wurfelweisen Verarbeitung des Standard Algorithmus ist dass jeder Kantenschnittpunkt nur einmal berechnet werden muss Trotzdem konnen Algorithmen die andere Durchlaufmuster verwenden auch die gleichen Rechenvorteile durch die Verwendung von Zusatzdatenstrukturen z B Hashtabellen erreichen Der letzte Schritt des Algorithmus besteht darin dreieckige Facetten zu erzeugen die den Teil der Isoflache darstellen die jeden Wurfel schneidet Die Schnittpunkte definieren die Ecken der Dreiecke und die Sammlung der dreieckigen Facetten in allen Wurfeln bildet das dreieckige Netz das die Isoflache definiert Das Facettierungsmuster in jedem Wurfel kann aus der Lookup Tabelle fur die Schnittpunkt Topologie bestimmt werden Die Verarbeitungsschritte die die Facettierung aufbauen konnen als Isoflachen Komponente des Algorithmus betrachtet werden 3 Verbesserungen BearbeitenDer oben dargestellte Algorithmus fur Marching Cubes ist sehr rudimentar Er nutzt beispielsweise nicht aus dass bereits berechnete Informationen wieder verwendet werden konnen Teilen sich zwei benachbarte Kuben eine Kante so mussen darauf liegende Knoten nur einmal interpoliert werden der Nachbar kann die bereits gefundenen Knoten einfach ubernehmen Da die Laufzeit des Algorithmus nur von der Anzahl der betrachteten Kuben abhangig ist liegt in der Verminderung dieser Anzahl das grosste Einsparpotenzial Weitere Optimierungsansatze versuchen daher vor dem Marching Cubes Durchlauf diejenigen Wurfel aus der Datenmenge herauszufiltern die ohnehin nicht mit der Isooberflache in Beruhrung kommen Dies sind diejenigen Kuben die vollstandig innerhalb oder vollstandig ausserhalb des Objektes liegen Octree Bearbeiten Eine 1992 von Wilhelms van Gelder vorgeschlagene Methode besteht darin das Volumen in einem Octree abzulegen In einem Octree wird normalerweise jeder Wurfel von Voxeln in acht Unterwurfel zerlegt Zu jedem Wurfel wird nun der niedrigste und der hochste Wert abgespeichert der darin zu finden ist Sind bei einem Wurfel beide Werte gleich so wird er nicht mehr weiter unterteilt Das Ergebnis ist eine Hierarchie von kleiner werdenden Wurfeln fur die jeweils ihr Werteintervall bekannt ist Durch eine Traversierung dieser Hierarchie lassen sich nun diejenigen Wurfel aussortieren deren Minimum uber oder deren Maximum unter dem Iso Schwellwert liegt 4 Das Verfahren hat die Nachteile dass bei jeder Anderung des Isowertes die Hierarchie komplett neu durchlaufen werden muss und dass in realistischen Datensatzen die normalerweise zentriert vorliegen meist erst auf unteren Hierarchieebenen Wurfel ignoriert werden konnen Approximation durch Diskretisierung Bearbeiten Hierbei handelt es sich um eine Vereinfachung des Marching Cube Algorithmus die in der obigen Beschreibung des Algorithmus genannte Interpolation der Isoflachenschnittpunkte entfallt Eckpunkte der durch den Algorithmus erzeugten Dreiecke sind dann lediglich die Mittelpunkte der zwolf Kanten des Wurfels sowie sein Mittelpunkt Auch die Flachennormalen mussen dann nicht mehr interpoliert werden sondern konnen auch in einer Nachschlagetabelle gespeichert werden Ein Vorteil dieser Approximation ist dass nur noch Integer Berechnungen durchgefuhrt werden mussen Ausserdem erhalt man viele koplanare Dreiecksflachen was die Anzahl der resultierenden Dreiecksflachen wesentlich reduziert 5 Patentierung BearbeitenNach der Patentierung im Jahre 1985 1 konnte der MC Algorithmus lange Jahre nicht verwendet werden ohne Gebuhren an den Entwickler zu zahlen Daher wurde als Alternative der Marching Tetrahedrons Algorithmus entwickelt welcher die Voxel Wurfel in Tetraeder unterteilte und sonst gleich funktionierte Nach 20 Jahren Gultigkeit lief das US Patent auf den MC Algorithmus im Jahre 2005 aus Weblinks BearbeitenTutorial MC Quellcode in C bzw CEinzelnachweise Bearbeiten a b Patent US4710876A System and method for the display of surface structures contained within the interior region of a solid body Angemeldet am 5 Juni 1985 veroffentlicht am 1 Dezember 1987 Anmelder General Electric Erfinder Harvey E Cline William E Lorensen William E Lorensen Harvey E Cline Marching Cubes A high resolution 3D surface construction algorithm In Computer Graphics Vol 21 Nr 4 Juli 1987 S 163 169 doi 10 1145 37402 37422 a b Timothy S Newman Hong Yi A survey of the marching cubes algorithm In Computer Graphics Vol 30 Nr 5 Oktober 2006 S 854 879 doi 10 1016 j cag 2006 07 021 Jane Wilhelms Allen van Gelder Octrees for Faster Isosurface Generation In ACM Transactions on Graphics TOG Vol 11 Nr 3 Juli 1992 S 201 227 doi 10 1145 99308 99321 C Montani R Scateni R Scopigno Discretized Marching Cubes In Visualization 94 Proceedings IEEE Computer Society Press 1994 S 281 287 doi 10 1109 VISUAL 1994 346308 Abgerufen von https de wikipedia org w index php title Marching Cubes amp oldid 241899975