2.1    Content Management mit LaTeX


Der Inhalt von preschern.org ist mit LaTeX [ Knu86, Lam94 ] beschrieben und kann in verschiedene Formate übersetzt werden. Inhalts- und Literaturverzeichnis, Verweise und dergleichen können, entsprechend der Beschreibung in LaTeX, von den für die weitere Übersetzung verwendeten Werkzeugen erstellt werden. So kann daraus ein PDF Dokument erzeugt werden, in das, mit Hilfe der in Abschnitt 2.3 beschriebenen Universal 3D Schnittstelle, 3D Modelle eingebettet werden können.

Ein vom Autor implementierter Compiler übersetzt die, für die Beschreibung des Inhalts, verwendete LaTeX Teilmenge, mit Hilfe von einigen speziellen LaTeX Makros (sogenannten "hints"), in XML. Diese XML Beschreibung wird, mit Hilfe von XML Layout Beschreibungen ("parts"), in DHTML übersetzt. Über die Layout Beschreibungen wird die Verbindung zu JavaScript hergestellt, welches mit JaSIL (Abschnitt 2.6) aus Java erzeugt wird.

Download preschern.org als PDF Dokument: . Die 3D Modelle, die von diesem Dokument referenziert werden, können mit entsprechender Software, z.B. Acrobat Reader Version ≥ 8.0, dargestellt werden.

 
 
 
 
2.2    Modellieren mit impliziten Flächen


Eine Funktion die jedem Punkt |x,y,z| Element von R 3 eine Distanz mit positivem Vorzeichen zuordnet, wenn dieser außerhalb der von der Funktion repräsentierten Oberfläche liegt, den Wert 0 wenn der Punkt auf der Fläche liegt und negative Werte für innen liegende Punkte, eignet sich recht gut für die effiziente Implementierung von Mengenoperationen (Constructive Solid Geometry [CSG]) mit Objekten.

Der Autor hat Dual Contouring [ JLSW02 ] für die Extraktion (Polygonalisierung) der Flächen verwendet, um deren Eigenschaften in Bezug auf Ecken und Kanten, zu bewahren. Folgendes PDF Dokument zeigt ein 3D Modell das durch die Verknüpfung von impliziten Funktionen erzeugt und mit Dual Contouring extrahiert wurde: .

 
 
 
 
2.3    Universal 3D Schnittstelle


Visualisierung beinhaltet den Begriff der Pluralität und der Perspektive. Sie ist der Versuch eine, oft in textueller Form (z.B. als mathematische Beschreibung), vorliegende Darstellung, durch eine graphische zu repräsentieren [ Fis03 ].

Der Standard ECMA-363 Universal 3D File Format (U3D) [ Ecma363 ] dient dazu 3D Modelle zu speichern. Für die Speicherung von 3D Szenen wurde vom Autor eine U3D Schnittstelle mit Java implementiert, die eine Teilmenge des U3D Standards unterstützt.

Mit Hilfe des LaTeX "movie15" Package, können multimediale Inhalte, wie Filme, Sound und mit U3D beschriebene Objekte, in PDF Dokumente (Adobe PDF Spezifikation Version 1.6) eingebettet werden. Mit entsprechender Software, wie z.B. dem Acrobat Reader Version ≥ 8.0, können solche Objekte in 3D dargestellt werden. Damit kann eine hochwertige textuelle und graphische Darstellung von Inhalten geboten werden.

 
 
 
 
2.4    3D Rekonstruktion mit impliziten Flächen


Eine Fläche kann mit einer impliziten Gleichung der Form f(x, y, z) = f(p) = 0 beschrieben werden. Ein Punkt p ist Teil der impliziten Fläche wenn das Resultat 0 ist, wenn er in die Gleichung eingesetzt wird.

Ein einfaches Beispiel ist eine Kugel mit Radius 1 (unit sphere), welche mit der impliziten Gleichung f(x, y, z) = x 2 + y 2 + z 2 - 1 beschrieben wird. Durch "verschmelzen" von impliziten Flächen können Oberflächen aus nicht orientierten Punktmengen rekonstruiert werden. Die Grundidee ist, einfache Körper, wie etwa Kugeln, miteinander zu verschmelzen. Jede Kugel kann als ein "Atom" gesehen werden und man erhält ein "Molekül", indem man seine Atome miteinander vereinigt.

