Sprachen

SurfCAD++ - SS96, WS96/97

Thema: 
SurfCAD++ – Ein CAD-System zur Flächenmodifikation
Zeitraum: 
SS96, WS96/97
Umfang: 
8 SWS pro Semester
Veranstalter: 
Thematik: 

Heutige Modelliersysteme sind meist historisch gewachsen und dadurch auf die Bereiche ihrer anfänglichen Anwender spezialisiert. Aus diesem Grunde fehlen häufig Algorithmen, die zumeist bei der mathematisch orientierten wissenschaftlichen Visualisierung Verwendung fanden. Ausgangspunkt für die Projektgruppe SurfCAD++ war die Entwicklung eines erweiterbaren objekt-orientierten Systems, in dem Algorithmen zur Flächenmodifikation implementiert sind, die normalerweise in bestehenden CAD-Systemen nicht zu finden sind.

Abbildung 1:: PolygonnetzAbbildung 1:: Polygonnetz

SurfCAD++ ist zunächst ein eigenständiges System, das beliebige Polygonnetze wie das in Abb. 1 unten importieren, modifizieren und exportieren kann. Dazu wurde beim objekt-orientierten Entwurf darauf geachtet, eine allgemeine Schnittstelle einer Netzdatenstruktur zu definieren, mit der sich polygonale Netze effizient speichern, verwalten und verändern lassen. Auf dieser Schnittstelle arbeiten die einzelnen Modifikationsalgorithmen. Der Benutzer kann von einer graphischen Benutzeroberfläche aus ein Gebiet auswählen, auf dem ein Algorithmus arbeiten soll. Das Ergebnis kann dann wieder eingepaßt und gespeichert werden. Weiterhin wurde eine Anbindung von SurfCAD++ an das kommerzielle Modelliersystem Alias|Wavefront Studio V8.0 erstellt. Diese ermöglicht die direkte Verwendung der implementierten Algorithmen "live" im kommerziellen Modellierer.
Mittels einer hierarchischen Netzverwaltung können in SurfCAD++ Netze durch mehrfache Schachtelung und Hintereinanderausführung aller Algorithmen und unter Beibehaltung einer sehr komfortablen und komplexen "Construction History" verändert werden. Der Benutzer kann mit verschiedenen Parametrisierungen der Algorithmen experimentieren und nicht benötigte Zwischenergebnisse mit einer "undo"-Funktion rückgängig machen. Durch Ausgabe der Objekte in verschiedenen Detailstufen werden objektangepaßte Level-of-Detail-Darstellungen für schnelle Rendering- und Animationssysteme möglich.
Die vornehmliche Stärke des Systems SurfCAD++ besteht in der Offenheit gegenüber Verfahren und Netzstrukturen. Prinzipiell ist es möglich beliebige Dateiformate zu lesen und zu schreiben. Neue Algorithmen können einfach auf der Grundlage einer abstrakten Netz-Schnittstelle implementiert werden. Zur Zeit (Stand 31.7.97) sind folgende Verfahren implementiert: DooSabin-Verfahren [1] und Catmull-Clark-Verfahren [2] zur Unterteilung von Netzen, der Algorithmus von Turk [3] für Level-of-Detail Darstellungen, der Algorithmus von Hamann [4] zur Reduktion von Netzen, ein einfaches Kantenkipp-Verfahren und ein Triangulierer.

Anforderungen:

Beschreibung der Anforderungen: compressed postscript (26K)

Literatur:

[1] Doo, D. and Sabin, M. Computer Aided Design, 1978.
[2] Catmull, E. and Clark, J. Computer Aided Design, 1978.
[3] Turk, G. Computer Graphics, 1991.
[4] Hamann, B. Computer Aided Geometric Design, 1994.

Endbericht:

Der Endbericht ist elektronisch verfügbar
endbericht-surfcad.ps.gz (FTP-Download, gzipped, 1,3MB)