Folgendes PDF Dokument enthält ein 3D Modell von zwei verschmolzenen Kugeln: .

Mehr im Abschnitt 3.1 ...

 
 
 
 
2.5    2D und 3D Delaunay Triangulation


Die Delaunay Triangulation und das Voronoi Diagramm sind duale Strukturen und enthalten die gleiche Information in unterschiedlicher Form. Sie beinhalten die Information über Distanz bzw. Nähe einer Menge von Objekten im Raum.

Diese Strukturen werden in Anwendungen verwendet, wie etwa die Ermittlung der nächstgelegenen Nachbarobjekte, für winkelmaximierte Triangulationen, für die Berechnung größtmöglicher leerer Kreise, den Aufbau minimaler spannender Bäume oder für das Reisendenproblem (traveling salesperson paths).

Mehr im Abschnitt 3.2 ...

 
 
 
 
2.6    JavaScript Image Linker Toolkit


Der JaSIL.Toolkit besteht derzeit aus drei Komponenten. JaSIL.Self übersetzt Java Klassen in JavaScript und erzeugt ein Programm, das in aktuellen Web-Browsern ausgeführt werden kann. In Kombination mit JaSIL.GUI, einer Anzahl von Java Packages um GUIs für Web-Browser zu erzeugen, und JaSIL.Harmony, einem auf JavaScript basierenden JDK, können Web-Applikationen entwickelt werden. Der JaSIL.Toolkit unterstützt optional preemtive Java Threads. Anwendungen, die mit JaSIL.GUI entwicklelt worden sind, können zudem auch als Java Applets ausgeführt werden.

Mehr im Abschnitt 3.3 ...

 
 
 
 
2.7    WEB-Dock


Das WEB-Dock ermöglicht den schnellen und direkten Zugriff auf wichtige und/oder häufig verwendete Web-Resourcen. Im Vergleich zu ähnlichen Lösungen, wie die Task-List (Task-Dock) des 3D Desktops (Abschnitt 2.10) oder Apple's Dock, ermöglicht der effiziente bildbasierte Ansatz die Verwendung des WEB-Docks in aktuellen Web-Browsern. Größenänderung der Icons, die verwendet werden kann, um die Icondichte zu erhöhen, und Drag & Drop werden durch den schnellen Austausch einzelner Bildelemente realisiert, ähnlich wie in einem Zeichentrickfilm. Wird der Mauszeiger über einem, auf diese Weise selektierten, Icon stehen gelassen, wird ein kurzer Hinweistext (hover help) angezeigt.

 
 
 
 
2.8    JaRT - ein Java Ray Tracer


JaRT ist ein Ray Tracer, der mit Java entwickelt wurde, um GUI-Elemente mit 3D Effekten für Webseiten, wie etwa Rahmen mit abgerundeten Ecken und Kanten, zu erzeugen. JaRT unterstützt CSG Operationen für Grundelemente, wie Flächen, Quader, Kugeln, Cylinder, Kegel und für Dreiecksnetze, einschließlich 3D Text. Texturen können mit planaren, spherischen und cylindrischen Projektionen auf Objekte aufgetragen werden. Es werden die Phong/Blinn Lichtgleichungen verwendet, sowie Spiegelungen und Schatten unterstützt. Die Bildqualität kann mit Supersampling verbessert werden.

 
 
 
 
2.9    3D Desktop Browser


Die Struktur und die Elemente eines 3D Desktops (Abschnitt 2.10) können mit XML definiert werden. Der Desktop Browser verwendet die XML Beschreibung um eine 3D Ansicht zu erzeugen. Callbacks (z.B. für Menüs) können mi JavaScript angegeben werden. Das Document Object Model (DOM) des Desktops bildet eine Schnittstelle für den Zugriff auf Desktop Elemente.

 
 
 
 
2.10    3D Desktop


Aufbauend auf der Bibliothek für Echtzeitgraphik, die in Abschnitt 2.12 beschrieben wird, wurden Softwarekomponenten für einen 3D Desktop entwickelt. Die Desktop Komponenten unterstützen von Swing Schnittstellen abgeleitetes Drag & Drop und Kontextmenüs. Zudem werden Kreis- und Spirallisten von 3D Objekten mit Selektionen, sowie eine 3D Taskliste (Task-Dock) für aktivierte Funktionen unterstützt. Die abstrakten Listenmodelle entsprechen jenen von Swing. Ein 3D Verzeichnis stellt einen Raum zur Verfügung in dem 3D Objekte rund um ein Zentrum angeordnet werden können.

Screenshots im Abschnitt 3.4 ...

 
 
 
 
2.11    Erzeugen von 3D Icons in Echtzeit


Durch die Echtzeitgraphik-Bibliothek (Abschnitt 2.12) wird die Erzeugung von 3D Icons erheblich beschleunigt. Ein komplexes Modell, für das mit dem Ray Tracer mehrere Stunden benötigt werden, kann nun in wenigen Minuten in ein Bild mit reaktiven 3D Elementen verwandelt werden. Die Bildqualität wird durch Antialiasing mittels Supersampling verbessert.

Für die Integration von 3D Modellen und Web-Content werden Layouts mit XML definiert und daraus HTML und JavaScript mit Funktionen für Kamerabewegungen oder Animationen generiert.

 
 
 
 
2.12    Echtzeitgraphik


Basierend auf JOGL, eine Java/OpenGL [ AGo96, SAk10 ] Schnittstelle, wurde vom Autor eine Bibliothek für Echtzeitgraphik entwickelt. Diese Komponenten unterstützen Spiegel- und Schatteneffekte und können in Applets verwendet werden. Shaderkomponenten wurden mit der OpenGL Shading Language (GLSL) [ Kes10 ] realisiert. Mit einem einfachen Textsystem können aus Texten dynamisch 2D Texturen erzeugt werden. Die Objektselektion erfolgt mit Unterstützung der Graphikhardware (hardware accelerated picking). 3D Modelle können aus Grundelementen mit Hilfe von Constructive Solid Geometry (CSG) Operationen konstruiert werden. Zudem können mit Blender erzeugte 3D Objekte verwendet werden.

 
 
 
 
2.13    Erzeugen von 3D Icons mittels Ray Tracing


Im Rahmen dieses Projekts wurden Werkzeuge für die Erzeugung von Bildern von 3D Modellen mit sensitiven Bereichen (3D icons) entwickelt, die in Web-Designs verwendet werden können. Solche 3D Elemente werden mit der Programmiersprache Java definiert und mit dem Ray Tracer POV-Ray generiert. Reaktive Bereiche werden durch Zuordnung von "Sensoren" zu 3D Objekten definiert, für die dann automatisch entsprechender HTML code erzeugt wird. Spezielle Panoramakameraabstraktionen werden verwendet, um verzerrungsfreie Weitwinkelsichten zu erzeugen.

Ein Beispiel generiert mit POV-Ray.

 
 
 
 
2.14    Modula-3 für OS/2 und MS DOS


Das Modula-3 System (Compiler, Laufzeitsystem, Bibliothek), welches vom Systems Research Center der Firma Digital ( DEC-SRC) entwickelt wurde, wurde auf OS/2 (Warp und Merlin) und MS DOS portiert. Carsten Whimster hat einen Artikel über das Modula-3 für OS/2 Projekt im Electronic Development Magazine, OS/2 Ausgabe (EDM/2), veröffentlicht.

Der Autor hat das System portiert, nachdem er einen Sommer im Systems Research Center in Palo Alto verbracht hat.
 
 
 
 
2.15    Modula-2 - C Übersetzer


Im Rahmen dieses Projektes wurde ein Modula-2 - C Übersetzer entwickelt, der in der Lage ist, sich selbst in C zu übersetzen. Der sehr portable Übersetzer ist für MS DOS, UNIX und VMS verfügbar.
  • Eine Einführung in die Syntaxanalyse .
  • Eine umfangreiche Projektbeschreibung .
  • Mehr Information zu Modula-2 und weitere Literatur [ BPR86, Wir85 ].