Visuelle Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen

Größe: px
Ab Seite anzeigen:

Download "Visuelle Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen"

Transkript

1 Diplomarbeit Visuelle Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen eingereicht bei Prof. Dr.-Ing. Detlef Krömker, Professur für Graphische Datenverarbeitung von Jörg Karpf Eingereicht am 3. August 2009

2 Eidesstattliche Erklärung Ich erkläre hiermit an Eides statt, dass ich die vorliegende Arbeit selbstständig und ohne Benutzung anderer als der angegebenen Hilfsmittel angefertigt habe. Die aus fremden Quellen direkt oder indirekt übernommenen Gedanken sind als solche kenntlich gemacht. Diese Arbeit wurde bisher keiner anderen Prüfungskommission in gleicher oder ähnlicher Form vorgelegt und auch nicht veröffentlicht. Frankfurt am Main, den (Jörg Karpf) II

3 Danksagung Zu allererst danke ich meinen Eltern, die mich immer unterstützt, gefördert und mir den Rücken freigehalten haben. Ohne sie wäre das Studium unmöglich gewesen. Ich danke meiner Freundin Vanessa, die unendliche Geduld mit mir hatte und immer zu mir stand. Weiterhin danke ich Dipl. Inf. Sebastian Schäfer, der mich während dieser Diplomarbeit betreut hat und während meines ganzen Studiums immer als Mentor und Freund ein offenes Ohr für meine Probleme hatte. Mein Dank gilt ebenso Dipl. Inf. Daniel Schiffner, der mich ebenfalls während dieser Arbeit sehr engagiert betreut hat. Nicht zuletzt bedanke ich mich bei Prof. Dr.-Ing. Detlef Krömker, der diese Arbeit erst ermöglicht hat sowie bei allen Korrekturlesern. III

4 Zusammenfassung Radiosity ist ein globales Beleuchtungsverfahren zur Berechnung diffuser Interobjektreflektionen in einer computergenerierten 3D-Szene. Erstmals vorgestellt wurde das Verfahren 1984, dennoch ist es selbst mit heutigen Rechenleistungen aufgrund des hohen Speicher- und Laufzeitbedarfs nicht möglich, Radiosity in Echtzeit zu berechnen. E-Learning gewinnt an Universitäten, Schulen, aber auch an Ausbildungsstätten immer mehr an Bedeutung. Maßgeblich für den Lernerfolg ist, wie die Informationen präsentiert werden. Das Erlernen und Verstehen des Radiosity-Verfahrens stellt durch seine komplexe Struktur und Arbeitsweise im dreidimensionalen Raum besonders hohe Anforderungen an den Lernenden, sodaß eine geeignete Visualisierung des Verfahrens wichtig ist. Das Ziel dieser Diplomarbeit ist es, ein Radiosity-Verfahren zu implementieren und es als visuelle Simulation zur Verwendung in Lernprozessen nutzbar zu machen. Es wird mit Java und Java 3D eine Lernanwendung implementiert, die eine 3D-Visualisierung des Progressive Refinement Radiosity in der Gathering-Variante mittels Hemi-Cube enthält. Die Lernanwendung wird durch einen mit dem Autorensystem LernBar [LerBa] erstellten, begleitenden E-Learning-Kurs ergänzt. Der Kurs ermöglicht in Verbindung mit der Lernanwendung angeleitetes Lernen, und ist mit Fragen angereichert, durch die der Lernende seinen Lernfortschritt überprüfen kann. Die Zielgruppe der Lernanwendung und des Kurses sind Informatikstudenten, die über Grundlagenwissen im Bereich der Computergrafik verfügen. Die Lernanwendung ermöglicht es dem Lernenden, die Berechnung des Verfahrens schrittweise, animiert und interaktiv nachzuvollziehen. Zusammen mit dem Kurs, soll die Lernanwendung dem Benutzer ermöglichen, das Radiosity-Verfahren zu erlernen und die zu dessen Berechnung nötigen Einzelschritte zu verstehen. IV

5 Abstract Radiosity is a global illumination method for calculating diffuse interobject reflections of a 3D computer generated scene. The algorithm was first presented in 1983, but still today, computer power isn t able to run it in real-time (for a complex scene). In the recent years e-learning got more and more important for academic teaching. The most relevant point for successful learning is the special way information is presented. Radiosity is due to its complex structure and three-dimensional functionality very hard to learn and understand, so that a suitable visualization of the procedure is very important. The goal of this diploma thesis is to implement a radiosity procedure and make it usable as a visual simulation, which can be used for learning purpose. An e-learning application, which consists of a 3D visualization of a gathering progressive refinement radiosity method, will be implemented with Java and Java 3D. Additionally an e-learning course, which is created by the authoring system LernBar, is provided. This course is enriched with questions, by which the learning progress can be examined by the pupil himself. Together with the e-learning application, it can be used for instructed learning. The applications and courses target group are computer science students with basic knowledge in computer graphics and related topics. The e-learning application shows the learner the radiosity method gradually, animated and interactively. The e-learning application, together with the e-learning course, should enable the user to learn and understand the radiosity methode and the necessary single steps for its computation. V

6 Inhaltsverzeichnis 1 Einleitung Motivation und Ziel Aufbau der Arbeit Grundlagen Java 3D Flat-Shading Gouraud-Shading Beleuchtungsrechnung Diffuse Beleuchtung Spiegelnde Beleuchtung Ambiente Beleuchtung Globale Beleuchtungsrechnung Radiosity Nusselt-Analogon Hemi-Cube-Verfahren Progressive Refinement E-Learning State of the Art CourseLab LernBar Adobe Director Visualisierung von Computergrafik-Algorithmen und 3D-Inhalten Simulation und Visualisierung von Radiosity Zusammenfassung Konzept Anforderungsanalyse Ablauf der Lernanwendung und des Kurses Navigation in 3D VI

7 Inhaltsverzeichnis 4.4 Entwurf des Graphical User Interfaces (GUI) Vorrendern der Szene Darstellung der mit Radiosity gerenderten Szene Umsetzung Aufbau der Lernanwendung Erstellung des Graphical User Interfaces (GUI) Erstellung der 3D-Szenen Aufbau und Funktionsweise des Radiosity-Renderers Darstellung der 3D-Szene Umsetzung der Lernziele Erstellung des LernBar-Kurses Bewertung und Ausblick Bewertung Die Zukunft von 3D-Simulationen und 3D-Visualisierungen im Bereich des E-Learnings Literaturverzeichnis 75 A Anhang 81 A.1 LernBar-Kurs VII

8 Abbildungsverzeichnis 2.1 Eine mit Flat-Shading dargestellte Szene Zwei mit Gouraud schattierte Kugeln Beleuchtungsvektoren Eine mit Phong-Shading beleuchtete Kugel (übernommen von [PHOSP] und modifiziert) Geometrie zur Berechnung eines Formfaktors (übernommen von [Hem85]) Drei mit Radiosity beleuchtete Kugeln (übernommen von [RADSP]) Glass Szene gerendert mit POV-Ray (übernommen von [RADPR]) Projektion auf einen Hemi-Cube (übernommen von [HemPR]) Progressive Refinement-Radiosity Iterationsschritte: Reflektionen des Lichtes in Abhängigkeit des Iterationsschrittes Entwicklungsumgebung von CourseLab (übernommen von [CLABB]) Ein mit der LernBar entwickelter Kurs (übernommen von [LeBar]) Entwicklungsumgebung von Adobe Director (Screenshot lokal ausgeführte Anwendung) Visualisierung von Bubbelsort in JHAVÉ (Screenshot lokal ausgeführte Anwendung) Visualisierung von Progressive-Refinement-Radiosity (Screenshot von [WSIP1]) Interaktive Visualisierung von Progressive-Refinement-Radiosity (Screenshot von [WSIP2]) Interaktive Visualisierung einer Radiosity-Variante (übernommen von [RAGDR]) Das Radiosity-Visualisierungs-Tool radvis (übernommen von [RAVIS]) Zwei Entwürfe des GUI der Lernanwendung Klassen der Lernanwendung mit ihren wichtigsten Attributen und Methoden Graphical User Interface der Lernanwendung VIII

9 Abbildungsverzeichnis 5.3 GUI-Elemente. Links: voll expandierter Navigation-Tree; Rechts: Pseudo- Code-Fenster mit Syntaxhighlighting Oben: Ansicht-Menü bei ausreichendem Abstand zur 3D-Ansicht; Unten: Überlagerung des Ansicht-Menüs durch die 3D-Ansicht Vorgegebene Kamera-Ansichten 1-5 von links nach rechts Flat-Shading-Darstellung Szene 1 (oben) und Szene 2 (unten) in den Detailgraden (von links): Niedrig, Medium, Hoch Gouraud-Shading-Darstellung Szene 1 (oben) und Szene 2 (unten) nach den Iterationsschritten (von links): 1-5; Detailgrad: Hoch Mit Radiosity gerenderte Szene. Links: Original; Mitte: Ambient-Term; Rechts: Kontrasterhöhung Auswirkung des Rundungsfehlers auf das Gouraud-Shading in Szene 1; Detailgrad: Hoch; links ohne Beschränkung der Anzahl der Nachkommastellen; rechts Beschränkung auf sieben Nachkommastellen Anordnung und Unterteilung der Lernanwendungsschritte, veranschaulicht durch den voll expandierten Navigation-Tree Darstellung der Projektion auf die Unterseite des Hemi-Cubes Anweisung des LernBar-Kurses in Bildform Eine Seite des Kurses Abbildungen ohne Quellenangabe oder mit (Screenshot) gekennzeichnete, sind vom Autor selbst erstellt. IX

10 1 Einleitung 1.1 Motivation und Ziel Ein Bild sagt mehr als tausend Worte. Konfuzius Seit der Entwicklung des modernen Computers durch Konrad Zuse findet eine zunehmende Digitalisierung unseres Alltags statt. Der Computer erhält in allen Bereichen unseres Lebens immer mehr Einzug. Selbst im Bereich des Lehrens und Lernens wächst die Bedeutung des Computers, in Form des E-Learnings, permanent. Mit der Entwicklung von Autorensystemen wurde es erstmals einer breiten Masse an Autoren auch ohne Programmierkenntnisse ermöglicht, E-Learning-Kurse zu erstellen. Viele universitären Vorlesungen werden schon seit längerem mit Foliensätzen angereichert, die am Computer entworfenen wurden. Aus diesen Foliensätzen lassen sich mit gängigen Autorensystemen leicht E-Learning-Kurse zur Ergänzung der Präsenzlehre erstellen. Die meisten existierenden E-Learning-Kurse präsentieren ihre Inhalte ausschließlich in 2D. Jedoch existieren, besonders im Bereich der Computergrafik, Algorithmen und Verfahren die im Dreidimensionalen arbeiten. Eines dieser Verfahren ist das globale Beleuchtungsverfahren Radiosity. Es erhöht durch die Berechnung von diffuser Interobjektreflektionen den Realitätsgrad einer 3D-Szene. Zum Einsatz kommt das Radiosity-Verfahren in Computerspielen, Animationen, (Animations-)Filmen und in der Beleuchtungsplanung von Gebäuden. Die Arbeitsweise des Radiosity-Verfahrens ist sehr komplex. Die Details und Auswirkungen von Radiosity sind in Form von 2D-Darstellungen nur schwer zu erlernen. Durch das Darstellen komplexer Sachverhalte in 3D-Visualisierungen oder 3D-Animationen sind die Zusammenhänge und Vorgehensweisen oft besser wahrnehmbar und leichter zu verstehen. Besonders bei komplexen Algorithmen, die im Dreidimensionalen arbeiten, wie dem Radiosity-Verfahren, bietet sich zur Darstellung und Erläuterung eine 3D-Visualisierung 1

11 1.2 Aufbau der Arbeit an. Viele existierende Erklärungen, wie z.b. [Rad84] und [Hem85], sind durch ihre eher theoretische und mathematische Darstellung wenig anschaulich. Daher ist die Idee naheliegend das Radiosity-Verfahren als visuelle 3D-Simulation zu implementieren, und sie in Lernprozessen nutzbar zu machen. Genau darum geht es in dieser Diplomarbeit. Ziel dieser Diplomarbeit ist die Implementierung einer visuellen Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen, d.h., es soll eine 3D-Lernanwendung konzipiert und implementiert werden, die als Lerninhalt ein Radiosity-Verfahren beschreibt und erklärt. Angeleitetes Lernen soll durch die Erstellung eines E-Learning- Kurses in einem Autorensystem umgesetzt werden. Der Kurs soll mit Fragen angereichert werden, die es dem Lernenden ermöglichen seinen Lernfortschritt zu überprüfen. 1.2 Aufbau der Arbeit Im nachfolgendem Kapitel 2 beschäftigen wir uns zunächst mit den Grundlagen. Die Java 3D-Klassenbibliothek, mit der die Lernanwendung implementiert wurde, wird vorgestellt. Es wird kurz auf Flat- und Gouraud-Shading eingegangen. Die lokale und globale Beleuchtungsrechnung und verschiedene Verfahren zur Berechnung von Radiosity werden vorgestellt. Der letzte Abschnitt des Kapitels beschäftigt sich mit E-Learning, insbesondere mit der Kategorisierung von Lernanwendungen nach ihren technischen Merkmalen und ihrem Interaktionsgrad. In der State of the Art-Analyse in Kapitel 3 werden verschiedene Autorensysteme vorgestellt und deren Vor- und Nachteile erläutert. Weiterhin werden existierende Visualisierungen von Computergrafik-Algorithmen sowie Simulationen und Visualisierungen des Radiosity-Verfahrens vorgestellt und ihr didaktischer Wert diskutiert. Anschließend wird in Kapitel 4 eine Anforderungsanlyse vorgenommen. Es wird u.a. das Konzept zur Implementierung der Lernanwendung und zur Erstellung des Kurses vorgestellt und erläutert. Der Ablauf der Lernanwendung und des Kurses wird festgelegt und in Lektionen eingeteilt. Es werden Entwürfe zum Design des GUIs 1, die sich an Designrichtlinien orientieren, vorgestellt und verglichen. Ein Konzept zur Vermeidung von Problemen, die mit der Navigation in einer 3D-Szene einhergehen, wird erläutert. Außerdem wird der Aufbau und die Erstellung der in der Lernanwendung verwendeten 3D-Szenen beschrieben und ein Konzept zum Vorrendern und Speichern der mit Radiosity gerenderten Szenen vorgestellt. In Kapitel 5 wird die Umsetzung der in Kapitel 4 vorgestellten Konzepte zum Aufbau der Lernanwendung und des Kurses sowie zum Design des GUIs der Lernanwendung gezeigt. 1 GUI ist die Abkürzung von Graphical User Interface, also für grafische Benutzeroberfläche. 2

12 1.2 Aufbau der Arbeit Es wird detailiert beschrieben, wie die Lernziele umgesetzt werden. Außerdem wird die Implementierung eines eigenen Radiosity-Renderers mit Java und Java 3D vorgestellt. Die dabei entstandene Probleme und deren Lösungen bzw. Umgehungen werden erläutert. Den Abschluß bildet Kapitel 6, in dem eine Bewertung der implementierten Lernanwendung und des erstellten Kurses stattfindet. Im letzten Abschnitt wird ein Ausblick auf die Zukunft von 3D-Simulationen und 3D-Visualisierungen im Bereich des E-Learnings gegeben. 3

13 2 Grundlagen Es ist nichts furchtbarer anzuschauen als grenzenlose Tätigkeit ohne Fundament. Johann Wolfgang von Goethe, Maximen und Reflexionen Um unseren folgenden Tätigkeiten ein Fundament zu schaffen, beschäftigen wir uns zunächst mit den Grundlagen. 2.1 Java 3D Java 3D ist eine vollständig objektorientierte Klassenbibliothek für Java, die es erlaubt, 3D-Grafiken zu entwickeln. Dazu wird ein Szenegraph erstellt, der es ermöglicht, Szenenbestandteile als Objekte zu betrachten und zu verwenden. Genau wie in Java sind die darin entwickelten Anwendungen plattformunabhägig. Die Klassenbibliothek setzt auf OpenGL 2 sowie Direct3D 3 auf und kapselt deren Funktionalität. Ein Nachteil daran ist, daß nur die Funktionalität zur Verfügung steht, die in der aktuellen Java 3D-Version gekapselt wird. Ein direkter Zugriff auf OpenGL bzw. Direct3D ist nicht vorgesehen. Die Version 1.0 wurde 1998 von Sun Microsystems entwickelt. Seit 2004 wurde die Entwicklung von Java 3D zu Gunsten von JavaFX 4, das jedoch noch keine 3D-Unterstützung bereitstellt, eingestellt. Der Quellcode von Java 3D ist seit dem Open-Source und wird von der Java 3D-Community weiter entwickelt, wobei sich diese Weiterentwicklung bisher größtenteils auf Bugfixes beschränkt. Die aktuelle Version wurde 2008 herausgegeben. 2 OpenGL (Open Graphics Library) ist eine Programmierschnittstelle für die Programmierung von portablen 2D- und 3D-Grafikanwendungen. Weitere Informationen siehe: 3 Direct3D ist eine von Microsoft entwickelte Programmierschnittstelle für die Programmierung von 2Dund 3D-Grafikanwendungen unter Microsoft Windows. 4 JavaFx ermöglicht die Entwicklung von sog. Rich Internet Applications, d.h. von Online-Anwendungen, in die multimediale Daten eingebunden werden können. Weitere Informationen siehe: sun.com/software/javafx/. 4

14 2.2 Flat-Shading 2.2 Flat-Shading Das Flat-Shading ist die einfachste Form des Shadings. Jede einzelne Fläche eines Polygons hat eine einheitliche Farbe. Es werden keine Farbverläufe zwischen Polygoneckpunkten berechnet. Dies führt zu einem facettierten Erscheinugsbild der Szene, wie in Abbildung 2.1 zu sehen ist. Abbildung 2.1: Eine mit Flat-Shading dargestellte Szene 2.3 Gouraud-Shading Das Gouraud-Shading wurde nach Henri Gouraud benannt und erstmals 1971 vorgestellt [Gou71]. Es basiert auf Vertex-Shading, d.h., die Farben der Eckpunkte eines Polygons werden zum Schattieren über die Fläche interpoliert. Für jeden Eckpunkt wird der entsprechende Farbwert berechnet und anschließend die Farbwerte liniar über die Kanten des Polygons interpoliert. Im letzten Schritt werden die einzelnen Pixelfarbwerte innerhalb des Polygons durch zeilenweise Interpolation (Scanlinie) der entsprechenden Farbwerte an den beiden Kanten der Zeile ermittelt. Das Verfahren verwendet ausschließlich diffuse Beleuchtung zur Berechnung der Farbwerte. Ein großer Nachteil des Gouraud-Shadings ist das sog. Machbanding. Es entsteht durch die Interpolation an den Kanten der einzelnen Geometrieflächen. Die Farbintensitätsänderungen an den Scanlinien erfolgen sprunghaft, d.h., die erste Ableitung ist nicht konstant. Das menschliche Auge ist in der Lage Konturen zu verstärken, dies führt zur Erkennung dieser Unregelmäßigkeiten. Die folgende Abbildung 2.2 zeigt diesen Effekt. 5

15 2.4 Beleuchtungsrechnung Abbildung 2.2: Zwei mit Gouraud schattierte Kugeln 2.4 Beleuchtungsrechnung In der Beleuchtungsrechnung wird zwischen drei Lichtarten unterschieden: ambientes, diffuses und spiegelndes Licht. Zur Berechnung der Farbe eines Objektes in einer Szene wird folgende Gleichung (Quelle:[GDV09]) verwendet: i tot = i amb + i diff + i spec Die Lichtfarbe eines Objektes i tot setzt sich aus der Summe von dem ambienten Licht i amb, dem diffusen Licht i diff und dem spiegelnden Licht i spec zusammen. Für diese Diplomarbeit wurde Java 3D verwendet, das auf OpenGL basiert. Üblicherweise besteht jeder dieser Terme in OpenGL aus einem dreidimensionalen Vektor, dessen Komponenten den roten, grünen und blauen Farbanteil des Lichtes beinhalten. Somit enthält jeder dieser Vektoren einen Farbwert aus dem RGB-Farbraum. Im weiteren Verlauf dieser Diplomarbeit wird davon ausgegangen, daß die verwendeten Licht-/ Farbvektoren Farben aus dem RGB-Farbraum repräsentieren. Zur Berechnung der einzelnen Terme werden die in Abbildung 2.3 dargestellten Vektoren benötigt. 6

16 2.4.1 Diffuse Beleuchtung Abbildung 2.3: Beleuchtungsvektoren Diffuse Beleuchtung Bei der diffusen Beleuchtung wird die Lichteinwirkung auf eine ideal diffus reflektierende Fläche (Lambertfläche) betrachtet. Die Beleuchtungsintensität ist dabei vom Winkel α zwischen der Normale der Fläche (N) und dem Lichteinfallsvektor (L) abhängig. Die diffuse Beleuchtung der Lambertfläche läßt sich mit dem lambertschen Kosinusgesetz berechnen: i diff = Lichtfarbe diff Materialfarbe diff cos(α) Eine Eigenschaft der Lambertfläche ist, daß die Intensität des von der Fläche reflektierten Lichtes, vergleichbar mit einer glühenden Kugel, in alle Richtungen konstant ist Spiegelnde Beleuchtung Bei der spiegelnden Beleuchtung wird von einer Lichtquelle Licht abgestrahlt, das auf der Oberfläche eines Objektes ein Glanzlicht erzeugt. Eine Methode spiegelnde Beleuchtung zu berechnen, ist die Methode nach Phong [PHO75]. Im Gegensatz zu den vorhergehenden Beleuchtungsarten ist die Phong-Methode nicht physikalisch zu erklären. Sie basiert auf rein empirischen Beobachtungen und wird wie folgt berechnet: i spec = Lichtfarbe spec Materialfarbe spec cos(θ) shininess 7

17 2.4.3 Ambiente Beleuchtung Zur Berechnung wird die spiegelnde Lichtfarbe mit der spiegelnden Materialfarbe multipliziert und dies wird wiederum mit dem Kosinus von Theta, dem Winkel zwischen dem Kameravektor (C) und dem Vektor des reflektierten Lichtes (R) multipliziert. Der Parameter shininess bestimmt wie groß das Glanzlicht wird. Je größer dieser ist, desto glatter ist die Oberfläche und desto kleiner wird das Glanzlicht. Abbildung 2.4: Eine mit Phong-Shading beleuchtete Kugel (übernommen von [PHOSP] und modifiziert) Ambiente Beleuchtung Im Gegensatz zur diffusen und spiegelnden Beleuchtung wird ambientes Licht nicht von einer realen Lichtquelle abgegeben, sondern ist als die Grundhelligkeit bzw. die Hintergrundbeleuchtung einer Szene anzusehen. Die ambiente Beleuchtung wird wie folgt berechnet: i amb = Lichtfarbe amb Materialfarbe amb Für ambientes Licht wird die ambiente Lichtfarbe der Lichtquelle mit der ambienten Materialfarbe der zu beleuchtenden Fläche multipliziert. Der ambiente Term der Beleuchtungsrechnung dient als Approximation der indirekten Beleuchtung. Bevor globale Beleuchtungsverfahren, wie das Radiosity-Verfahren, bekannt waren, war die ambiente Beleuchtung die einzige Möglichkeit, globale Beleuchtung zu berücksichtigen, wenn auch nur in sehr primitiver Art und Weise. 8

18 2.5 Globale Beleuchtungsrechnung 2.5 Globale Beleuchtungsrechnung In den vorhergehenden Abschnitten ging es überwiegend um lokale Beleuchtungsverfahren, die lediglich eine Interaktion des Lichtes zwischen Lichtquelle und Objekten in einer Szene berechnen. Im Gegensatz dazu berücksichtigt die globale Beleuchtungsrechnung auch die Interaktion des Lichtes zwischen Objekten (Interobjektreflektion) und trägt dem Energieerhaltungssatz für geschlossene Systeme Rechnung. Das bedeutet, daß alles Licht, das von einer Quelle abgestrahlt wird, auch auf einer Fläche in der Szene wieder ankommt, also die Differenz von der ausgehenden Lichtmenge und der eingehenden Lichtmenge null ist. Weiterhin kommen bei der Berechnung die Gesetze der geometrischen Optik zum Einsatz, sodaß wesentlich realistischere Szenen erzeugt werden als mit lokalen Beleuchtungsverfahren. Ein weiterer Vorteil gegenüber lokalen Verfahren ist, daß durch die Verdeckungsberechnung, die bei globalen Beleuchtungsverfahren durchgeführt wird, Schattenwurf erzeugt wird. Die erwähnten Vorteile haben jedoch auch einen Preis. Dieser ist die für globale Beleuchtungsverfahren übliche hohe Laufzeit bzw. der hohe Speicherplatzbedarf. Globale Beleuchtungsverfahren lassen sich in zwei große Gruppen einteilen. Die erste Gruppe sind Verfahren zur Berechnung von spiegelnden Reflektionen, zu denen das Raytracing zählt. Die zweite Gruppe enthält Verfahren zur Berechnung diffuser Reflektionen, zu denen Radiosity zählt. In den folgenden Abschnitten gehen wir detailiert auf das Radiosity-Verfahren ein. Für weitere Informationen zu Raytracing siehe [Whi80] Radiosity Das Radiosity-Verfahren ist ein globales Beleuchtungsverfahren der Computergrafik, das die reale Lichtausbreitung von ideal diffuser Interobjektreflektion berechnet. Es erzeugt Color bleeding 5 von einer Fläche zu einer anderen, Halbschatten und weiche Schattenverläufe. Radiosity wurde erstmals 1984 von Cindy M. Goral, Kenneth E. Torrance, Donald P. Greenberg und Bennett Battaile vorgestellt [Rad84]. Die Idee dabei ist, daß in geschlossenen Systemen keine Energie verloren geht (Energieerhaltungssatz). Also muß in einem modelierten Raum die abgestrahlte Lichtenergie (Radiosity) auch wieder vollständig auf den Oberflächen des Raums ankommen. Jede Oberfläche reflektiert einen Teil des ankommenden Lichtes und kann so selbst als Lichtquelle zweiter Ordnung angesehen werden. Lichtquellen erster Ordung werden als Flä- 5 Color bleeding bezeichnet das Verfärben von Flächen durch das von Interobjektreflektionen entstehende bunte Licht. 9

19 2.5.1 Radiosity chenlichtquelle betrachtet, also als eine Fläche, die Licht abstrahlt. Für das Verfahren sind einige Voraussetzungen nötig. Zum einen wird davon ausgegangen, daß alle Oberflächen der Szene ideal diffus reflektieren, also Lambert-Strahler (Lambertflächen) sind. Zum anderen darf die Szene keine transparenten Flächen enthalten. In einer natürlichen Umgebung sind spiegelnde Flächen eher die Ausnahme, der größte Teil sind diffus reflektierende Oberflächen. Auch Schattenverläufe entstehen meist durch diffuse Interobjektreflektion. Zur Berechnung der Lichtausbreitung verwendet das Radiosity-Verfahren eine Menge von linearen Gleichungen, die darauf beruhen, wieviel Licht eine Lambertfläche verläßt und bei einer anderen wieder ankommt. Maßgeblich dafür ist die sog. Radiosity-Gleichung [Rad84]: B i = E i + r i Wobei: n B j F ij, i = 1,..., n j=1 B i ist das von einer Lambertfläche i in die Szene abgestrahlte Licht (Radiosity) E i ist die Lichtemission der Lambertfläche i r i ist der Reflektionsgrad der Lambertfläche i F i,j ist der sog. Formfaktor von Lambertfläche i und j Vereinfacht ausgedrückt bedeutet die Gleichung: Radiosity für i entspricht der Emission von i, zuzüglich der Summe des an i ankommenden Lichtes, moduliert mit dem Reflektionsgrad von i. Diese Gleichung wird für jede Fläche i der Szene berechnet. Der größte Aufwand des Verfahrens liegt in der Berechnung der Formfaktoren F i,j. Sie beschreiben den Energie- / Lichtaustausch zwischen zwei Flächen der Szene in Abhängigkeit von deren Ausrichtung, Entfernung und Verdeckung. Zunächst müssen beide Flächen in Sichtkontakt stehen, zumindest partiell, sonst würde das Licht gar nicht ankommen und stattdessen auf ein dazwischenliegendes Objekt fallen, das dann Schatten werfen würde und somit wäre die Energie von i nach j null. Je weiter weg eine Fläche i von j ist, desto weniger Einfluss hat sie auf deren Beleuchtung. Die Ausrichtung ist ganz entscheidend. Zwei mit der Rückseite zueinander stehende Flächen beleuchten sich nicht gegenseitig. Die Frage ist nun: Bei welcher Ausrichtung beleuchten sich zwei Flächen 10

20 2.5.1 Radiosity gegenseitig? Stellt man sich eine Fläche i vor, so wird diese von allem beleuchtet, was im Bereich eines 180 -Sichtfeldes in Richtung ihrer Normalen liegt. Stellt man sich die Fläche als eine Ebene im 3D-Raum vor, so wird die Fläche von allem beleuchtet, was in Sichtkontakt vor dieser Ebene liegt. Weiterhin gelten folgende Eigenschaften für Formfaktoren: Reziprozität: A i F i,j = A j F j,i Energieerhaltung: F i,j 1 Keine Fläche i strahlt Licht auf sich selbst ab: F i,i = 0, i Die Formfaktoren lassen sich als eine quadratische Matrix beschreiben, die in der Hauptdiagonale nur Nullen enthält. Die Radiosity-Gleichung läßt sich dann als ein Gleichungssystem, das aus einer Menge linearer Gleichungen besteht, darstellen. Im klassichen Radiosity-Verfahren werden die Formfaktoren mit folgender Formel berechnet [Hem85]: Wobei: F Ai,A j = 1 A i A i und A j sind Flächen in der Szene A i A j cos Φ i cos Φ j πr 2 HID δa j δa i (2.1) F Ai,A j ist der Formfaktor der Flächen A i und A j r ist der Vektor vom Mittelpunkt der Fläche A i zum Mittelpunkt der Fläche A j Φ i ist der Winkel zwischen der Normale von A i und r Φ j ist der Winkel zwischen der Normale von A j und r HID ist eine Funktion. Wenn Fläche A j von Fläche A i aus sichtbar ist, ist HID = 1, sonst 0. In Abbildung 2.5 wird dies zur Verdeutlichung dargestellt. 11

21 2.5.1 Radiosity Abbildung 2.5: Geometrie zur Berechnung eines Formfaktors (übernommen von [Hem85]) Es ist schwer diese Formel analytisch für jede beliebige Szene zu berechnen. Mit einigen Einschränkungen, wie z.b., daß die Szene keine verdeckten Flächen enthalten darf, ist es zwar mit viel Aufwand möglich diese Formel zu lösen, für komplexe Szenen ist dies jedoch nahezu unmöglich. In den nachfolgenden Kapiteln und werden praxistauglichere Methoden zur Lösung des Radiosity-Gleichungssystems und der Formfaktormatrix vorgestellt, die effizienter sind und keine so gravierenden Einschränkungen der Szene bedingen. Um eine Szene möglichst exakt berechnen zu können, muß sie in viele kleine Flächen unterteilt werden. Je feiner eine Szene unterteilt wird, desto weicher erscheinen die Schattenund Farbverläufe, jedoch steigt mit der Unterteilung auch die Anzahl der Einträge in der Formfaktormatrix und somit die Laufzeit bzw. der Speicherbedarf. Abbildung 2.6: Drei mit Radiosity beleuchtete Kugeln (übernommen von [RADSP]) 12

22 2.5.1 Radiosity In Abbildung 2.6 sind drei Kugeln zu sehen, die mit Radiosity beleuchtet wurden. Typisch für Radiosity sind die weichen Schatten und das color bleeding, das sich in dieser Abbildung durch die farbigen Reflektionen der Kugeln auf dem weißen Untergrund bemerkbar macht. Radiosity kann recht einfach mit Raytracing kombiniert werden, indem es z.b. als Postrenderer eingesetzt wird, also erst eine Beleuchtungsberechnung für den spiegelnden Lichtanteil der Szene durchgeführt wird, und anschließend auf diese Szene Radiosity angewendet wird. Die Kombination der beiden Beleuchtungsarten ist heute in gängigen Renderern üblich. Ein Beispiel dafür ist POV-Ray 6, ein kostenloser Open-Source-Renderer, der ursprünglich zur Berechnung von Raytracing geschaffen wurde, mittlerweile aber auch Radiosity, Photon-Mapping und einige weitere Fähigkeiten beherrscht, um photorealistische Bilder zu erzeugen. Die nachfolgende Abbildung 2.7 wurde mit POV-Ray, u.a. unter Verwendung von Radiosity, Raytracing und Phonton-Mapping 7, gerendert. Abbildung 2.7: Glass Szene gerendert mit POV-Ray (übernommen von [RADPR]) Ein Vorteil der diffusen Reflektion ist es, daß die Leuchtdichte unabhängig von dem Beobachtungswinkel zur Fläche ist. Das bedeutet, daß, wenn eine Fläche in der Szene von einem beliebigen anderen Punkt in der Szene betrachtet wird, diese immer gleich hell und gleich gefärbt erscheint. Ist eine Szene für jede Fläche vollständig berechnet, so kann 6 POV-Ray steht für: The Persistence of Vision Raytracer. Weitere Informationen siehe: povray.org/. 7 Phonton-Mapping ist ein globales Beleuchtungsverfahren zur Berechnung von Kaustiken, diffuser Interobjektreflektionen und Subsurface-Scattering (Volumenstreuung). Es kann als eine Erweiterung des Raytracings aufgefaßt werden. 13

23 2.5.2 Nusselt-Analogon die Kameraansicht verändert, oder die Szene durchlaufen werden, ohne Radiosity neu berechnen zu müssen. Dies ermöglicht das Vorrendern einer Szene und diese anschließend live ohne Neuberechnungen zu verwenden, solange sich die Szene selbst nicht ändert, also Objekte und Lichquellen nicht verändert oder transliert werden und keine neuen Objekte hinzugefügt werden Nusselt-Analogon Ein numerisches Verfahren zur Approximation der Formfaktoren wurde von Nusselt entwickelt [TRH78]. Um das Verfahren anwenden zu können, wird vorausgesetzt, daß die Distanz zwischen zwei Flächen i und j groß ist und sie sich nicht partiell gegenseitig verdecken. Unter diesen Bedingungen kann das äußere Integral der Gleichung (2.1) mit einer Multiplikation mit 1 approximiert werden, sodaß die Lösung des inneren Integrals eine approximierte Lösung des Formfaktors darstellt. Falls die Bedingungen nicht zutreffen, können die Flächen i und j solange feiner unterteilt werden, bis sie zutreffen. Zur Lösung des inneren Integrals wird die Fläche j auf eine Einheitshalbkugel, die den Mittelpunkt der Fläche i umhüllt, projiziert. Die Einheitshalbkugel entspricht dabei der Sicht des Mittelpunktes der Fläche i. Die Projektion auf die Einheitshalbkugel berücksichtigt die Terme 1 r und cos Φ j der Gleichung (2.1). Anschließend wird Fläche j von der Einheitshalbkugel auf die Kreisfläche projiziert, die den Mittelpunkt von Fläche i umgibt. Diese zweite Projektion berücksichtigt die Terme 1 r und cos Φ i der Gleichung (2.1). Die Kreisfläche des Einheitskreises entspricht π. Für weitere Informationen siehe [Hem85] [TRH78]. Damit ein Formfaktor F i,j berechnet werden kann, muß der Anteil der Fläche j an der Gesamtbeleuchtung der Fläche i ermittelt werden. Dafür muß die Einheitshalbkugel in gleich große Flächen unterteilt werden und anschließend muß berechnet werden, auf wie viele Flächen der Einheitshalbkugel die Fläche j projiziert wird. Es ist schwierig eine Kugel bzw. Halbkugel in gleich große Flächen zu unterteilen. Ein weiteres Problem ist die Erzeugung von linearen Koordinaten zur Beschreibung der Position einer Fläche auf einer Kugel. Im folgenden Kapitel wird ein Verfahren vorgestellt, das diese Probleme umgeht Hemi-Cube-Verfahren Das Hemi-Cube-Verfahren wird zur Berechnung der Formfaktormatrix der Radiosity- Gleichung verwendet. Es basiert auf den Grundprinzipien des von Nusselt entwickelten Verfahrens, vermeidet jedoch dessen geometrische Probleme, indem anstatt einer Ein- 14

24 2.5.3 Hemi-Cube-Verfahren heitshalbkugel ein Einheitshalbwürfel verwendet wird. Auf eine einfache, effiziente Art nähert es numerisch die Formfaktoren an und löst gleichzeitig das Verdeckungsproblem von Flächen. Erstmals vorgestellt wurde dieses Verfahren von Michael F. Cohen und Donald P. Greenberg im Jahr 1985 [Hem85]. Durch dieses Verfahren wurde Radiosity erstmals auch für komplexe Szenen praktisch einsetzbar. Ein Hemi-Cube ist ein fünfseitiger Einheitshalbwürfel, der über dem Mittelpunkt der Fläche i, deren Beleuchtung berechnet werden soll, erzeugt wird. Seine Seiten sind in Raster, die sog. Hemicube-Pixel, unterteilt. Jeder Rasterfläche ist ein Delta-Formfaktor zugeordnet, der beschreibt, wie stark ein Hemi-Cube-Pixel zur Gesamtbeleuchtung der Fläche i beiträgt. Der Delta-Formfaktor berücksichtigt dabei zwei Aspekte. Sei r der Vektor von dem Mittelpunkt der Fläche i zu dem Mittelpunkt des Hemi-Cube-Pixels, dann wird einerseits die Länge von r und andererseits der Kosinus vom Winkel, zwischen r und Oberflächennormalenvektor (Lambertsches Kosinusgesetz), berücksichtigt. Die Delta-Formfaktoren sind rein geometrische Größen, die deshalb nicht für jede Fläche neu berechnet werden müssen, solange der Hemi-Cube seine Geometrie und Anzahl an Hemi-Cube-Pixel beibehält. Deshalb können die einmal berechneten Delta-Formfaktoren in einer Lookup-Table gespeichert werden, aus der sie bei jeder neuen Hemi-Cube-Berechnung ausgelesen werden. Der Ablauf zur Berechnung der Formfaktormatrix mittels des Hemi- Cube-Verfahrens ist wie folgt: 1. Erzeuge einen Hemi-Cube um den Mittelpunkt der Fläche i 2. Projiziere die Szene auf die fünf Seiten des Hemi-Cubes 3. Berechne j F i,j = Summe der Delta-Formfaktoren einer Fläche j, die auf den Hemi-Cube projiziert wurde 4. Trage alle berechneten F i,j in die Formfaktormatrix ein 5. Solange i < Anzahl der Lambert-Flächen, setze i = i + 1 und wiederhole Lösung des Radiosity-Gleichungssystems (z.b. mit der Gauss-Seidel-Methode) In einem einzelnen Berechnungsschritt, also pro Hemi-Cube, werden die Formfaktoren F i,j für ein einzelnes i, jedoch für alle dazugehörigen j, gleichzeitig berechnet, d.h., in der Formfaktormatrix wird eine Zeile pro Berechnungsschritt gelöst. Warum berechnet der Hemi-Cube eine ganze Zeile der Matrix? Eine Matrixzeile beinhaltet das gesamte Licht, das von allen Flächen j einer Szene an der Fläche i ankommt, also das gesamte Licht, das die Szene an die Fläche i abstrahlt. Der Hemi-Cube stellt durch seine Anordung sicher, daß nur Licht aus dem Sichtfeld der Fläche zur Berechnung verwendet wird, 15

25 2.5.4 Progressive Refinement denn nur Objekte die sich in einem 180 -Winkel vor dem Hemi-Cube befinden, werden auf diesen projiziert. Damit ist das Problem der Ausrichtung gelöst. Das Problem der entfernungsabhängigen Intensität des Lichtes wird automatisch dadurch gelöst, daß Objekte die weiter weg sind, weniger Pixel auf dem Hemi-Cube einnehmen, und somit weniger zur Beleuchtung beitragen. Das Sichtbarkeitsproblem läßt sich ebenfalls leicht lösen, denn für das Projizieren auf den Hemi-Cube kann der Z-Buffer 8 verwendet werden, sodaß nur nicht verdeckte Objekte als Pixel dargestellt werden. Also repräsentieren die Pixel des Hemi-Cubes das gesamte auf Fläche i einfallende Licht. Abbildung 2.8 zeigt zur Verdeutlichung die Projektion einer Fläche auf den Hemi-Cube. Abbildung 2.8: Projektion auf einen Hemi-Cube (übernommen von [HemPR]) Je feiner der Hemi-Cube unterteilt wird, also die Anzahl der Raster pro Fläche erhöht werden, desto genauer wird der Formfaktor berechnet, jedoch steigt dadurch auch die Laufzeit. Ist die Unterteilung zu gering, so wird die Berechnung ungenau und es kann Aliasing auftreten Progressive Refinement Progressive Refinement bedeutet soviel wie schrittweises Verbessern bzw. Verfeinern. Bezogen auf Radiosity ist Progressive Refinement ein iteratives, inkrementelles Verfahren, das Radiosity approximiert. Das klassische Radiosity-Verfahren löst das komplet- 8 Der Z-Buffer dient zur Elimination von überdeckten Polygonen, dafür werden Tiefeninformationen der Szene berechnet und diese im Z-Buffer gespeichert. 16

26 2.5.4 Progressive Refinement te Radiosity-Gleichungssytem und stellt anschließend erst die Ergebnisse grafisch dar. Im Gegensatz zum klassischen Radiosity-Lösungsansatz werden mit diesem Verfahren schnell darstellbare Zwischenergebnisse geliefert. Mit jedem Iterationsschritt werden die Ergebnisse genauer. Es existieren einige verschiedene Varianten des Verfahrens, die sich in zwei Gruppen einteilen lassen, einerseits in die Gruppe der Gathering-Verfahren und andererseits in die Gruppe der Shooting-Verfahren [sigpr]. Das Gathering verfolgt die ursprüngliche Grundidee von Radiosity. Jede Fläche i sammelt von allen anderen Flächen j das auf i einfallende Licht ein. Progressive Refinement als Shooting-Variante wurde erstmals 1988 von Michael F. Cohen, Shenchang Eric Chen, John R. Wallace und Donald P. Greenberg vorgestellt [PrR88]. Die Idee dabei ist, daß in jedem Berechnungsschritt eine Fläche i seine Energie an alle anderen Flächen j entsprechend der Formfaktoren F i,j abgibt. In beiden Verfahren beginnt die Berechnung mit einer dunklen, unbeleuchteten Szene, die dann schrittweise beleuchtet wird. Der Vorteil des Shootings ist, daß sich in den anfänglichen Iterationen die Radiosity-Werte, im Gegensatz zum Gathering, stark ändern und somit durch die schnellere Konvergenz früher ein darstellbares Zwischenergebnis in geeigneter Helligkeit zur Verfügung steht. Eine weitere Variante des Shootings ist das Sorted-Shooting. Dabei werden die Flächen aufsteigend nach ihrer abzugebenden Energiemenge sortiert und in dieser Reihenfolge mit dem Shooting-Verfahren abgearbeitet. Dies führt nochmals dazu, daß das Verfahren schneller konvergiert und die Helligkeit der Szene schneller zunimmt. Durch das Festlegen der Anzahl der Iterationsschritte kann Radiosity mit Progressive Refinement beliebig genau approximiert werden. Betrachten wir nun, was in den einzelnen Iterationsschritten passiert. Im ersten Iterationsschritt wird das von den Lichtquellen auf die einzelnen Lambertflächen abgestrahlte Licht berechnet. Zu diesem Zeitpunkt werden noch keine Interobjektreflektionen berücksichtigt, jedoch schon im nächsten Iterationsschritt ist dies der Fall. Mit jedem Iterationsschritt erhöht sich die Anzahl der Flächen, an denen das zur Berechnung verwendete Licht reflektiert wurde, bevor es zur Beleuchtung der entsprechenden Fläche beiträgt. In Abbildung 2.9 ist dies schematisch dargestellt: 17

27 2.6 E-Learning Iterationsschritt 1: Lichtquelle 1. Fläche Iterationsschritt 2: Lichtquelle 1. Fläche 2. Fläche Iterationsschritt n: Lichtquelle 1. Fläche... n. Fläche Abbildung 2.9: Progressive Refinement-Radiosity Iterationsschritte: Reflektionen des Lichtes in Abhängigkeit des Iterationsschrittes 2.6 E-Learning Der Begriff E-Learning stammt aus dem Englischen und steht für electronic Learning. Einer der Pioniere auf dem Gebiet des E-Learnings in Deutschland ist Michael Kerres, Professor für Mediendidaktik. Nach seiner Definiton umfaßt E-Learning alle Formen des Lernens, in denen elektronische oder digitale Medien zum Einsatz kommen. Essentiell für E-Learning sind Lernanwendungen. Diese lassen sich nach [KKL02] nach ihren technischen Merkmalen in folgende Kategorien unterteilen: 1 Präsentations- und Visualisierungssoftware: Sie dienen der Veranschaulichung komplexer Sachverhalte. 2 Drill-and-Practice-Programme: Zu dieser Kategorie gehören z.b. Vokabeltrainer oder Maschinenschreibkurse, in denen es darum geht, durch ständige Wiederholung vorgegebener Aufgaben, Fähigkeiten des entsprechenden Bereiches zu erlernen und zu intensivieren. 3 Tutorielle Systeme (Generative Systeme): Während der Präsentation des Lernstoffes wird in regelmäßigen Abständen, durch Abfragen des bereits präsentierten Lernstoffes, ein Feedback erzeugt, von dem der weitere Verlauf der Anwendung abhängt. Tutorielle Systeme lassen sich nochmals in drei Typen unterteilen, die sich in ihrem angebotenen Interaktionsgrad unterscheiden: Tutorials: Meist als Programmeinführung genutzt. Sie bieten wenig bis gar keine Interaktionsmöglichkeiten. Lineare Lernprogramme: Der Ablauf des Lernprogrammes ist fest vorgegeben. Die einzige Interaktionsmöglichkeit ist das Abfragen des Erlernten. 18

28 2.6 E-Learning multifunktionale Lernprogramme: Die Kapitelreihenfolge ist nicht fest vorgegeben. Der Lernende kann selbst entscheiden in welcher Reihenfolge er die Anwendung abarbeitet und ob er abgefragt werden möchte. 4 intelligente Tutorielle Systeme: Sie basieren auf künstliche Intelligenzen. Die Lernanwendung paßt sich adaptiv dem Niveau des Lernenden an. 5 Hypermedia-Programme: Hypermedia bezeichnet die Kombination von Hypertext mit multimedialen Inhalten. In diese Kategorie fallen alle Arten des selbstgesteuerten Lernens, bei denen der Lernende völlig uneingeschränkt durch den Lernstoff navigiert. Dies ist vergleichbar mit dem Surfen durch das Internet, denn dieses stellt das zzt. größte existierende Hypermedium dar. 6 Lernspiele: Sie vermitteln Wissen auf spielerische Art. 7 Simulationsprogramme: Der Anwender wird mit einer konkreten, zu lösenden Situation konfrontiert. Bereits erworbenes Wissen soll zur Lösung des Problems richtig angewendet werden. Die realitätsgetreue Abbildung hat hier eine große Bedeutung. 8 Mikrowelten und Modellbildung: Diese Kategorie ist der vorhergehenden sehr ähnlich. Der Hauptunterschied besteht darin, daß der Lernende die Welt selbst mitgestalten kann und durch Experimentieren sowie Exploration der Welt Wissen erlangt. Alle genannten Kategorien sind Idealtypen, wie sie in der Realität nur selten vorkommen. Typischerweise sind Lernanwendungen Mischformen dieser Kategorien. Wie schon in Punkt [3] tutorielle Systeme angedeutet wurde, lassen sich Lernanwendungen auch nach ihrem Interaktionsgrad unterscheiden. In [IMA05] wird in sechs Stufen der Interaktivität einer Multimedia-Anwendung unterschieden: I Objekte betrachten und rezipieren: In dieser Stufe hat der Anwender ausschließlich die Möglichkeit den Ablauf des Mediums wie bei einem Videoplayer zu kontrollieren, also z.b eine Animation zu starten und sich diese zu betrachten. II Multiple Darstellungen betrachten und rezipieren: Der Anwender hat die Möglichkeit einzelne Abläufe zu wiederholen und die Darstellungsform der Daten zu variieren (z.b. von einer Tabellenansicht in eine Diagrammansicht umschalten), jedoch ist keine Änderung des Ablaufs der Anwendung durch den Anwender möglich. 19

29 2.6 E-Learning III Die Repräsentationsform variieren: In dieser Stufe können repräsentierte Objekte z.b. skaliert oder rotiert werden. Ein Beispiel dafür ist eine 3D-Szene, in der die Kamera frei bewegt werden kann. Ein Verändern der Inhalte ist nicht möglich. IV Den Inhalt der Komponente beeinflussen: Variation durch Parameter- und Datenvariation: Der Anwender hat die Möglichkeit, das Verhalten und die Darstellungen der Anwendung, z.b. durch das Ändern von Parameter, zu beeinflussen. Ein Beispiel dafür ist die Visualisierung eines Sortieralgorithmus, in der die Werte der zu sortierenden Elemente verändert werden können. V Das Objekt bzw. den Inhalt der Präsentation konstruieren und Prozesse generieren: Die Anwendung wird in dieser Stufe zu einem Werkzeug, mit dem der Anwender eigene Objekte oder Welten erzeugen kann, um deren Sachverhalte zu hinterfragen. VI Konstruktive und manipulierende Handlungen mit situationsabhängigen Rückmeldungen: Der Anwender hat in dieser Stufe die gleichen Möglichkeiten wie in der vorherigen, jedoch steht die Anwendung als Tutor mit individuellen intelligenten Rückmeldungen, Vorschlägen und Tipps dem Anwender zur Seite. Diese Stufe stellt eine große Anforderung an die künstliche Intelligenz der Anwendung. Die vorgestellten Stufen der Interaktivität einer Lernanwendung können schnell den Eindruck vermitteln, eine höhere Stufe sei immer besser zum Lernen geignet als eine niedrigere. Dies ist jedoch nicht immer der Fall. Unterteilt man die Lernenden in zwei Gruppen, auf der einen Seite die starken Lerner, denen Lernen grundsätzlich leicht fällt und auf der anderen Seite die Gruppe der schwachen Lerner, so sind für beide Gruppen unterschiedliche Interaktionsgrade von Vorteil. Ein starker Lerner wird sich über einen möglichst hohen Interaktionsgrad freuen und hat die Möglichkeit sich daraus viele Erkenntnisse zu ziehen, jedoch ist ein schwacher Lerner mit der Vielfalt der Möglichkeiten und dem selbständigen Strukturieren des Ablaufes schnell überfordert ( Lost in Hyperspace-Phänomen ) [HHB04]. Dies kann die Motivation des schwachen Lerners beeinträchtigen. Umgekehrt kann ein geringer Interaktionsgrad dem schwachen Lerner die Möglichkeit geben sich auf das wesentliche des Lernstoffes zu konzentrieren, wohingegen sich ein starker Lerner schnell gelangweilt und unterfordert fühlen kann, was wiederum dessen Motivation beeinträchtigen würde. Es ist erstrebenswert für beide Gruppen gleichermaßen gute Bedingungen zu bieten, indem der Interaktionsgrad und der Detailreichtum der angebotenen Informationen in der Lernanwendung durch den Lernenden selbst festgelegt werden kann, also erweiterte Optionen, Parameter und Einstellungsmöglichkeiten optional freigeschaltet werden können. 20

30 3 State of the Art Wissen ist ein zeitlicher Bildungsendstand mangels neuer Erkenntnisse. Werner Mitsch Der Einsatz von E-Learning nimmt an Universitäten und Schulen in den letzten Jahren stetig zu. Essentiell dafür sind Systeme, die es dem Lehrenden ermöglichen, mit möglichst geringem Aufwand Lernkurse zu erstellen. Ein solches System ist das sog. Autorensystem. Ein Autorensystem ist ein Entwicklungswerkzeug zur Erstellung von interaktiver Lernsoftware oder interaktiven Präsentationen. Texte, Grafiken, Sound und Animationen können zu einem Hypermedium verküpft werden. Es gibt viele verschiedene Typen von Autorensystemen. Microsoft Frontpage 9 ist in diesem Sinne auch ein Autorensystem, mit dem Webseiten erstellt werden können, jedoch beschränkt sich diese Diplomarbeit ausschließlich auf Autorensysteme, deren Hauptaufgabe die Erstellung von Lernanwendungen ist. Mit diesen Systemen sollen Lehrende in der Lage sein, Lernkurse selbstständig zu erstellen. Einige dieser Autorensysteme bieten die Möglichkeit zur Erstellung von Testund Übungssequenzen, um das vom Lernenden erworbene Wissen zu kontrollieren und zu intensivieren. Eine weitere wichtige Unterteilung der Autorensysteme ist deren Anforderung an den Autor. Einige Systeme verwenden zum Zusammensetzen des Kurses und zur Kursnavigation Programmier- oder Skriptsprachen, andere ermöglichen das Einfügen von Elementen in Form von Symbolen, sodaß keine Programmierkenntnisse erforderlich sind und die Einarbeitungszeit des Autors in das System wesentlich kürzer ist. Gerade Letztere sind für das E-Learning von großer Bedeutung, denn so können auch Lernanwendungen und Kurse von Autoren geschrieben werden, die keine Programmiervorkenntnisse haben, wodurch die Erstellung von Lernanwendungen einem größeren Kreis von Nutzern zugänglich ist. Nachteilig ist jedoch, daß je einfacher die Erstellung der Kurse in einem 9 Frontpage ist eine Entwicklungsumgebung, die Bestandteil des Microsoft-Office-Paketes ist. Sie dient der Erstellung von Webseiten. Die Entwicklung wurde 2006 eingestellt. Weitere Informationen siehe: 21

31 3.1 CourseLab Autorensystem ist, desto eingeschränkter ist der Funktionsumfang, der zur Verfügung steht, und die Komplexität der zu erstellenden Kurse. Im Umkehrschluß bedingt eine größere Freiheit in der Erstellung der Kurse jedoch auch wieder eine dementsprechend längere Einarbeitungszeit. Es existieren sowohl eine Menge von verschiedenen kommerziellen als auch kostenlosen Autorensystemen. In den folgenden Abschnitten 3.1, 3.2 und 3.3 werden exemplarisch drei verschiedene Autorensysteme vorgestellt. 3.1 CourseLab CourseLab ist ein kostenloses E-Learning-Autorensystem, das die Erstellung von interaktiven Lernkursen ganz ohne Programmierkenntnisse ermöglicht. Dazu stellt CourseLab eine WYSIWYG 10 -Entwicklungsumgebung bereit, die als Ausgabe Dynamic HTML 11 erzeugt. Durch dieses Format sind grundsätzlich zum Ausführen des Kurses keine Webbrowser- Plugins 12, wie Java oder Adobe Flash 13, nötig. Jedoch bietet CourseLab die Möglichkeit, per Drag-and-Drop Multimediainhalte in diversen Formaten, wie Adobe Flash, Java- Applets oder diverse Videoformate, einzubinden. Die Entwicklungsumgebung enthält einen Rich-Text-Editor, mit dem erstellte Texte formatiert werden können. CourseLab unterstützt den Autor bei der Erstellung von Testaufgaben mit einem großen Repertoire an möglichen Test- und Fragetypen. Diese reichen von Single-Choice, Multiple- Choice, Eingabe der Antwort in Textform, Matching-Pairs 14 bis hin zur Erstellung von eigenen Fragetypen. Ein in CourseLab erstellter Kurs hat die Möglichkeit PDFs 15 und Microsoft-Office-Dokumente in einem separaten, externen Fenster zu öffnen. Auf der Webseite [COLAB] steht die aktuelle CourseLab-Version 2.4 zum Download bereit. Weiterhin werden dort eine Menge vorgefertigter Module, die als Vorlage zur Erstellung von Kursen dienen können, zur Verfügung gestellt. Die nachfolgende Abbildung 3.1 zeigt die Erstellung eines Kurses in CourseLab. Das Lay- 10 WYSIWYG (What You See Is What You Get) beschreibt Editoren, die ein Dokument bei der Bearbeitung genau so anzeigen, wie es später bei der Ausgabe aussehen wird. 11 Dynamic HTML bietet gegenüber reinem HTML die Möglichkeit, Webseiteninhalte durch clientseitige Skriptsprachen dynamisch zu verändern. 12 Ein Plugin ist ein Ergänzungsmodul für einen Webbrowser, das dessen Funktionalität erweitert. 13 Adobe Flash ist eine proprietäre Software zur Entwicklung multimedialer Webinhalte. Weitere Informationen siehe: 14 Die Funktionsweise von Matching-Pairs ist ähnlich der von Memory, jedoch sehen die zusammenpassenden Elemente nicht exakt gleich aus, sondern passen in Abhängigkeit des Themas logisch zusammen. 15 PDF steht für Portable Document Format und ist ein plattformunabhängiges Dateiformat, das von Adobe entwickelt wurde. Für weitere Informationen siehe: acrobat/adobepdf.html. 22

32 3.1 CourseLab out der CourseLab-Entwicklungsumgebung erinnert stark an die Entwicklungsumgebung von Microsoft PowerPoint. Daraus, daß CourseLab auf der eigenen Webseite [COLAB] mit Familiar PowerPoint-like authoring environment für sich wirbt, läßt sich schließen, daß diese Ähnlichkeit kein Zufall ist. Abbildung 3.1: Entwicklungsumgebung von CourseLab (übernommen von [CLABB]) Obwohl CourseLab kostenlos erhältlich ist, stehen unter [COLAB] drei kostenpflichtige Funktionserweiterungen, u.a. eine Importfunktion für PowerPoint-Präsentationen, bereit. Diese kosten jeweils 99 US-Dollar, sodaß für einen vollen Funktionsumfang 297 US-Dollar investiert werden müssen. In CourseLab erstellte E-Learning-Kurse können in jeder Lernplattform 16 genutzt werden, die einen der drei Standards AICC 17, SCORM oder SCORM 2004 unterstützt. Ein Nachteil von CourseLab ist, daß die Entwicklungsumgebung keinen Formeleditor bietet. Formeln können lediglich durch Erstellen in externen Medien und deren Einbindung in den Kurs verwendet werden. Weiterhin ist der CourseLab-Editor nur mit Microsoft 16 Eine Lernplattform ist eine Software zur Bereitstellung und Verwaltung von Lernkursen. Manche Lernplattformen enthalten Statistiken zu Lernerfolgen oder ermöglichen die Kommunikation zwischen den Lernenden. 17 AICC (Aviation Industry CBT Committee) ist ein Zusammenschluß von Herstellern und Experten für Computer Based Training (CBT) und E-Learning. Das AICC bietet eine Zertifizierung von Lernplattformen nach ihrem eigens entwicklten, weit verbreiteten E-Learning-Standard an. Für weitere Informationen siehe: 18 SCORM (Shareable Content Object Reference Model) ist ein Referenzmodel der Advanced Distributed Learning Initiative (ADL), das mehrere E-Learning Standards, mit der Zielsetzung der Wiederverwendbarkeit von E-Learning-Inhalten in unterschiedlichen Lernplattformen, vereint. Für weitere Informationen siehe: 23

33 3.2 LernBar Windows kompatibel. Die Verwendung von CourseLab unter Linux und MacOS ist nicht vorgesehen. Ein weiterer Nachteil ist, daß das CourseLab-API 19, von dem Öffnen von Dokumenten in externen Anwendungen abgesehen, keine Interaktions- und Kommunikationsmöglichkeiten mit externen Anwendungen anbietet. Bei der Betrachtung von online zur Verfügung gestellten Kursen fällt ein äußerst unangenehmer Effekt auf. Die Seiten der Online-Kurse werden schrittweise nach Bedarf aus dem Internet geladen, sodaß nach jeder Interaktion auf das Laden einer Seite gewarten werden muß. Das Resultat des Ladens ist ein unangenehmes Flackern und die Sichtbarkeit des langsamen, zeilenweisen Bildaufbaus der Seiten. Ein Vorteil von CourseLab ist, daß Kurse sowohl offline, als auch online genutzt werden können. Kurse können durch einfaches Kopieren des entsprechenden Ordners auf andere Rechner mit Microsoft Windows portiert werden. Das Ausführen der Kurse ist in jedem gängigen Webbrowser möglich. Zusätzliche Webbrowser-Plugins sind nur nötig, wenn entsprechende Inhalte im Kurs verwendet werden. Das Kursmodul prüft vor dem Start des Moduls, ob im Webbrowser alle benötigten Erweiterungen zur Verfügung stehen und warnt gegebenenfalls. Weitere Pluspunkte von CourseLab sind die zahlreichen Hilfen auf der Webseite [COLAB] sowie ein gut frequentiertes Forum, in dem Autoren sich gegenseitig Tips und Hilfestellungen geben können. Es stehen Tutorials, Erklärungen und zahlreiche Beispiele zur Entwicklung von Kursen zur Verfügung. 3.2 LernBar Die LernBar ist ein E-Learning Autorensystem, das an der Goethe-Universität Frankfurt in Kooperation mit studiumdigitale 20 entwickelt wurde. Das Autorensystem besteht aus den drei Anwendungen LernBar Player, LernBar Studio und LernBar Portal. Der LernBar Player ermöglicht das Anzeigen eines Kurses in einem Webbrowser und stellt eine Navigationsleiste, die gängigen Designrichtlinien folgt, bereit. In jedem entworfenem Kurs steht diese Leiste zur Verfügung und ermöglicht so eine einheitliche, nutzerzentrierte Navigation. Der Player basiert auf Adobe Flash, sodaß zum Darstellen der Kurse im Browser das Adobe-Flash-Plugin benötigt wird. Das LernBar Studio ist das eigentliche Werkzeug zur Erstellung der Kurse. Es ermöglicht eine WYSIWYG-Produktion der Kurse. Die erzeugten interaktiven Lerninhalte entstehen unter Berücksichtigung von gestalterischen Qualitätskriterien. Kursinhalte basieren auf 19 API ist die Abkürzung für application programming interface 20 studiumdigitale ist eine Institution der Goethe-Universität Frankfurt, deren Aufgabe in der Verbesserung der Lehre durch Unterstützung von E-Learning-Projekten besteht. Weitere Informationen siehe 24

34 3.2 LernBar HTML und können mit Adobe Flash, Java-Applets sowie Audio- und Videoinhalten angereichert werden. Für die Kurse existieren mehr als 40 Designvorlagen sog. Templates. Es besteht die Möglichkeit das Gelernte mit Tests zu überprüfen. Für diese Tests stehen zahlreiche Fragemöglichkeiten, wie Quiz, Self-Assesment, Single-Choice, Multiple-Choice sowie Sortier- und Lückentextaufgaben, zur Verfügung. Zu jeder Frage kann ein Feedback gegeben werden. Die Kurse können als Pdfs ausgedruckt werden und sowohl offline als auch online genutzt werden. Sie sind SCORM-kompatibel und lassen sich somit in gängige Lernplattformen einbinden. In Abbildung 3.2 ist ein Kurs, der mit der LernBar erstellt wurde, zu sehen. Abbildung 3.2: Ein mit der LernBar entwickelter Kurs (übernommen von [LeBar]) Das Lernbar Portal [LerBa] ist eine Webanwendung, die es ermöglicht Kurse online zu veröffentlichen und zu verwalten. Kurse können öffentlich, also für jeden auch ohne Registrierung zugänglich gemacht werden oder nur für registrierte Benutzer. Zur Freischaltung von Kursen kann der Autor an die registrierten Benutzer entweder ein Ticket verschicken, was diese zur Freisschaltung berechtigt oder ein Passwort, mit dem der Benutzer sich Zugang zu dem Kurs verschaffen kann. Die LernBar steht aktuell in Release 2.0, für nicht kommerziellen Einsatz, kostenlos zur Verfügung. Einer der Vorteile der LernBar ist, daß vielfältige Lehr- und Lernszenarien unterstützt werden. Die Oberfläche des LernBar Studios ist sehr übersichtlich und intuitiv gestaltet. Kurse können vom Studio direkt in das Portal hochgeladen werden. Für den Lernenden besteht die Möglichkeit Zwischenstände der Kurse abzuspeichern und diese später fortzusetzen. Die zu anderen Autorensystemen vergleichsweise einfache und flexible Erstellung von Kursen sowie die Möglichkeit diese sowohl online als auch offline 25

35 3.3 Adobe Director zu nutzen, ermöglicht es einem breiten Spektrum an Autoren aus den verschiedensten Bereichen, E-Learning-Kurse nach ihren Bedürfnissen zu erstellen. 3.3 Adobe Director Aktuelle Autorensysteme wie die in Abschnitt 3.1 und 3.2 vorgestellten, ermöglichen zwar die Einbindung von 3D-Animationen und Filmen, z.b. in Form von Adobe Flash, um den Lerninhalt zu veranschaulichen, bieten jedoch keinerlei Unterstützung in der Entwicklung solcher 3D-Inhalte. Eine wichtige Anforderung für den Einsatz von 3D-Inhalten in Autorensystemen ist es, daß die 3D-Inhalte online genutzt werden können. Obwohl es schon lange möglich ist mit z.b. Java 3D, das schon seit über 10 Jahren zur Verfügung steht, VRML 21, Adobe Flash oder Microsoft Silverlight 22 online verfügbare 3D-Animationen zu schreiben, kam es bisher zu keinem Durchbruch von 3D-Inhalten im Web. Generell existieren zzt. noch keine Autorensysteme, die es Autoren ohne jegliche Programmiererfahrung ermöglichen, beliebige 3D-Szenen mit beliebigem Interaktionsgrad zu erstellen. Jedoch gehen einige Entwickler mit ihren Bemühungen immer mehr in diese Richtung. Das proprietäre Autorensystem Adobe Director [ADURL] unterstützt nach eigenen Angaben native 3D-Rendering und ermöglicht den Import von vorgefertigten 3D-Modellen in den gängigsten Formaten. Adobe Director ist ein Autorensystem für Microsoft Windows und Mac OS, das die Erstellung von komplexen, interaktiven Multimedia-Anwendungen unterstützt. Es kommt hauptsächlich zur Erstellung von kommerziellen Online-Spielen und Multimedia-Anwendungen zum Einsatz, bietet jedoch auch die Möglichkeit Simulationen und E-Learning-Kurse zu erstellen. Die produzierten Anwendungen können entweder offline oder als Online-Stream genutzt werden. Vorausetzung zur Nutzung ist die Installation des kostenlosen Webbrowser-Plugins Shockwave. Es werden über 40 Multimedia-Formate aus den Bereichen Text, Grafik, Video und Audio unterstützt. Für die gängigsten 3D- Formate existieren Import- und Exportfunktionen. Nachfolgende Abbildung 3.3 zeigt die Adobe Director-Entwicklungsumgebung. 21 VRML (Virtual Reality Modeling Language) ist eine Beschreibungssprache und ein Standard zur Darstellung von 3D-Inhalten im Internet. 22 Das proprietäre Microsoft Silverlight ist ein Webbrowser-Plugin und ermöglicht die Entwicklung von multimedialen Internet-Anwendungen sowie deren Darstellung. Weitere Informationen siehe: http: //silverlight.net/. 26

36 3.3 Adobe Director Abbildung 3.3: Entwicklungsumgebung von Adobe Director (Screenshot lokal ausgeführte Anwendung) Zur Erstellung der Inhalte verfügt Adobe Director über die Programmiersprache Lingo, die eigens für das Autorensystem entwickelt wurde, und JavaScript, um Nutzern die bereits Programmiererfahrung haben den Einstieg zu erleichtern. Lingo ist keine objektorientierte Sprache, besitzt jedoch objektorientierte Ansätze. Weiterhin ermöglichen sog. code snippets, das sind kleine vorgefertigte Code-Bausteine, die Erstellung von einfachen interaktiven Inhalten, ohne selbst programmieren zu müssen. Um Echtzeit-3D-Inhalte zu integrieren, besitzt Adobe Director eine eigene 3D-Engine, Shockwave 3D. Shockwave 3D bietet einen großen Funktionsumfang, u.a. die Erstellung von schlüsselbildbasierten Animationen (Keyframing) oder skelettbasierten Animationen. Für Windows werden als Hardware-Renderer OpenGL und Direct3D unterstützt, Mac- Nutzern steht OpenGL zur Verfügung. Zur Erstellung von realistischen physikalischen Effekten verwendet Shockwave 3D die Physik-Engine NVIDIA PhysX 23. Als Fazit läßt sich sagen, daß Adobe Director ein sehr mächtiges Autorensystem ist, das über einen gewaltigen Funktionsumfang verfügt. Gerade deshalb dürfte die Einarbeitungszeit dementsprechend lang ausfallen. Zur Unterstützung in die Einarbeitung existieren im Internet unzählige Foren und Tutorials, die die zahlreichen Funktionen vorstellen und erläutern. Ein großer Nachteil ist jedoch, daß Adobe Director kommerziell ist und die aktuelle Version 11.5 stolze 999 US-Dollor kostet. 23 Um die Physik-Engine NVIDIA PhysX verwenden zu können, wird eine PhysX-fähige GeForce Grafikkarte von NVIDIA benötigt. Weitere Informationen siehe: physx_de.html. 27

37 3.4 Visualisierung von Computergrafik-Algorithmen und 3D-Inhalten 3.4 Visualisierung von Computergrafik-Algorithmen und 3D-Inhalten In der Fachwelt ist eine rege Diskussion über den Nutzen von Visualisierungen von Computergrafik-Algorithmen im Bereich des E-Learnings entstanden [AVS07]. Einige Studien zeigen, daß Visualisierungen das Lernen deutlich verbesseren [EAS99], [EEA94], [HLV00], andere jedoch sehen durch die Benutzung von Visualisierungen zu Lernzwecken, keine signifikante Verbesserung des Lernerfolges [ABP04], [TEA96], [VLA00]. Das Problem an einer Bewertung des Nutzens von Visualisierungen ist, daß die dafür benötigten Untersuchungen und Experimente empirisch sind. Im Mittelpunkt dieser Untersuchungen steht der Mensch und seine Lernfähigkeit. Es ist kaum möglich alle Faktoren, die das Lernen des Menschen beeinflussen, in einer solchen empirischen Untersuchung zu berücksichtigen, sodaß es so gut wie zu jeder Untersuchung in diesem Bereich gegensätzliche Meinungen gibt. Worin sich die Fachwelt jedoch einig ist, ist die Tatsache, daß Visualisierungen den Lernerfolg verbessern, wenn sie die Motivation des Lernenden steigern, weil der Lernende dadurch härter arbeitet. Somit haben motivationsfördernde Visualisierungen einen signifikanten Nutzen [AVC07]. In [AVS07] wurde versucht so viele Visualisierungen aus dem Bereich der Computergrafik wie möglich zu finden, zu kategorisieren und zu analysieren. Es wurden mehr als 350 existierende Computergrafik-Visualisierungen ausgewertet. Das Ergebnis ist ernüchternd. Die meisten haben nur einen sehr geringen didaktischen Nutzen. Sie geben dem Lernenden kein besseres Verständnis davon, wie der visualisierte Algorithmus funktioniert. Ein wichtiger Aspekt, um die Motivation des Lernenden zu erhöhen, ist, daß er während der Benutzung einer Visualisierung aktiv involviert sein sollte [DDL05]. Dadurch ergibt sich, daß reine Animationen, die von den sechs Stufen der Interaktivität einer Multimedia-Anwendung Stufe I darstellen (siehe Kapitel 2.6), didaktisch weniger geeignet sind als Visualisierungen mit einem höheren Interaktionsgrad, also Stufen II bis VI. Dies ist ein weiterer Punkt, warum viele der in [AVS07] gefundenen Visualisierungen didaktisch nahezu wertlos sind, denn ca. 50 Prozent der gefundenen Visualisierungen sind reine Animationen ohne entscheidende Interaktivität. Grundsätzlich ist zu bemängeln, daß viele Visualisierungen nur schöne Grafiken bieten, jedoch keine große didaktische Hilfe sind [UAA01]. Das Erstellen der Grafiken ist bereits oft mit großem Aufwand verbunden. Aufgrund dessen wird in [PEV07] eine Bibliothek von Java-Klassen mit dem Namen JHAVÉ, was eine Abkürzung für Java-Hosted Algorithm Visualization Environment ist, vorgestellt. JHAVÉ soll es einem Autor ermöglichen, pädagogisch effektive Algorithmen-Visualisierungen zu erstellen [PEV07]. Unter [JHAVÉ] steht JHAVÉ zum Download bereit. Weiterhin stehen einige Visualisierungen 28

38 3.4 Visualisierung von Computergrafik-Algorithmen und 3D-Inhalten von Algorithmen zur Verfügung, die direkt online per Java Web Start 24 geladen und verwendet werden können. Jedoch ist unter den verfügbaren Algorithmen kein einziger aus dem Themenbereich der Computergrafik. Während des Ablaufs einer Simulation werden Zwischenfragen gestellt, um den Lernfortschritt zu ermitteln (siehe Abbildung 3.4). Die weitere Ausführung hängt jedoch nicht von dem Beantworten der Fragen ab, sondern es wird die Möglichkeit gegeben, die selbe Frage nochmal zu beantworten. Abbildung 3.4: Visualisierung von Bubbelsort in JHAVÉ (Screenshot lokal ausgeführte Anwendung) JHAVÉ ermöglicht ein schrittweises Vor- und Zurücknavigieren sowie die direkte Auswahl eines bestimmten Schrittes. In der rechten Hälfte des Fensters werden Informationstexte zum Algorithmus oder wahlweise der Algorithmus selbst als Pseudo-Quellcode mit Syntaxhighlighting dargestellt. Auffällig ist, daß die Grafiken in Pseudo-3D bzw. 2,5D dargestellt werden. Ein großer Nachteil ist, daß keine volle 3D-Unterstützung vorhanden ist. In [ITM96] werden eine in C geschriebene Klassen-Bibliothek und einige unter deren Verwendung geschriebene Module, die zu Lernzwecken dienen sollen, vorgestellt. Im Gegensatz zu [PEV07] sind diese Module ausschließlich Visualisierungen von Computergrafik- Algorithmen. Vertreten sind z.b. einfache Transformationen, Viewportberechnung, der Bresenham-Algorithmus und die Komposition von einfachen geometrischen Objekten zu einem komplexeren Objekt. Jedoch ist auch hier der große Nachteil, daß die Darstellung der Visualisierung ausschließlich in 2D erfolgt. Ein weiteres Algorithmen-Animations-Tool ist ANIMAL [ANI00]. Es bietet, im Gegen- 24 Java Web Start ist eine Technologie von Sun Microsystems, die es ermöglicht online verfügbare Java- Anwendungen herunterzuladen und diese direkt lokal auszuführen. Weitere Informationen siehe: 29

39 3.4 Visualisierung von Computergrafik-Algorithmen und 3D-Inhalten satz zu den bisher vorgestellten Visualisierungs-Tools, u.a. die Möglichkeit einfache Animationen durch einen visuellen Editor ganz ohne Programmierung zu erstellen. Die damit erstellten Algorithmen-Visualisierungen wurden an der Universität Siegen zu Lernzwecken verwendet. Allerdings bietet auch dieses Tool wieder nur eine 2D-Darstellung der Inhalte. ANIMAL und das Animal Animation Repository stehen unter [ANWEB] zur Verfügung. Jedoch ist unter den verfügbaren Algorithmen, genau wie bei JHAVÉ, kein einziger aus dem Themenbereich der Computergrafik. Eine echte 3D-Darstellung der Lerninhalte wird von dem System, das in [WCG98] vorgestellt wird, ermöglicht. Es baut auf dem Java 2D-API auf, das durch eigene Klassen, die OpenGL verwenden, in die dritte Dimension erweitert wurde. Java 3D war zum Zeitpunkt der Entwicklung dieses System noch nicht auf dem Markt, jedoch stand das Release kurz bevor. Das System verwendet genau wie Java 3D einen Szenegraphen zum Erstellen der Szene. Die Autoren gehen davon aus, daß ihre eigenen Klassen durch Java 3D ersetzt werden könnten. Dadurch, daß Java 3D noch nicht verwendet wird, stellt das System jedoch keine nützliche Basis für das Entwickeln von aktuellen 3D-Visualisierungen dar. Ein grundlegendes Problem ist die Schwierigkeit des Auffindens von geeigneten Visualisierungen im Web. Eine Ursache dafür ist, daß keine großen Visualisierungsarchive, die viele Visualisierungen bereithalten, existieren. Dadurch gestaltet sich das Auffinden einer Visualisierung zu einem bestimmten Thema schwierig [AVS07]. Einige kleinere Visualisierungssammlungen, die einige Computergrafik-Algorithmen enthalten, werden nachfolgend vorgestellt. Mit dem Namen Computer Graphik spielend lernen stehen unter [WSIGR] 70 interaktive Visualisierungen von Computergrafik-Algorithmen als Java-Applets, die im Webbrowser ausgeführt werden können, bereit. Einige Inhalte werden in 3D repräsentiert. Zu den Applets stehen sog. Kursbücher zur Verfügung, die vermutlich einen zum jeweiligen Thema passenden Erklärungstext und weiterführende Informationen enthalten, jedoch sind diese durch einen Passwortschutz versehen und so nur Zugangsberechtigten zugänglich. Erklärungstexte zu den einzelnen Visualisierungen existieren nicht. Der nicht zugangsberechtigte Benutzer wird mit dem was er sieht und an Parametern einstellen kann völlig allein gelassen. Dadurch verlieren diese Visualisierungen didaktisch deutlich an Wert. Diese Sammlung ist an der Universität Tübingen für Lernzwecke zum Einsatz gekommen. Die Visualisierungen wurden mit dem in [WCG98] vorgestellten System entwickelt. Eine Webseite, die sich The Complete Collection of Algorithm Animations nennt [TCCAA], stellt einige Links zu diversen Algorithmen-Animationen bereit. Darunter befindet sich jedoch kein einziger Computergrafik-Algorithmus sowie kein einziger Algorithmus, dessen 30

40 3.4 Visualisierung von Computergrafik-Algorithmen und 3D-Inhalten Inhalt in 3D dargestellt wird. Letztmals aktualisiert wurde die Seite Dementsprechend führen viele der angegebenen Links zu nicht mehr existierenden Seiten. Im Zusammenhang mit der in [AVS07] erwähnten Arbeit, wurde von den Autoren AlgoViz- Wiki [DSAVW] erstellt. Diese Webseite ist eine Art Katalog, in dem sich Links zu Visualisierungen von Datenstrukturen und Algorithmen befinden. Insgesamt sind 435 Visualisierungen verzeichnet. Zu jeder einzelnen Visualisierung existiert eine Beschreibung, die u.a. angibt, um welche Art von Visualisierung es sich handelt, wann der letzte Zugriff darauf erfolgte, zu welchem Themenbereich sie gehört und ob sie nach Meinug der Autoren zu empfehlen ist. Erstaunlicherweise ist unter den 435 gelisteten Visualisierungen nur eine einzige aus dem Themenbereich der Computergrafik. Der dazugehörige Link verweist auf ein weiteres Archiv von Algorithmen-Visualisierungen [JAAPC]. Die Repräsentation der in diesem Archiv enthaltenen Visualisierungen von Computergrafik- Algorithmen ist überwiegend in 2D. Lediglich drei Visualisierungen zeigen den Inhalt in 3D. Zwei davon stellen Transformationen im Dreidimensionalen dar, und die Dritte zeigt die Funktionsweise von Projektionen. Zu diesen drei Visualisierungen existieren keine erklärenden Texte. Die Interaktionsmöglichtkeiten beschränken sich ausschließlich auf die Auswahl der darzustellenden Animation. Dies entspricht lediglich Stufe I der sechs Stufen der Interaktivität einer Multimedia-Anwendung (siehe Kapitel 2.6). Die Verwendung einer 3D-Darstellung hat gegenüber einer 2D-Darstellung in Visualisierungen sowohl Vorteile als auch Nachteile. Eine 3D-Darstellung gibt dem Benutzer einen weiteren Freiheitsgrad. Dieser kann es dem Benutzer einfacher machen das Gezeigte zu verstehen [VOS93]. Ein großes Problem ist jedoch die Navigation in 3D-Inhalten. Es kann zu Orientierungsschwierigkeiten des Benutzers kommen und zur Verdeckung bzw. zum Verlust von essentiellen Informationen durch die Projektion der 3D-Szene auf den 2D-Bildschirm [VCG96]. Deshalb ist es wichtig dem Benutzer, so oft wie möglich, eine adäquate Rückmeldung und eine gute Übersicht zu geben [IBR03]. Sicherlich sind 3D-Darstellungen nicht immer und für jedes Thema besser geeignet als 2D-Darstellungen. In einem Experiment, in dem es darum geht, daß Versuchspersonen sich Buchstaben und Länderflaggen einprägen sollen, spielt es für den Erfolg keine Rolle, ob das Interface drei- oder zweidimensional ist, wie in [RIM04],[RIM01] und [EEM02] gezeigt wird. Ob eine 3D-Darstellung letzten Endes für ein bestimmtes Problem besser geeignet ist als 2D, hängt vom Problem selbst und der Umsetzung der Visualisierung ab. Eine didaktisch effektiv erstellte 3D-Visualisierung ist sicherlich eine Bereicherung für Algorithmen, die selbst im Dreidimensionalen arbeiten. Dies gilt insbesondere für komplexe Computergrafik-Algorithmen, wie Raytracing oder Radiosity. 31

41 3.5 Simulation und Visualisierung von Radiosity 3.5 Simulation und Visualisierung von Radiosity Wie in Kapitel 3.4 schon erwähnt, gestaltet sich das Auffinden einer Visualisierung oder einer Simulation zu einem bestimmten Thema schwierig [AVS07]. Besonders 3D- Visualisierungen und 3D-Simulationen von Computergrafik-Algorithmen sind entweder sehr rar oder so im Internet hinterlegt, daß sie mit konventionellen Suchmethoden nicht aufzufinden sind. Im vorhergehenden Kapitel 3.4 wurde ein Archiv [WSIGR], das Visualisierungen und Simulationen von Computergrafik-Algorithmen enthält, bereits vorgestellt. Es enthält zwei Java-Applets, die Progressive-Refinement-Radiosity in der Shooting- Variante visualisieren. Das erste Applet ist nicht viel mehr als eine Animation, durch die schrittweise navigiert werden kann. In jedem Schritt ist eine mit Radiosity beleuchtete Szene zu sehen. Jeder Navigationsschritt entspricht dabei einem Progressive-Refinement- Iterationsschritt (siehe Abbildung 3.5). Abbildung 3.5: Visualisierung von Progressive-Refinement-Radiosity (Screenshot von [WSIP1]) Das zweite Applet ermöglicht deutlich mehr Interaktion. Es können verschiedene Parameter wie Iterationschritt, Fehler, Intensität und Zeichenmodus eingestellt werden. Mit Zeichenmodus kann zwischen einer Wireframe-Darstellung, Radiosity oder Radiosity mit ambienter Beleuchtung gewählt werden. Die Ansicht der 3D-Szene kann mit der Maus beliebig rotiert werden (siehe Abbildung 3.6). 32

42 3.5 Simulation und Visualisierung von Radiosity Abbildung 3.6: Interaktive Visualisierung von Progressive-Refinement-Radiosity (Screenshot von [WSIP2]) Beide Visualisierungen enthalten keine Erklärungstexte oder Hinweise welche Auswirkung einzelne Parameter haben. Der Benutzer wird mit der Visualisierung allein gelassen, sodaß der didaktische Nutzen dieser Visualisierungen fraglich ist. Eine weitere Radiosity-Visualisierung steht unter der Webseite [RADSG] bereit. Sie zeigt den grafischen Unterschied zwischen Progressive-Refinement-Radiosity als Shooting- und als Gathering-Variante. Aufgrund von technischen Inkompatibilitäten konnte das Applet leider nicht ausgeführt werden. Nach Angaben der Webseite, kann in dieser Visualisierung einer der beiden Algorithmen ausgewählt werden. Dieser Algorithmus wird auf eine vorgefertigte Szene angewandt, um diese zu beleuchten. Die aus den einzelnen Iterationen resultierenden Beleuchtungsveränderungen der Szene werden schrittweise, animiert dargestellt. Zusätzlich ist die Formfaktormatrix und deren Veränderung während der einzelnen Iterationen dargestellt. Die Kamera kann in der 3D-Szene frei bewegt werden. Als Parameter lassen sich u.a. ein Wert für Mesh Density, also wie fein die Szene in Patches unterteilt ist sowie die Art des Shadings, zur Auswahl stehen Flat- und Gouraud-Shading, auswählen. Gegenüber den vorher vorgestellten Visualisierungen ist der Funktionumfang zwar etwas größer, jedoch existieren auch in dieser Visualisierung keine Erklärungstexte. Wie genau die Radiosity-Algorithmen arbeiten wird nicht erklärt. Im selben Archiv, in dem die gerade vorgestellte Radiosity-Visualisierung enthalten ist, existiert eine weitere Simulation und Visualisierung des Radiosity-Verfahrens [RADFF]. Diese zeigt die Abhängigkeit des Formfaktors vom Winkel und der Distanz der bei- 33

43 3.5 Simulation und Visualisierung von Radiosity den zum Formfaktor zugehörigen Flächen. Aufgrund von technischen Inkompatibilitäten konnte leider auch dieses Applet nicht ausgeführt werden. Somit bezieht sich die folgende Auswertung wiederum auf Angaben der Webseite dieser Simulation. Zu sehen ist eine 3D-Szene, in der zwei Flächen dargestellt sind, zu denen der Formfaktor ermittelt werden soll. Unter dieser Darstellung wird ein Graph angezeigt, der wahlweise die Abhängigkeit des Formfaktors von dem Winkel, in dem die beiden Flächen zueinander stehen oder von der Distanz zwischen den beiden Flächen, darstellt. Der Benutzer hat die Möglichkeit zwischen einem dieser beiden Darstellungen zu wählen und den Winkel bzw. die Distanz der beiden Flächen zu ändern. Genau wie in der vorhergehenden Visualisierung kann auch in dieser die Kamera frei in der 3D-Szene bewegt werden. Diese Simulation ist die erste bisher vorgestellte, die zumindest einen Teilaspekt des Radiosity-Algorithmus darstellt. Der Benutzer kann nachvollziehen, welche Faktoren in der Formfaktorberechung berücksichtigt werden müssen. Ein wichtiger Faktor, von dem die Formfaktorberechnung ebenfalls abhängt, die Sichtbarkeit bzw. Verdeckung von Flächen, bleibt hier jedoch unberücksichtigt. Auch in dieser Visualisierung fehlen erklärende Texte. Wenn Benutzer nicht schon Vorkenntnisse von Radiosity haben und somit wissen, was sie in dieser Visualisierung sehen sollen, werden sie nur wenig von dem Dargestellten verstehen können. Eine in Visual C++ geschrieben Radiosity-Visualisierung wird auf folgender Webseite vorgestellt [RAGDR]. Diese Visualisierung basiert auf einem abgeänderten Radiosity- Verfahren, daß als Initialisierung von jedem Patch der Szene einen Strahl zur Lichtquelle aussendet. Erreicht dieser Strahl die Lichtquelle, so wird das Patch in Farbe und Intensität der Lichtquelle voll beleuchtet und dessen Farbe entsprechend gesetzt. Falls der Strahl durch Verdeckung nicht ankommt, wird das Patch schwarz gefärbt. Nach dieser Initialisierung wird Progressive Refinement Radiosity in der Gathering-Variante mittels eines Hemi-Cubes berechnet. Die Szene wird je nach Bedarf während der Berechnung adaptiv unterteilt. Die Visualisierung ermöglicht es die Szene nach einzelnen Iterationsschritten zu betrachten. In der Szene kann ein Patch gewählt werden und die Projektion der Szene auf den entsprechenden Hemi-Cube als 2D-Grafik in einem separaten Fenster angezeigt werden. Es ist auch möglich die adaptive Unterteilung als Gitterstruktur in der Szene anzeigen zu lassen. In Abbildung 3.7 ist die Anwendung dargestellt. Der Funktionsumfang dieser Visualisierung ist wesentlich größer, als bei den bisher Vorgestellten. Jedoch fehlen auch hier wieder erklärende Texte, sodaß der Benutzer Radiosity kennen muß, um zu verstehen, was die angebotenen Darstellungen verdeutlichen sollen. 34

44 3.5 Simulation und Visualisierung von Radiosity Abbildung 3.7: Interaktive Visualisierung einer Radiosity-Variante (übernommen von [RAGDR]) Ein Radiosity-Visualisierungs-Tool zur Darstellung von klassischem, Progressive Refinement und Wavelet Radiosity 25 ist radvis. Es basiert auf dem Radiosity-Renderer Radiator und bildet dessen Visualisierungs-Frontend. Auf der Webseite von radvis [RAVIS] steht das Tool zusammen mit Radiator zum kostenlosen Download bereit. Eine Dokumentation der zahlreichen Funktionen und Einstellungen steht ebenfalls zur Verfügung. Diese ist auch nötig, denn wie in Abbildung 3.8 zu sehen ist, ist radvis nicht sonderlich übersichtlich gestaltet. Abbildung 3.8: Das Radiosity-Visualisierungs-Tool radvis (übernommen von [RAVIS]) 25 Weitere Informationen zu Wavelet Radiosity siehe: [WRA93] 35

45 3.6 Zusammenfassung Im linken Bereich des Fensters wird die 3D-Szene dargestellt. Auf der rechten Seite, über den Einstellungsmöglichkeiten, befindet sich die Ansicht der Formfaktormatrix, deren Inhalt je nach Art des visualisierten Radiosity-Verfahrens variiert. Ein Vorteil von radvis ist das mehrere Radiosity-Verfahren visualisiert werden können und zu jeder Variante viele Parameter einstellbar sind. Nachteilig ist, daß radvis nur für Red Hat Linux verfügbar ist. Weiterhin fällt die unübersichtliche Anordnung der Bedienelmente auf. Der Benutzer wird beim ersten Betrachten von der Vielfalt der Möglichkeiten regelrecht erschlagen. Auch diese Radiosity-Visualisierung bietet keine Erklärungstexte. 3.6 Zusammenfassung Für eine Lernanwendung mit 3D-Inhalten ist die Interaktion mit diesen Inhalten ein zentrales Element. Es existieren so gut wie keine Autorensysteme, die dem Autor die Erstellung von komplexen, interaktiven 3D-Inhalten erleichtern. Alle komplexen 3D-Inhalte müssen per Hand programmiert werden. Adobe Director unterstützt zwar die Entwicklung von 3D-Inhalten, erzeugt jedoch keine mit Lernplattformen kompatiblen Kurse, sondern eigenständige Anwendungen. Ein weiterer Ausschlußgrund für die Verwendung von Adobe Director zur Erstellung der für diese Arbeit implementierten Lernanwendung ist, daß die Software proprietäre ist. Generell ist es nicht möglich komplexe 3D-Inhalte als Lernkurse, nach den E-Learning-Standards SCORM oder AICC, mit den aktuell gängigen und den in dieser Arbeit vorgestellten Autorenwerkzeugen zu erstellen. Die hier vorgestellten Autorensyteme sind somit nicht geeignet um die visuelle Simulation von Radiosity vollständig in ihnen zu entwerfen. Als Resultat daraus kann die 3D-Lernanwendung auch gleich manuell, ohne Verwendung eines E-Learning-Autorensystems, erstellt werden. Einen möglichen Einsatz für ein Autorensystem bietet sich jedoch in der Gestaltung eines Kurses zum angeleiteten Lernen, sodaß der Kurs das Lernen mit der 3D-Lernanwendung instruiert oder zum Entwurf von Test- und Fragebögen, die der Lernkontrolle dienen sollen. Die hier vorgestellten Autorensysteme bieten eine gute Auswahl an vorgefertigten Fragetypen, die zu diesem Zweck verwendet werden können. Wie in Kapitel 3.1 beschrieben entstehen bei der Online-Verwendung von mit CourseLab erstellten Kursen unschöne, störende Effekte. Letzendlich bietet es sich an, für die Erstellung des anleitenden Kurses, zu der in dieser Diplomarbeit entwickelten Lernanwendung, das Autorenwerkzeug Lern- Bar zu verwenden, das an der selben Professur weiterentwickelt wird, an der auch diese Diplomarbeit geschrieben wurde. Eine kleine Erleichterung in der Erstellung von 3D-Inhalten bietet Java 3D. Durch seine 36

46 3.6 Zusammenfassung bereitgestellten Klassenbibliotheken ist Java 3D nicht so lowlevel zu programmieren, wie z.b. OpenGL. Es erlaubt plattformunabhägige, online verfügbare 3D-Inhalte zu entwerfen. Der Zusammenbau des 3D-Inhaltes mit den Navigationselementen und den Anweisungstexten des GUI muß jedoch manuell ausgeführt werden. Wie in Kapitel 3.4 zu sehen war, werden in den meisten existierenden Computergrafik- Visualisierungen die Inhalte lediglich zweidimensional dargestellt. Die 3D-Darstellung kann jedoch die Motivation und das Verständnis des Benutzers erhöhen, bringt aber auch das Problem der Navigation in 3D-Inhalten sowie die möglichen Orientierungsschwierigkeiten des Benutzers und den möglichen Verlust von essentiellen Informationen mit sich. Ob eine 3D-Darstellung letzten Endes für ein bestimmtes Problem besser geeignet ist als 2D, hängt vom Problem selbst und der Umsetzung der Visualisierung ab. Eine didaktisch effektiv erstellte 3D-Visualisierung ist besonders für den im Dreidimensionalen arbeitenden Radiosity-Algorithmus äußerst nützlich. Das Auffinden von Visualisierungen und Simulationen zu einem bestimmten Thema ist durch die mangelnde Verwaltungsinfrastruktur (es existieren nur wenige kleine Archive) schwierig. Ein Großteil der Visualisierungen kann nicht ohne erheblichen Aufwand zum Laufen gebracht werden. Lediglich Java-Applets bieten eine gute Möglichkeit, obwohl selbst diese veralten können, wodurch technische Inkompatibilität das Ausführen unmöglich macht. Wie in Kapitel 3.5 beschrieben wird in Visualisierungen und Simulationen oft nur das Verhalten und das Ergebnis des Algorithmus gezeigt, und nicht wie der Algorithmus zu dem entsprechenden Ergebnis kommt, sodaß der didaktische Nutzen der entsprechenden Visualisierungen sehr fraglich ist. Insbesondere erklärt keine der vorgestellten Radiosity- Visualisierungen wie es zu den dargestellten Ergebnissen von Radiosity kommt, also wie Radiosity eigentlich berechnet wird und funktioniert. Sie zeigen lediglich die Ergebnisse bzw. die Auswirkungen von Radiosity-Berechnungen auf eine Szene und ermöglichen diese auf verschiedene Weise durch Einstellungen zu ändern bzw. die Ansicht des Ergebnisses zu ändern. Erklärungstexte fehlen gänzlich. Ein Großteil der existierenden Visualisierungen sind reine Animationen ohne hohen Interaktionsgrad [AVS07]. Dadurch haben viele Visualisierungen nur einen geringen didaktischen Wert. Die Entwicklung von Simulationen, Visualisierungen und Animationen in 3D erfordert, ohne die Zuhilfenahme von vorgefertigten Komponenten, eine Menge an Entwicklungsaufwand. Deshalb verwundert es auch nicht, daß Visualisierungen und Simulationen von Algorithmen in 3D bisher nur im geringen Maße im Bereich des E-Learnings zum Einsatz kommen. Somit ist in diesem Bereich großer Bedarf nach didaktisch effektiv erstellten 3D-Visualisierungen und 3D-Simulationen, u.a. auch für Radiosity. 37

47 4 Konzept Je planmäßiger die Menschen vorgehen, desto wirksamer trifft sie der Zufall. Friedrich Dürrenmatt 4.1 Anforderungsanalyse Der Titel der Diplomarbeit ist Visuelle Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen. Die Aufgabe in dieser Diplomarbeit ist die Konzeption und Implementierung einer 3D-Simulation eines Radiosity-Verfahrens, als Lernanwendung zu E-Learning-Zwecken. Die Lernanwendung soll angeleitetes Lernen ermöglichen, d.h., es ist ein E-Learning-Kurs zu entwickeln, der den Lernenden durch die Lernanwendung führt. Der Kurs soll zusammen mit der Lernanwendung dem Erlernen des Radiosity-Verfahrens dienen. Als Randbedingungen ist vorgegeben, Java und Java 3D zur Entwicklung der Lernanwendung zu verwenden und weiterhin die Verwendung der LernBar zum Erstellen des anleitenden Kurses. Als Radiosity-Verfahren wurde Progressive-Refinement Gathering mittels Hemi-Cube gewählt. Die Wahl des Verfahrens begründet sich darin, daß das simulierte Verfahren möglichst anschaulich in 3D darstellbar sein soll. Dadurch ist das Wavelet-Verfahren schon mal kein geeigneter Kandidat. Weiterhin soll das gewählte Verfahren möglichst viele Inhalte bieten, für die eine 3D-Darstellung dem Lernenden einen echten Vorteil bietet. Das klassische Radiosity-Verfahren verwendet die meiste Zeit damit, mit einem iterativen Verfahren, wie z.b. das Gauss-Seidel-Verfahren, die Formfaktormatrix zu lösen und profitiert somit nur wenig von einer 3D-Darstellung. Dadurch ist auch dieses Verfahren kein geeigneter Kandidat. Progressive Refinement hingegen ist eine gute Wahl. Es liefert, im Gegensatz zum klassischen Radiosity, anzeigbare Zwischenergebnisse, die es dem Lernenden erlauben zu verstehen, was sich nach jedem Iterationsschritt an der Szene verändert hat. Wie schon in Kapitel erwähnt, existiert Progressive Refinement in den zwei 38

48 4.1 Anforderungsanalyse Varianten Shooting und Gathering. Beide Verfahren sind gute Kandidaten, jedoch ist die Grundidee des Gathering-Verfahrens dem klassischen Radiosity ähnlicher. Für das Einsammeln (to gather) des auf ein Patch einfallenden Lichtes wird ein Hemi-Cube verwendet. Auch dieses Vorgehen profitiert von einer Darstellung in 3D. Die Zielgruppe der Lernanwendung und des Kurses sind Informatikstudenten, die gewisse Grundlagen im Bereich der Computergrafik mitbringen. Voraussetzung sind mathematische Grundkenntnisse sowie Kenntnisse in der Beleuchtungsrechnung und im Shading. Weder Kurs, noch Lernanwendung sollen ein Ersatz für die Präsenzlehre sein, sondern sollen diese ergänzen. Allgemeines Lernziel der Lernanwendung und des Kurses ist, zu verstehen, was Radiosity ist, wie es sich auf eine Szene auswirkt, was es kann oder nicht kann und wie der Algorithmus des ausgewählten Radiosity-Verfahrens im Detail funktioniert. Nachfolgend werden die detailierten Lernziele aufgelistet. Der Lernende soll folgendes verstehen und erlernen: 1. Radiosity-Gleichung und deren einzelnen Terme 2. Formfaktoren und deren Eigenschaften 3. Progressive Refinement 4. Veränderung der Szene nach den jeweiligen Iterationsschritten des Progressive Refinements (color bleeding, weiche Schatten) 5. Laufzeit und Speicherplatzkomplexität von Radiosity allgemein und der vorgestellten Variante 6. Aufbau, Struktur, Nutzen und Berechnung eines Hemi-Cubes sowie dessen Elemente (Hemi-Cube-Pixel, Delta-Formfaktoren) 7. Vor- und Nachteile des Radiosity-Verfahrens Die Lernanwendung soll, anhand einer mit Radiosity gerenderten Szene und weiteren 3D-Darstellungen, die in den Lernzielen definierten Themen anschaulich darstellen. In Kapitel 3.6 wurde festgestellt, daß viele Visualisierungen und Simulationen reine Animationen sind, die oft gar keine erklärenden Texte bereit stellen. Die zu implementierende Lernanwendung soll dahingegen didaktisch wertvoller sein und sowohl einen höheren Interaktionsgrad als reine Animationen haben, als auch Erklärungstexte beinhalten, die dem Lernenden u.a. erläutern, was er sieht und was davon besonders wichtig bzw. interessant ist. Weiterhin soll ein Pseudo-Quellcode des verwendeten Algoritmus angezeigt 39

49 4.2 Ablauf der Lernanwendung und des Kurses werden, in dem der gerade ausgeführte Schritt der Lernanwendung durch Syntaxhighlighting markiert wird. Der in der LernBar zu erstellende Kurs soll dem Lernenden die theoretischen Hintergründe zu den einzelnen Themen der Lernziele erläutern und möglichst so aufgebaut sein, daß der Benutzer die Reihenfolge, in der er die Lektionen verwendet, selbst bestimmen und eine Lektion ggf. überspringen kann. Zur Kontrolle des Lernfortschritts des Benutzers sollen zu jeder Lektion Fragen konzipiert werden. Die Lernanwendung und der Kurs sollen simultan ausgeführt werden und so konzipiert sein, daß sie Hand in Hand greifen, sodaß der Lernende zu jedem Zeitpunkt weiß, was er zu tun hat. Dazu müssen die Erklärungstexte Überleitungen enthalten, die das Wechseln zwischen Kurs und Lernanwendung vorgeben und beschreiben. 4.2 Ablauf der Lernanwendung und des Kurses Der Lernende beginnt mit dem Lesen des Kurses. Dieser vermittelt die theoretischen Hintergrundinformationen zu den einzelnen in 4.1 genannten Lernzielen und weist den Benutzer an bestimmten Stellen an, zur Lernanwendung zu wechseln. In der Lernanwendung führt der Benutzer vorgegebene Schritte aus, um die gerade gelesene Theorie durch die 3D-Inhalte der Lernanwendung zu vertiefen und zu ergänzen, bis die Lernanwendung wieder zum Kurs überleitet. Am Ende von einigen Lektion des Kurses werden dem Lernenden Fragen zur gerade abgeschlossenen Lektion gestellt. Folgende Lektionen sollen sowohl im Kurs, als auch in der Lernanwendung erstellt werden, in Klammern ist die Zuordnung des entsprechenden Lernziels aus Kapitel 4.1 angegeben: 1. Kurs - Einleitung: Beschreibt die Zielsetzung, den Aufbau und die Voraussetzungen des Kurses. 2. Radiosity - Einleitung: Erklärt Radiosity, dafür notwendige Voraussetzungen, die Radiosity-Gleichung, sowie Formfaktoren. (1. und 2. Lernziel) 3. Bedienungsanleitung: Macht den Benutzer mit dem GUI der Lernanwendung vertraut. 4. Initialisierung: Beschreibt die notwendigen Initialisierungen des Progressive Refinements und zeigt die einzelnen Initialisierungsschritte an einer 3D-Szene. (3. Lernziel) 5. Progressive Refinement: Erklärt Progressive Refinement und zeigt die Veränderung einer 3D-Szene nach den einzelnen Iterationsschritten. (3. und 4. Lernziel) 40

50 4.3 Navigation in 3D 6. Laufzeit- und Speicherplatzkomplexität: Vermittelt wie aufwendig die Radiosity- Berechnung ist und zeigt exemplarisch an einer 3D-Szene, wie viele Hemi-Cubes für einen einzigen Iterationsschritt berechnet werden müssen. (5. Lernziel) 7. Der Hemi-Cube: Beschreibt den Aufbau sowie die Berechnung des Hemi-Cubes und der dazugehörenden Elemente (Hemi-Cube-Pixel, Formfaktoren). Zeigt einen Hemi-Cube in 3D sowie dessen Hemi-Cube-Pixel und die Berechnung der Delta- Formfaktoren. (6. Lernziel) 8. Projektion auf einen Hemi-Cube: Zeigt die Projektion einer 3D-Szene auf die fünf Seiten des Hemi-Cubes. (6. Lernziel) 9. Schlusswort: Die Vor- und Nachteile des Radiosity-Verfahrens werden kurz zusammengefaßt. Der Benutzer wird ermutigt die Lernanwendung nochmals selbstständig zu erkunden und auf Details zu achten. (7. Lernziel) 4.3 Navigation in 3D Die Navigation in der 3D-Szene der Lernanwendung soll dem Benutzer einen möglichst großen Grad an Freiheit lassen. Am intuitivsten, ist die Bedienung der Kamera mit der Maus. Dazu sollen, wie in 3D-Darstellungen üblich, die linke und rechte Maustaste zum rotieren und translieren der Kamera sowie das Mausrad zum Zoomen verwendet werden. Dabei kann die Rotation auf zwei Achsen beschränkt werden. Die Rotation um die Z-Achse kann den Benutzer durch die Änderung des Kamera-Up-Vektors verwirren und wird zur Exploration der Szene nicht benötigt. Wie in Kapitel 3.5 bereits erwähnt, kann es zu Problemen mit der Navigation in 3D- Inhalten kommen. Durch die Projektion der 3D-Szene auf den 2D-Bildschirm kann es zu Orientierungsschwierigkeiten des Benutzers und zur Verdeckung bzw. Verlust von essentiellen Informationen kommen. Deshalb sollte je Iterationsschritt eine geeignete Kameraeinstellung vorgegeben werden, die dafür sorgt, daß alle für diesen Schritt wichtigen Aspekte sichtbar sind. Die manuelle Steuerung der Kamera durch den Benutzer kann für ihn ungewohnt sein und dazu führen, daß der Benutzer sich dabei verzettelt. Deshalb sollen, zusätzlich zu der je Simulationsschritt voreingestellten Kamera, noch verschiedene andere Kameraansichten vorgegeben werden, die in jedem Schritt zur Verfügung stehen. Diese sollen dem Benutzer andere Einblicke in die 3D-Szene ermöglichen. 41

51 4.4 Entwurf des Graphical User Interfaces (GUI) 4.4 Entwurf des Graphical User Interfaces (GUI) Das Graphical User Interface (GUI) einer Lernanwendung ist von zentraler Bedeutung. Es sollte übersichtlich, funktionell und einfach bedienbar gestaltet sein sowie sich an allgemeinen Gestaltungsrichtlinien orientieren. Für den LernBar-Kurs wird das Design durch den LernBar Player und die verwendeten Templates vorgegeben. Das GUI der Lernanwendung muß jedoch manuell implementiert werden. Es wurden mehrer Entwürfe des GUI der Lernanwendung gefertigt. Abbildung 4.1 zeigt die zwei Entwürfe, die es in die engere Wahl geschafft haben. Abbildung 4.1: Zwei Entwürfe des GUI der Lernanwendung Der erste Entwurf enthält eine Navigationsleiste am oberen Bildschirmrand, mit der die Lernanwendung navigiert werden kann und alle nötigen Einstellungen getroffen werden können. In der Mitte wird die 3D-Szene dargestellt. Links davon werden in einem Fenster die Erklärungstexte zu jedem einzelnen Simulationsschritt angezeigt. Auf der rechten Seite befindet sich die Anzeige für den Pseudo-Quellcode des verwendeten Algorithmus. Der zweite Entwurf enthält einen großen Anzeigebereich, in dem die 3D-Szene dargestellt wird, Informationstexte angezeigt werden sowie die Auswahlmenüs für Parameter der Szene zur Verfügung gestellt werden. Die Erklärungstexte und eine Überschrift, die 42

52 4.4 Entwurf des Graphical User Interfaces (GUI) beschreibt, was gerade dargestellt wird, werden im Anzeigebereich als On-Screen-Display eingeblendet. Auf der linken Seite befindet sich im oberen Bereich ein Navigationsbaum (Navigation-Tree), der es ermöglicht einen bestimmten Schritt der Lernanwendung auszuwählen. Der Navigation-Tree ist so aufgebaut, daß die einzelnen Knoten je einem Thema der Lernanwendung entsprechen. Details zu einzelnen Themen und Unterthemen werden als Kindknoten an den entsprechenden Elternknoten gehängt. Die einzelnen Knoten können nach Bedarf expandiert oder kollabiert werde, wodurch deren Kindknoten einbzw. ausgeblendet werden. Dies führt zu einer übersichtlicheren Anordnung der Themen. Unter dem Navigation-Tree befindet sich die Pseudo-Quellcode-Anzeige. Die beiden Entwürfe unterscheiden sich nicht nur in der Anordnung, sondern auch in der Funktionalität. Im ersten Entwurf wird die Lernanwendung mit einem Vorwärts- und einem Rückwärts-Button gesteuert. Der Ablauf ist dadurch linear. Im zweiten Entwurf ermöglicht der Navigation-Tree einen freien, nicht linearen, durch den Benutzer bestimmten Ablauf der Lernanwendung. Die Wahl zwischen den beiden Entwürfen entscheidet Entwurf 2 für sich. Er bietet durch den Navigation-Tree eine besser Navigation, die den Benutzer weniger einschränkt sowie eine übersichtliche Darstellung der Lernanwendungsschritte. Insgesamt erscheint der Entwurf aufgeräumter und weniger überladen als Entwurf 1. Eine Erweiterung muß an Entwurf 2 jedoch noch vorgenommen werden. Ursprünglich war angedacht, daß Einstellungen, die den Anzeigebereich betreffen, direkt per Kontextmenü vorgenommen werden können. Durch die Navigation in der 3D-Szene überschneidet sich die Funktionalität der rechten Maustaste, sodaß ein Kontextmenü nicht geeignet ist. Alternativ wird eine Menüleiste am oberen Rand des GUI angelegt. Mit dieser lassen sich benötigte Parameter der 3D-Szene und der gesamten Lernanwendung per Menü einstellen. Das GUI sollte so gestaltet sein, daß es sich möglichst an die 8 goldenen Regeln des Iterface Designs nach Shneiderman hält [EGR87]. Die Regeln und wie sie umgesetzt werden sollen, wird nachfolgend aufgelistet: 1. Strive for consistency: Der Aufbau und die Bedienung von Menüs soll konsistent sein. Für den Aufbau des GUI kann das Java Toolkit Swing verwendet werde, sodaß einzelne GUI-Elemente in sich konsistent sind. Weiterhin ist bei der Entwicklung des GUI auf eine konsistente Anordnung und Bedienung der Elemente zu achten. 2. Enable frequent users to use shortcuts: Für erfahrene Benutzer sollte das Menü mit Tastaturkürzel bedienbar sein, um schnellere Interaktionen zu ermöglichen. Solche Tastaturkürzel werden im Menü der Lernanwendung angelegt. 3. Offer informative feedback: Die Anwendung sollte aussagekräftige Rückmeldungen 43

53 4.5 Vorrendern der Szene liefern. 4. Design dialog to yield closure: Verwende Dialoge, um eine Interaktionssequenz als abgeschlossene Einheit zu repräsentieren. 5. Offer simple error handling: Die Anwendung soll eine geeignete Fehlerbehandlung enthalten. Die Lernanwendung sollte so konzipiert werden, daß Bedienfehler vermieden werden, in dem je Interaktionsschritt nicht zu verwendende Bedienelemente deaktiviert werden. 6. Permit easy reversal of actions: Die Anwendung soll Möglichkeiten bereit stellen, die Auswirkungen von Interaktionen rückgängig machen zu können. 7. Support internal locus of control: Der Benutzer sollte das Gefühl haben, daß er jederzeit die Anwendung kontrolliert und nicht die Anwendung ihn. 8. Reduce short-term memory load: Die Belastung des Kurzzeitgedächtnisses des Benutzers sollte so gering wie möglich sein. Der Benutzer sollte sich während der Bedienung nicht unnötig viel merken müssen. Als weitere Richtlinie sollte beachtet werden, daß die Menütiefe nicht zu tief sein sollte, sonst verliert der Benutzer die Übersicht [DMS86]. Die Breite eines Menüs sollte vor der Tiefe favorisiert werden [DBM84]. 4.5 Vorrendern der Szene Die Berechnung von Radiosity für eine Szene hat einen sehr hohen Laufzeitbedarf. Es ist für den Benutzer nicht zumutbar Minuten bis Studen zu warten, bevor eine Szene angezeigt werden kann. Eine Möglichkeit dieses Problem zu umgehen ist, die Szene im Voraus zu rendern und in einer Datei zu speichern. Für das Rendern können externe Radiosity- Renderer verwendet werden und deren Ergebnisse als Lightmaps geladen werden. Eine weiter Möglichkeit ist die Implementierung eines eigenen Radiosity-Renderers mit Java und Java 3D. Die meisten verfügbaren Radiosity-Renderer verwenden das Shooting- Verfahren. Um gegenüber dem gezeigten Radiosity-Verfahren konsistent zu bleiben, wird die Implementierung eines eigenen Renderers vorgezogen, auch wenn der Lernende davon nicht viel merken wird. Dies vermeidet u.a. Probleme, die in Java 3D mit dem Import und Export einer Szene auftreten können. Es ist z.b. nicht ohne weiteres möglich eine in Java 3D erstellte Szene zu exportieren. Zwar existieren vorgefertigte Klassen, die den Im- und Export in gängige Formate erlauben sollen, jedoch treten dabei gelegentlich Bugs mit 44

54 4.6 Darstellung der mit Radiosity gerenderten Szene den sog. Java 3D-Appearances auf. Diese Objekte enthalten u.a. die Farb- und Texturinformationen eines 3D-Objektes und gehen gelegentlich beim Im- und Export vollständig verloren. Für das Speichern der vorgerenderten Radiosity-Szene gibt es verschiedene Ansätze. Es können Lightmaps verwendet werden, d.h. Texturen, die für jedes Objekt dessen Helligkeitswerte (brightness) enthalten. Dieser Ansatz hat das Problem, daß Lightmaps, je nach Anzahl und größe, einen hohen Speicherverbrauch mit sich bringen, sowohl zur Laufzeit im Arbeitsspeicher als auch auf der Festplatte. Eine wesentlich einfachere, platzsparende Möglichkeit ist, die Szene per Patch zu berechnen und jeden Patchfarbwert in einer Datei zu speichern. Die Anzahl der Patches einer Szene ist wesentlich geringer als die Anzahl der Pixel. Der Nachteil daran ist jedoch, daß zur Laufzeit für jeden einzelnen Patch Farbwerte aus der Datei wieder zugeordnet werden müssen. Dennoch wird diese Methode für diese Diplomarbeit vorgezogen, denn Radiosity ist ein sehr speicherintensives Verfahren, das den von der Java Virtuell Machine zur Verfügung gestellten Arbeitsspeicher schnell sprengen kann. Deshalb ist es besonders wichtig, bei der Implementierung des Renderers und der Radiosity-Darstellung die Nutzung des Arbeitsspeichers so gering wie möglich zu halten, und stattdessen möglichst viele Daten zur Laufzeit (on-the-fly) zu generieren. 4.6 Darstellung der mit Radiosity gerenderten Szene Progressive Refinement Radiosity in der Gathering-Variante konvergiert, im Gegensatz zum Shooting, sehr schlecht. Das führt dazu, daß eine Menge Iterationsschritte notwendig sind, bevor in der Szene überhaupt etwas zu erkennen ist. In den ersten Schritten erscheint die Szene zum größten Teil fast schwarz, sodaß es für die Darstellung der Szene in der Lernanwendung einer zusätzlichen Nachbearbeitung der Szene bedarf. In [PrR88] wird ein Verfahren vorgestellt, daß die Darstellung verbessert, indem ein ambienter Term berechnet wird. Der ambiente Term ist eine Wert zwischen 0 und 1, der durch verschiedene Parameter der Szene berechnet werden kann. Durch Anwendung des ambienten Terms auf jeden Patch der Szene, erhöht sich die Helligkeit der gesamten Szene deutlich. Problematisch ist, daß dieses Verfahren für die Shooting-Variante entwickelt wurde und die Berechnung des ambienten Terms u.a. darauf basiert wieviel Energie in der Szene noch zu verschießen ist. Diese Information fehlt jedoch in der Gathering-Variante, sodaß das Verfahren in dieser Form nicht angewandt werden kann. Die Grundidee des ambienten Terms kann jedoch aufgegriffen und verwendet werden. Anstatt den ambienten Term dynamisch mit der zu verschießenden Energie zu bestimmen, kann z.b. die Durchschnittshelligkeit der Szene berechnet werden und der ambiente Term auf einen Wert festgelegt werde, 45

55 4.6 Darstellung der mit Radiosity gerenderten Szene der die Durchschnittshelligkeit um ein gewisses Maß erhöht. Die Helligkeit jedes Patches wird dabei durch Addition des ambienten Terms erhöht. Eine weitere Möglichkeit die Darstellung der Szene zu verbessern ist die Erhöhung des Kontrastes der Szene. Im Radiosity-Verfahren wird ein Patch mit einer Farbe versehen. Dazu werden in Java 3D allen Vertices (Knoten) eines Patches die selbe Farbe zugewiesen (Per-Patch-Shading). Dadurch scheint es, als wäre auf die Szene Flat-Shading angewandt worden, selbst wenn in Java 3D Gouraud-Shading zur Darstellung der 3D-Szene explizit festgelegt wurde. Zur Berechnung von Gouraud-Shading werden die Farben der Vertices über die Fläche des Patches interpoliert. Sind die Farben der Vertices alle gleich, kann kein, für Gouraud- Shading typischer, Farbverlauf entstehen. Dennoch ist es sinnvoll und erforderlich die Szene mit Gouraud-Shading darstellen zu können, denn dadurch kann der Lernende einen besseren Eindruck über die Auswirkungen des Radiosity-Verfahrens auf eine Szene bekommen. Andere Aspekte, wie z.b. das Setzen eines Hemi-Cubes auf einen Patch, lassen sich wiederum mit Flat-Shading besser veranschaulichen. Um Gouraud-Shading zu ermöglichen, müssen die Vertices eines Patches verschieden Farbwerte zugewiesen bekommen. Eine Methode zur Bestimmung eines Vertex-Farbwertes, ist den Mittelwert von allen Farbwerten der Patches, die den Vertex enthalten, zu berechnen. Wurde jeder Vertex jedes Patches der Szene berechnet und zugewiesen, so kann Java 3D Gouraud-Shading auf die Szene anwenden. Für das Berechnen der Mittelwerte, wird eine Topologie der Szene benötigt. Diese ist in den Geometriedaten von Java 3D nicht enthalten, denn für das Rendern der Geometrien werden lediglich topographische Informationen benötigt. Die Topologie kann entweder direkt beim Erstellen der Szene für jeden Patch mit angegeben werden, was jedoch nicht praktikabel ist, falls vorgefertigte 3D-Objekte zum Einsatz kommen, oder man berechnet die Topologie aus den Geometriedaten nach dem Erstellen der Szene. Die Verwendung von vorgefertigten 3D-Objekten soll für die Implementierung der Lernanwendung nicht ausgeschlossen werden, sodaß nur eine nachträgliche Berechnung der Topologie in Frage kommt. 46

56 5 Umsetzung Wege entstehen dadurch, dass man sie geht. Franz Kafka Die Lernanwendung wurde auf folgendem System entwickelt: Intel Core 2 Duo E6850, 4 GB DDR2 RAM, NVIDIA Geforce 9800 GT mit 1024 MB RAM, Windows Vista Business 64 Bit, Java in Version 1.6_014 und Java 3D in Version 1.5.2, Bildschirmauflösung: 1280 x 1024 Pixel. Die Lernanwendung wurde für eine Minimalauflösung von 1024 x 768 Pixel entwickelt. Der LernBar-Kurs wurde mit dem LernBar Studio Version entwickelt und unterliegt dessen Mindestanforderungen. 5.1 Aufbau der Lernanwendung Die Lernanwendung ist konzipiert als eine interaktive, angeleitete Selbstlerneinheit. Die Aufgabe des Anleitens teilen sich der LernBar-Kurs und die Lernanwendung. Vorgesehen ist die Lernanwendung für Studenten der Informatik, die bereits Grundkenntnisse in der Computergrafik besitzen. Das in der Lernanwendung vorgestellte Radiosity-Vefahren ist Progressive Refinement Gathering mittels Hemi-Cube. Die Lernanwendung besteht aus den in Abbildung 5.1 dargestellten sieben Klassen. Die Hauptklasse ist VisualRadiosity. Sie verwendet alle anderen Klassen und erstellt zu Beginn das GUI, den Java 3D-Szenegraph sowie die 3D- Ansicht, in der die Szene dargestellt wird. In ihr enthalten sind der Radiosity-Renderer und Methoden, die den Ablauf der gesamten Lernanwendung steuern. In VisualRadiosity ist die Klasse CodePanel als innere Klasse eingebunden. Sie enthält einen Pseudo-Code des verwendeten Radiosity-Verfahrens und ermöglicht zeilenweises Syntaxhighlighting. Zur Realisierung des Syntaxhighlightings, wird für jede Zeile des Pseudo-Codes der Offset des ersten Zeichens sowie die Zeilenlänge anhand der Zeilenumbruchszeichen berechnet und in einem zweidimensionalen Array gespeichert. 47

57 5.1 Aufbau der Lernanwendung Abbildung 5.1: Klassen der Lernanwendung mit ihren wichtigsten Attributen und Methoden Das Highlighting erfolgt, indem für jedes Zeichen einer Zeile eine ausgewählte Hintergrundfarbe und Textfarbe, die Farbe des Highlights, gesetzt wird. Zum Entfernen des Highlights wird die Hintergund- und Textfarbe aller Zeichen einer Zeile wieder auf die Standardfarbe des Textfensters gesetzt. Durch die Verwendung des Arrays ist die Angabe der entsprechenden Zeilennummer zum Setzen oder Entfernen des Highlights ausreichend. Die Klasse Canvas3DOSD ist abgeleitet von der Java 3D-Klasse Canvas3D. Sie stellt eine Ansicht für die 3D-Szene bereit. Erklärungstexte und eine Überschrift werden direkt in der Methode postrender als On-Screen-Display auf das Canvas3D-Fenster in einen vorgegebenen Bereich gezeichnet. Dazu wurde eine Methode implementiert, die einen geeigneten Zeilenumbruch des anzuzeigenden Textes in Abhängigkeit der Höhe und Breite des Canvas3D-Fensters dynamisch errechnet. Dadurch skaliert der gesamte Erklärungstext variabel mit der Größe des Canvas3D-Fensters. Ein Canvas3D-Objekt kann nicht mit den üblichen Java-Layout-Managern in dem GUI der Lernanwendung ausgerichtet werden. Um deren Größe dennoch dynamisch an die Größe des Eltern-Fensters anzupassen, wird bei jedem ausgelösten Resize-Event des Canvas3DOSD-Objektes die Größe des Eltern-Fensters ermittelt und das Canvas3DOSD-Objekt daran angepaßt. Dieses Vorgehen erfordert die Übergabe der aktuell laufenden VisualRadiosity-Instanz als Parameter (pointerapp) an die Canvas3DOSD-Klasse. Die Klasse Camera erzeugt eine virtuelle Kamera, die Methoden zum Anzeigen und zur Navigation der 3D-Szene zur Verfügung stellt. Die Steuerung der Kamera erfolgt mit der 48

58 5.2 Erstellung des Graphical User Interfaces (GUI) Maus. Dazu werden die in Java 3D enthaltenen Klassen MouseTranslate, MouseRotate und MouseZoom verwendet, die ihrem Namen entsprechende Funktionalitäten bereitstellen. Wie stark sich die Bewegung der Maus auf die Kameraansicht auswirkt, kann mit der Methode setmousemovefactor eingestellt werden. Weiterhin übernimmt die Klasse Camera eine Instanz der Klasse Canvas3DOSD. Diese stellt die Ansicht bereit, auf die sich die Aktionen der virtuellen Kamera auswirken. Die Klasse Camera enthält die Methoden setposition zum Setzen der Kameraposition, setcamerarotation zum Rotieren der Kamera um die X- und Y-Achse sowie eine Methode setcameraviewx, (X = 1,...,4) zur Erzeugung der in Kapitel 4.3 erwähnten, vorgegebenen Kameraansichten. Universe ist eine Klasse, die dazu beiträgt den Szenegraph aufzubauen. Sie enthält die Wurzelknoten für den Teilgraph, an dem die Szene hängt (root_scene) und für den Teilgraph root_view, der alle Komponenten für die Ansicht und deren Steuerung enthält. Mit der Methode addcamera wird eine Instanz der Camera-Klasse dem Szenegraph hinzugefügt. Die NavigationTree-Klasse ermöglicht die Steuerung der einzelnen Lernanwendungsschritte. Sie ist abgeleitet von der Java-Klasse JTree. Weitere Details zu NavigationTree folgen in Kapitel 5.2. TriangleGouraud ist eine Hilfsklasse, die für die Berechnung des Gouraud-Shadings benötigt wird. Sie stellt die Datenstruktur zur Speicherung der Topologie eines einzelnen Patches/Dreiecks der Szene bereit. Die Lernanwendung stellt zwei verschiedene Szenen zur Verfügung, eine für den LernBar- Kurs und eine weitere zur anschließenden freien Exploration der Lernanwendung. Die zweite Szene soll die Motivation des Lernenden erhöhen sich die Lernanwendung ein zweites Mal eigenständig anzusehen. Je Szene gibt es drei verschiedene Detailgrade, die sich darin unterscheiden, in wie viele Patches die Szene unterteilt ist. Dies ermöglicht dem Lernenden zu sehen, wie sich die Feinheit der Unterteilung einer Szene auf die Radiosity- Berechnung auswirkt. Die Szenen können mit Gouraud- oder Flat-Shading angezeigt werden. In der Lernanwendung steht direkt zu Beginn eine Einleitung zur Verfügung, in der die Theorie des Radiosity-Verfahrens erläutert wird. Dies soll dem Lernenden ermöglichen, den für die Lernanwendung benötigten Wissenstand zu erreichen. 5.2 Erstellung des Graphical User Interfaces (GUI) Entwurf 2 aus Kapitel 4.4 wurde für die Lernanwendung als GUI umgesetzt, wie in Abbildung 5.2 zu sehen ist. 49

59 5.2 Erstellung des Graphical User Interfaces (GUI) Abbildung 5.2: Graphical User Interface der Lernanwendung Das GUI der Lernanwendung ist in drei große Bereiche unterteilt. Oben links befindet sich der Navigation-Tree, darunter das Pseudo-Code-Fenster. Der dritte und größte Bereich ist die 3D-Ansicht, die rechts von den beiden anderen Bereichen angeordnet ist. Der Navigation-Tree ermöglicht die Navigation der Lernanwendung. Die Ordnersymbole sowie deren Inhalte (Kindknoten) stellen je einen Schritt der Lernanwendung dar. Dieser kann ausgeführt werden, in dem ein Eintrag entweder durch Anklicken markiert und anschließende auf den Button Anzeigen geklickt wird oder durch einen Doppelklick auf den Eintrag. Untergeordnete Einträge können durch das Expandieren des übergeordneten Eintrags sichtbar gemacht werden bzw. unsichtbar durch Kollabieren. Dazu wird auf das Plus- bzw. Minus-Symbol vor einem Eintrag geklickt. Durch diese Baumstruktur sind die Lernanwendungschritte thematisch geordnet, wie Abbildung 5.3 zeigt. Die Knoten der ersten Ebene des Navigation-Trees sind zu Beginn der Lernanwendung kollabiert, sodaß der Lernende nicht direkt mit dem gesamten Funktionsumfang der Lernanwendung konfrontiert wird, sondern langsam an die einzelnen Themen und Funktionen herangeführt werden kann. Die Reihenfolge der Lernanwendungsschritte ist durch die Verwendung des Navigation-Trees nicht fest vorgegeben. Der Lernende kann selbst entscheiden in welcher Reihenfolge er die Anwendung abarbeitet und ob er Aspekte, die er bereits kennt, überspringt. Wird mit dem Navigation-Tree ein Schritt der Lernanwendung ausgewählt, so startet ein neuer Thread und führt den entsprechenden Schritt aus. Dies verhindert, daß das GUI während der Abarbeitung der Schritte einfriert. 50

60 5.2 Erstellung des Graphical User Interfaces (GUI) Abbildung 5.3: GUI-Elemente. Links: voll expandierter Navigation-Tree; Rechts: Pseudo- Code-Fenster mit Syntaxhighlighting Das Pseudo-Code-Fenster, in Abbildung 5.3 dargestellt, zeigt den Code des Algorithmus an. In jedem Schritt der Lernanwendung wird der zugehörige Code-Abschnitt mit Highlights versehen. Bei der Erstellung dieses Fensters mußte abgewogen werden, ob es sinnvoller ist, automatischen Zeilenumbruch im Code zu erlauben, oder einen horizontalen Scrollbalken zu verwenden. Beides hat Vor- und Nachteile. Ein Zeilenumbruch sorgt dafür, daß der gesamte Code auf einen Blick sichtbar ist, zerstört jedoch die Formatierung des Codes und erschwert dadurch die Lesbarkeit. Horizontale Scrollbalken sollten in Verbindung mit vertikalen Scrollbalken vermieden werden, weil dies das durchgängige Lesen des Codes erschwert. Der Pseudo-Code besteht aus so wenigen Zeilen, daß im Pseudo-Code-Fenster, bei Verwendung der vorgegebenen Fenstergröße, kein vertikaler Scrollbalken benötigt wird. Deshalb ist ein horizontales Scrollen hinnehmbar und wurde umgesetzt. Weiterhin besteht für den Benutzer die Möglichkeit, durch Verschieben des Separators zwischen 3D-Ansicht und Pseudo-Code-Fenster, die Größe des Pseudo-Code- Fensters so zu ändern, daß der gesamte Pseudo-Code auch ohne Scrollbalken sichtbar ist. Die 3D-Ansicht zeigt die Visualisierungsschritte, bietet Auswahlmöglichkeiten und zeigt Informationen an. In diesem Fenster werden Erklärungstexte zu den einzelnen Darstellungen und die jeweilige Bezeichnung des Visualisierungsschrittes als On-Screen-Display angezeigt. In Kapitel 4.4 wurde bereits erwähnt, daß Entwurf 2 um eine Menüleiste erweitert werden muss. In Verbindung mit der 3D-Ansicht bzw. der Canvas3DOSD-Klasse entsteht jedoch ein unangenehmer Effekt, wie in Abbildung 5.4 zu sehen ist. 51

61 5.2 Erstellung des Graphical User Interfaces (GUI) Abbildung 5.4: Oben: Ansicht-Menü bei ausreichendem Abstand zur 3D-Ansicht; Unten: Überlagerung des Ansicht-Menüs durch die 3D-Ansicht. Das Ansicht-Menü wird von der 3D-Ansicht bzw. des Canvas3DOSD-Objektes überlagert, wenn der Abstand zwischen beiden nicht groß genug ist. Dies ist ein grundsätzliches Problem der Java 3D-Klasse Canvas3D, die scheinbar in der Z-Order der Fensterelemente immer als oberstes (allways on top) gezeichnet wird, und sich nicht dem Menü unterordnet, wie es eigentlich sein sollte. Die Menüleiste bietet unter dem Eintrag Datei die Möglichkeit die Anwendung zu beenden. Unter Ansicht stehen verschiedene Kameraansichten sowie die Auswahl zwischen Gouraud- und Flat-Shading zur Verfügung. Der Menüeintrag Schnelle Kamerabewegungen ermöglicht mit der Methode setmousemovefactor (siehe Kapitel 5.1) das Wechseln zwischen zwei vorgegebenen Faktoren. Die Einträge Kamera-Ansicht 1 bis Kamera-Ansicht 4 rufen die Methoden setcameraview1 bis setcameraview4 der Camera-Klasse auf. In jeder dieser Methoden wird die Kamera mit vorgegebenen Parametern, wie Rotation der Kamera um die X- und Y-Achse sowie die Kameraposition, gesetzt. Diese Kameraeinstellungen entsprechen einer Eckansicht der Szene von oben. Die Kamera ist in einem 45 -Winkel nach unten auf die Szene geneigt. Der Eintrag Kamera-Ansicht 5 ruft resetcamera der Camera-Klasse auf und zeigt die Szene in Frontalansicht. In Abbildung 5.5 sind die einzelnen Kameraansichten gegenübergestellt. 52

62 5.3 Erstellung der 3D-Szenen Abbildung 5.5: Vorgegebene Kamera-Ansichten 1-5 von links nach rechts. Die Elemente des GUI wurden so implementiert, daß sie mit der Fenstergröße skalieren, sodaß verschiedene Fenstergrößen möglich sind. Die in Kapitel 4.4 erwähnten Richtlinien zum Entwurf und Design von Interfaces wurde bei der Implementierung der GUI berücksichtigt. Bei der Erstellung der Menüs wurde die Menübreite der Menütiefe vorgezogen. Die Menüeinträge sind über Tastaturkürzel erreichbar. Die Bedienelemente sind so konzipiert, daß die jeweils während eines Interaktionsschrittes nicht zu verwendenden Bedienelemente deaktiviert sind. Falls sich der Benutzer mit der manuellen Kamerasteuerung verzettelt, kann er durch die Wahl einer vorgegebenen Kameraansicht wieder zu einer geeigneten Darstellung der Szene gelangen. Alle Einstellungen der Lernanwendung können rückgängig gemacht werden. Jeder Schritt der Lernanwendung ist in sich geschlossen und beeinflußt die anderen Schritte nicht. 5.3 Erstellung der 3D-Szenen Für die Lernanwendung wurden zwei 3D-Szenen erstellt, die jeweils aus einem Raum bestehen, der zwei Objekte und eine weiße Fläche, die als Lichtquelle dient, enthält. Damit sich beide Szenen hinsichtlich des Radiosity-Verfahrens möglichst stark voneinander unterscheiden, wurden verschiedene Farben, Lichtquellenpositionen und Objekte verwendet. Die Objekte der ersten Szene sind eine rote und eine gelbe Kugel. Die Lichtquelle ist mittig an der Decke angebracht. Die zweite Szene enthält einen blauen Zylinder, der wie eine Säule vom Boden der Szene bis an die Decke ragt, und einen magentafarbenen Kegel. Jede Szene steht in den drei verschiedenen Detailgraden Niedrig, Medium und Hoch zur Verfügung. Die Detailgrade unterscheiden sich darin, wie fein die Szene in Patches unterteilt ist. In Abbildung 5.6 sind die beiden Szenen mit unterschiedlichem Detailgrad dargestellt. 53

63 5.3 Erstellung der 3D-Szenen Abbildung 5.6: Flat-Shading-Darstellung Szene 1 (oben) und Szene 2 (unten) in den Detailgraden (von links): Niedrig, Medium, Hoch. Der Raum wird aus Rechtecken erzeugt, die zu einem sechseitigen Würfel angeordnet werden. Nach dem Erstellen des Raums besteht jede Seite aus einem einzigen Rechteck, das anschließend, je nach Detailgrad der Szene, mehrfach in kleinere Rechtecke unterteilt wird. Bei der Unterteilung eines Rechtecks wird dieses in vier gleich große Rechtecke unterteilt, indem für jede Kante des Rechtecks und für das gesamte Rechteck der Mittelpunkt berechnet wird und aus den daraus resultierenden Koordinaten vier kleinere Rechtecke erzeugt werden. Diese ersetzen in der Geometrie des Raums das ursprüngliche Rechteck. Für die Erstellung der Objekte Kugel, Zylinder und Kegel wurden die in Java 3D vorgefertigten Klassen Sphere, Cylinder und Cone verwendet. Der Klasse Sphere kann ein Paramter divisions und den Klassen Cylinder und Cone die Paramter xdivision und ydivison im Konstruktor übergeben werden. Diese Parameter regulieren wie stark das entsprechende Objekt in Dreiecke unterteilt wird. Für den Detailgrad Niedrig wird jede Seite des Raums einmal in kleinere Rechtecke unterteilt. Die Klasse Sphere bekommt als divisions 1 übergeben, die Klassen Cylinder und Cone für xdivision und ydivison je 3. Auf Detailgrad Medium werden zweimal nacheinander alle Rechtecke des Raums unterteilt. Die Klasse Sphere bekommt 20 übergeben und Cylinder sowie Cone für beide Paramter je 10. Unter Verwendung von Detailgrad 54

64 5.4 Aufbau und Funktionsweise des Radiosity-Renderers Hoch werden viermal nacheinander alle Rechtecke des Raums unterteilt. Sphere bekommt 50 übergeben, Cylinder und Cone für beide Parameter je 30. Ein Patch soll in den Szenen durch je ein Dreieck repräsentiert werden. Die Geometrieinformationen zu den Dreiecksflächen der Kugeln, des Zylinders und des Kegels werden in Form der Java 3D-Geometrieklasse TriangleStripArray bereitgestellt, die Geometrieinformationen des Raums jedoch in Form der Java 3D-Geometrieklasse QuadArray. Um eine einheitliche Geometrierepräsentation zu erhalten, wurden Funktionen implementiert, die alle Dreiecke aus den verwendeten Objekten auslesen und in eine Repräsentation in Form der Java 3D-Geometrieklasse TriangleArray überführen sowie die Rechtecke des Raums in je zwei Dreiecke zerlegen und diese ebenfalls in ein TriangleArray überführen. 5.4 Aufbau und Funktionsweise des Radiosity-Renderers Zur Radiosity-Berechnung der Szenen wurde ein eigener Radiosity-Renderer in Java und Java 3D implementiert. Der Renderer hat nicht den Anspruch universell einsetzbar zu sein, viel mehr ist er, aus Performancegründen, genau auf die beiden Szenen der Lernanwendung zugeschnitten. Der Zweck des Renderers ist es, die vorgerenderten Radiosity- Szenen zu erzeugen, die anschließend in Dateien gespeichert und in die Lernanwendung, bei deren Benutzung, geladen werden. Der Renderer ist hardgecodet, besitzt also keine Schnittstellen zum GUI der Lernanwendung, und ist nicht für eine weitere Verwendung außerhalb dieser Diplomarbeit gedacht. Dies ist auch, aufgrund der fehlenden Universalität und der langen Berechnungszeiten, nicht erforderlich. Der Renderer verwendet Progressive Refinemente Radiosity in der Gathering-Variante mittels Hemi-Cube. Der Ablauf- und der Aufbau des Radiosity-Renderers orientiert sich an dem in Code 5.1 abgebildeten Pseudo-Code. Der für die Berechnung verwendete Hemi-Cube hat die Maße 512 x 512 x 256 Pixel. In den Schritten 1-3 wird die Szene erzeugt, die Delta-Formfaktoren werden berechnet und in einer Lookup-Table gespeichert. Die Schritte 4-7 des Algorithmus sind die Initialisierung der Szene, nach der die gesamte Szene, bis auf die Lichtquelle, schwarz ist. Die Anzahl der Iterationschritte wurde für die Lernanwendung auf fünf beschränkt. Eine höhere Anzahl bedingt mehr Rechenzeit, besonders bei Detailgrad Hoch, erhöht jedoch kaum den didaktischen Wert der Lernanwendung. Mit jedem Iterationsschritt wird die Änderung des Radiosity-Wertes eines einzelnen Patches geringer. In den Schritten 9-12 wird Radiosity für jeden Patch der Szene berechnet. Anschließend, in den Schritten 13-16, werden alle Patches der Szene mit den berechneten Radiosity-Werten aktualisiert. 55

65 5.4 Aufbau und Funktionsweise des Radiosity-Renderers 1 erzeuge Szene 2 berechne Delta - Formfaktoren 3 speichere Delta - Formfaktoren in einer Lookup - Table 4 für alle Patches i: 5 Patch_i. emission = Emission des zu i gehörigen Objektes 6 Patch_i. reflectivity = Farbe des zu i gehörigen Objektes 7 Patch_i. radiosity = Patch_i. emission 8 für jeden Iterationsschritt k: 9 für alle Patches i: 10 erzeuge Hemi - Cube für Patch_i 11 projiziere Szene auf Hemi - Cube 12 FarbListe [ i] = Summe über ( Hemi - Cube - Pixel - Farbe_j * Delta - Formfaktor_j ) für alle j 13 // Aktualisierung der Patches / Szene 14 für alle Patches i: 15 Patch_i. radiosity = Patch_i. emission + Patch_i. reflectivity * FarbListe [ i] 16 Zeichne Szene neu Code 5.1: Pseudo-Code des vorgestellten Radiosity-Verfahrens Das in Schritt 15 verwendete Attribut Patch_i.radiosity vom Typ float3f darf als RGB-Wert (1.0, 1.0, 1.0) nicht überschreiten. Patch_i.reflectivity und FarbListe[i] können pro Farbkanal maximal 1 werden. Das einzige Objekt, daß einen Emissionswert größer 0 pro Farbkanal hat ist die Lichtquelle (weiße Fläche). Diese wird jedoch von der Berechnung ausgenommen, denn sie hat bereits durch ihren RGB-Emissions-Wert von (1.0,1.0,1.0) den sich nicht mehr ändernden Radiosity-Wert von 1 pro Farbkanal. In Java 3D ist es schwierig an die Pixelfarbwerte der Szene, die für die Projektion in Schritt 11 benötigt werden, heranzukommen, ohne gleich die ganze Renderingpipeline und das ganze Rendern der Szene selbst zu implementieren. Eine von Java 3D zur Vefügung gestellte Möglichkeit die Pixelfarbwerte auszulesen, ist die Verwendung der Klasse Raster. Diese Klasse ermöglicht es, aus dem Framebuffer Pixelwerte auszulesen und diese in einem Array bzw. Bild zu speichern. Dies entspricht in etwa der Erstellung eines Screenshots. Es muß dafür gesorgt werden, daß der Framebuffer genau das Bild der Szene enthält, daß auf eine Seite des Hemi-Cubes projiziert werden soll. Dies kann durch das Setzen und Rotieren der Kamera in der Szene erreicht werden. Wichtig dabei ist, daß das Sichtfeld (field of View) der Kamera auf 90 horizontal und vertikal, bei einem Seitenverhältnis (Aspect Ratio) von 1, gesetzt wird. Die Projektion auf die Hemi-Cube-Front ist 56

66 5.4 Aufbau und Funktionsweise des Radiosity-Renderers mit diesen Einstellungen problemlos möglich, jedoch enthalten die Bilder für die Hemi- Cube-Seiten durch das 90 Sichtfeld noch zu viel Informationen. Die Bilder für die Seiten müssen je nach Lage der Seite halbiert werden. Die Bilder für links und rechts müssen vertikal halbiert werden, die für oben und unten horizontal. Der Ablauf der Projektion auf den Hemi-Cube ist dabei wie folgt: 1. Setze die Kamera auf den Mittelpunkt des zu berechnenden Patches. 2. Rotiere die Kamera bis die Blickrichtung mit der Normale des Patches übereinstimmt. 3. Lese Framebuffer mit Raster aus und speichere die Pixelwerte (als Bild). 4. Rotiere die Kamera 90 um die Y-Achse. 5. Lese Framebuffer mit Raster aus und speichere die Pixelwerte (als Bild). 6. Rotiere die Kamera 180 um die Y-Achse. 7. Lese Framebuffer mit Raster aus und speichere die Pixelwerte (als Bild). 8. Rotiere die Kamera 90 um die Y-Achse und 90 um die X-Achse. 9. Lese Framebuffer mit Raster aus und speichere die Pixelwerte (als Bild). 10. Rotiere die Kamera 180 um die X-Achse. 11. Lese Framebuffer mit Raster aus und speichere die Pixelwerte (als Bild). 12. Zuschneiden (halbieren) der Bilder für die Hemi-Cube-Seiten. Die Gesamtheit der fünf Bilder entspricht der gesamten Projektion auf den Hemi-Cube. Jedes Pixel entspricht einem Hemi-Cube-Pixel. Für die Ausrichtung der Kamera muß der Mittelpunkt eines Patches, in diesem Fall ein Dreieck, bestimmt werden. Dazu werden Baryzentrische Koordinaten verwendet. Sei p der gesuchte Mittelpunkt des Dreiecks und a, b und c die Eckpunkte des Dreiecks, dann ist p = a 3 + b 3 + c 3. Im Renderer sollen die einzelnen Projektionen direkt nacheinander in einer Schleife berechnet werden, jedoch erfolgt die Kamerarotation asynchron, d.h., es wird im Programmablauf nicht auf das Beenden der Kamerarotation gewartet, sondern gleich das Auslesen des Framebuffers mit Raster ausgeführt. Dies kann zu Problemen führen, wenn die Rotation der Kamera noch nicht vollendet ist und das Auslesen bereits beginnt. Um dies zu vermeiden wurde eine Wartefunktion implementiert, die jedoch sehr fragil ist. In Java 57

67 5.4 Aufbau und Funktionsweise des Radiosity-Renderers 3D existiert keine Möglichkeit herauszufinden, ob eine 3D-Transformation der Szene, wie z.b. die Kamerarotation, bereits vollständig abgeschlossen ist und bereits im aktuellen Frame dargestellt wird. Eine Möglichkeit wäre eine gewisse Zeit, bis zu der die Rotation mit großer Wahrscheinlichkeit ausgeführt wurde, zu warten, bevor der Framebuffer ausgelesen wird. Die verwendete Methode kommt dem sehr nahe, hat jedoch noch zusätliche Vorteile. Es wird mit der Java 3D-Klasse WakeupOnElapsedFrames eine gewisse Anzahl an Frames gewartet, bevor das Auslesen beginnt. Zur Verzögerung der Transformation kann es bei erhöhter Auslastung des Systems kommen. Das Warten eines festen Zeitbetrags nimmt darauf keine Rücksicht, die Framemethode jedoch schon, denn wenn das System stark ausgelastet ist, dauert es länger bis ein neuer Frame gerendert wird, also wird auch länger auf das Rotieren gewartet. Optimal ist diese Lösung dennoch nicht, denn es muß in WakeupOnElapsedFrames eine feste Framezahl, auf die gewartet werden soll, vorgegeben werden. Diese wurde auf das System, auf dem die Szenen vorgerendert wurden, abgestimmt. Die Verwendung von Raster hat einen Nachteil. Die Berechnung der Radiosity-Werte wird mit dem Datentyp float, der in Java vier Byte groß ist, durchgeführt. Die Pixelfarbwerte, die in einem Bild gespeichert werden, können jedoch nur im FORMAT_RGB8 ausgelesen werden, d.h., für jeden Farbkanal steht nur ein Byte zur Verfügung. Dies führt unvermeidbar zu Rundungsfehlern bei sehr kleinen Radiosity-Werten. Der Renderer wurde so implementiert, daß er möglichst wenig Speicher verbraucht. Einige Operationen werden on-the-fly durchgeführt, wie z.b. das Anlegen und die Projektion auf den Hemi-Cube. Die dabei entstehenden Bilder werden nur solange im Speicher aufbewahrt, bis, wie in Schritt 12 des Codes 5.1 beschrieben, der neue Farbwert des Patches bestimmt wurde. Dieser Farbwert wird jedoch, wie von Progressive Refinement vorgegeben, bis zur Aktualisierung der Szene in den Schritten des Codes 5.1, gespeichert. Während der gesamten Ausführung des Renderers wird die Tabelle der Delta-Formfaktoren im Speicher gehalten. Ein erneutes Berechnen für jeden Hemi-Cube erhöht die Laufzeit zu stark. Der Radiosity-Renderer wurde exakt auf die Geometrierepräsentationen der beiden Szenen zugeschnitte. Wie in Kapitel 5.3 erwähnt, wurden Methoden implementiert, die ein TriangleStripArray und ein QuadArray in ein TriangleArray umwandeln. In Java 3D existieren noch weitere Geometrierepäsentationen wie TriangleFanArray, IndexedTriangleFanArray, IndexedQuadArray oder IndexedTriangleStripArray. Diese kommen jedoch in den beiden Szenen nicht vor und werden deshlab vom Radiosity- Renderer nicht berücksichtigt. In Abbildung 5.7 sind die beiden Szenen mit Detailgrad Hoch nach den jeweiligen Itera- 58

68 5.5 Darstellung der 3D-Szene tionschritten dargestellt. Abbildung 5.7: Gouraud-Shading-Darstellung Szene 1 (oben) und Szene 2 (unten) nach den Iterationsschritten (von links): 1-5; Detailgrad: Hoch Nachfolgend wird kurz auf die Laufzeiten des Radiosity-Renderers eingegangen. Szene 1 enthält mit Detailgrad Niedrig 64 Dreiecke. Der Renderer benötigt zur Berechnung dieser Szene ca. 1,5 Minuten. Bei Detailgrad Medium sind es ca. 600 Dreiecke und eine Laufzeit von 11 Minuten, mit Detailgrad Hoch enthält die Szene schon ca Dreiecke, für die der Renderer 2 Stunden zur Berechnung benötigt. Alle Zeitangaben beziehen sich auf einen einzigen Iterationsschritt und auf das am Anfang des Kapitels genannte PC-System. Die Szene 2 enthält bei Detailgrad Hoch nochmals ca Dreiecke mehr, also ca Dreiecke, wodurch eine Rechenzeit von ca. 2,5 Stunden benötigt wird. Zur Erzeugung des fünften Iterationsschrittes der Szene 2 mit Detailgrad Hoch benötigt der Radiosity-Renderer ca. 12,5 Stunden Rechenzeit. 5.5 Darstellung der 3D-Szene In Kapitel 4.6 wurde bereits erwähnt, daß es notwendig ist, die Szene einer Nachbearbeitung zu unterziehen, um trotz der schlechten Konvergenz, in den ersten Iterationschritten etwas erkennen zu können. Es wurden zwei Verfahren gegeneinander abgewogen, einerseits die Verwendung eines ambienten Terms, der zu dem Farbwert eines jeden Pixels addiert wird und andererseits eine Kontrasterhöhung. In Abbildung 5.8 werden die Originaldarstellung der Szene, die Anwendung eines ambieten Terms und die Szene mit Kontrasterhöhung gegenübergestellt. Die Szene ohne Nachbearbeitung ist fast vollständig schwarz. Es sind mittig lediglich zwei Kugeln zu erahnen. Die Verwendung des ambienten Terms erhöht die Sichtbarkeit der Szene, führt jedoch zu einer nebelartigen Darstellung. 59

69 5.5 Darstellung der 3D-Szene Die Kontrasterhöhung liefert ein brauchbares Ergebnis und wurde zur Verbesserung der Darstellung implementiert. Abbildung 5.8: Mit Radiosity gerenderte Szene. Links: Original; Mitte: Ambient-Term; Rechts: Kontrasterhöhung Zur Kontrasterhöhung wird wie folgt vorgegangen: 1. Berechne für jeden Farbkanal das arithmetische Mittel aller Farbwerte der Szene. 2. Subtrahiere von jedem Farbwert den in Schritt 1 berechneten Mittelwert. 3. Multipliziere jeden Farbwert mit dem Faktor, um den der Kontrast erhöht werden soll. 4. Addiere zu jedem Farbwert den in Schritt 1 berechneten Mittelwert. Anschaulich entspricht das Vorgehen einer Verschiebung des Farbspektrums der Szene, sodaß der Mittelwert null ist (Schritte 1 und 2), mit einer anschließenden, dem Kontrastfaktor entsprechenden, Streckung des Spektrums nach oben und unten (Schritt 3), und des Zurückverschiebens des Farbspektrums, sodaß der Mittelwert dem ursprünglichen Wert entspricht (Schritt 4). Dabei kann es vorkommen, daß durch die Streckung Farbwerte kleiner 0 oder größer 1 entstehen, diese werden dann auf 0 bzw. 1 gesetzt. Dies kann zu einem Informationsverlust in der Szene führen. Deshalb ist es wichtig, daß für die Lernanwendung ein Faktor gewählt wurde, der die Darstellungsqualität erhöht, jedoch keinen oder nur wenig Informationsverlust zur Folge hat. Für Szene 1 wurde als Kontrastfaktor 8 gewählt. Szene 2 ist noch etwas dunkler, sodaß als Faktor 10 gewählt wurde. In Kapitel 4.6 wurde bereits darauf hingewiesen, daß das Darstellen der Szenen mit Gouraud-Shading implementiert werden soll. Java 3D kann eine Szene mit Gouraud- Shading darstellen, jedoch müssen dazu die Vertices eines Dreiecks unterschiedliche Farbwerte aufweisen. Durch das implementierte Per-Patch-Shading haben alle Eckpunkte 60

70 5.5 Darstellung der 3D-Szene eines Dreiecks die selbe Farbe. Eine Methode zur Bestimmung eines Vertex-Farbwertes ist es, den Mittelwert von allen Farbwerten der Patches zu berechnen, die den Vertex enthalten. Wurde jeder Vertex jedes Patches der Szene berechnet und zugewiesen, so kann Java 3D Gouraud-Shading auf die Szene anwenden. Für dieses Vorgehen ist die Berechnung einer Topologie der Szene nötig, also die Information, welche Patches sich einen Vertex teilen. Dazu wurde eine Methode implementiert, die über alle Vertices aller Patches iteriert und deren Koordinaten mit den Koordinaten der jeweils anderen Vertices der anderen Patches vergleicht. Sind zwei Koordinaten gleich, so grenzen die entsprechenden Patches aneinander an und teilen sich diesen Vertex. Zur Verwaltung der Topologie wird die in Kapitel 5.1 vorgestellte Klasse TriangleGouraud verwendet. Für jedes Patch wird eine Instanz dieser Klasse angelegt und in einem Array gespeichert. Die Attribute facevertex0, facevertex1 und facevertex2 dieser Klasse sind Arrays, die alle IDs der Patches enthalten, die den entsprechenden Vertex ebenfalls verwenden und somit zur Bestimmung des Farbwertes entscheidend sind. Die Patches sind in einem TriangleArray-Objekt enthalten. Die in der Klasse TriangleGouraud verwendeten IDs entsprechen den Positionen der Patches in dem TriangleArray. Das Berechnen der Topologie ist sehr zeitaufwendig und hängt nur von der Geometrie der Szene ab. Deshalb wurde die Topologie einmalig für beide Szenen berechnet und in einer Datei gespeichert. Dennoch müßten jedesmal, wenn der Benutzer Gouraud-Shading auswählt, die Mittelwerte der angrenzenden Patches aus der Toplolgie berechnet werden. Auch dies benötigt etwas Rechenzeit, die den Ablauf der Lernanwendung unnötig unterbrechen würde. Um dies zu vermeiden, wurden die Farbwerte des Gouraud-Shadings beider Szenen für jeden Iterationsschritt vorberechnet und in Dateien gespeichert. Wählt der Benutzer das Gouraud-Shading, so müssen lediglich die Farbwerte der Szene geladen und gesetzt werden. Wie in Kapitel 5.3 beschrieben, enthalten die beiden Szenen die in Java 3D vorgefertigten 3D-Objekte Sphere, Cylinder und Cone. Deren Geometrien werden in Abhängigkeit der Paramter division bzw. ydivison xdivision aufgebaut. Dabei gibt es jedoch ein Problem, das am Beispiel eines Kreises verdeutlicht werden soll. Die Berechnung eines Kreises beginnt mit einem Startvertex. Um im letzten Schritt den Kreis zu schließen, sollte eine Kante erzeugt werden, die vom letzten Vertex zurück zum Startvertex reicht. Die in Java 3D vorgefertigten 3D-Objekte gehen jedoch nicht so vor, sondern berechnen ebenfalls die Koordinate des Endpunktes der letzten Kante. Dies führt regelmäßig zu Rundungsfehlern, sodaß die Koordinaten des Endpunktes und des Startvertex, ab einer gewissen Nachkommastelle, nicht exakt gleich sind. Dies wirkt sich auf das verwendete Verfahren zur Berechnung der Topologie aus. Sind die Werte nicht exakt gleich, werden 61

71 5.5 Darstellung der 3D-Szene sie auch nicht als Nachbarn angesehen. Dadurch entstehen an solchen Stellen harte Kanten auf dem Objekt. Zur Umgehung dieses Effektes wurde eine Methode implementiert, die alle Koordinaten auf eine feste Anzahl an Nachkommastellen beschränkt. Eine geeignete Wahl der Nachkommastellen ist ganz entscheidend, denn sollte deren Anzahl für die Geometrie der Szene zu gering sein, so würden Patches die nur nahe beieinander liegen als Nachbarn betrachtet werden und somit wäre die Darstellung verfälscht. Ist die Anzahl zu groß gewählt, so bleiben die Rundungsfehler bestehen. Die Wahl der richtigen Anzahl der Nachkommastellen ist individuell von der Geometrie der Szene abhängig, u.a. davon in welchem Wertebereich wie viele Vertices enthalten sind und wie groß deren Abstände zueinander sind. Für die Lernanwendung hat sich das Beschränken aller Koordinaten auf sieben Nachkommastellen als sinnvoll erwiesen. In Abbildung 5.9 wird die Auswirkung des Rundungsfehlers verdeutlicht. Abbildung 5.9: Auswirkung des Rundungsfehlers auf das Gouraud-Shading in Szene 1; Detailgrad: Hoch; links ohne Beschränkung der Anzahl der Nachkommastellen; rechts Beschränkung auf sieben Nachkommastellen Im linken Bild ist besonders an der gelben Kugel eine Art halbierende, schwarze, harte Kante zu erkennen, die das Resultat des Rundungsfehlers ist. Mit der Beschränkung auf sieben Nachkommastellen ist dieser Fehler nicht mehr vorhanden, wie im rechten Bild ersichtlich ist. Diese Rundungsfehler treten ebenso beim Mantel des Zylinder und des Kegels in Szene 2 auf. Bei der Implementierung des Gouraud-Shadings wurde berücksichtigt, daß die Ecken des Raums als harte Kanten beibehalten werden sollen. Der gesamte Raum besteht aus einer einzigen Geometrie, sodaß durch Anwenden des Gouraud-Shadings die Ecken des Raums abgerundet wirken würden. Um dem entgegen zu wirken, wurde die Methode zur Erstellung der Topologie so erweitert, daß Patches des Raums nur als benachbart 62

72 5.6 Umsetzung der Lernziele angesehen werden, wenn ihre Normalen in die gleiche Richtung zeigen. Bei Patches an einer Raumecke ist dies nicht der Fall, sodaß dort kein Mittelwert über die Ecke hinweg gebildet wird. Dadurch entsteht eine harte Kante. 5.6 Umsetzung der Lernziele Der Ablauf- und der Aufbau der Lernanwendung orientiert sich an dem in Kapitel 5.4 vorgestellten Pseudo-Code 5.1. In Kapitel 4.1 wurden die folgenden sieben Lernziele vorgegeben. Der Lernende soll folgendes verstehen und erlernen: 1. Radiosity-Gleichung und deren einzelne Terme 2. Formfaktoren und deren Eigenschaften 3. Progressive Refinement 4. Veränderung der Szene nach den jeweiligen Iterationsschritten des Progressive Refinements (color bleeding, weiche Schatten) 5. Laufzeit und Speicherplatzkomplexität von Radiosity allgemein und der vorgestellten Variante 6. Aufbau, Struktur, Nutzen und Berechnung eines Hemi-Cubes sowie dessen Elemente (Hemi-Cube-Pixel, Delta-Formfaktoren) 7. Vor- und Nachteile des Radiosity-Verfahrens Die Aufteilung dieser Lernziele in neun Lektionen der Lernanwendung wurde in Kapitel 4.2 vorgenommen. An diesen Lektionen orientiert sich der Ablauf und die Schritte der Lernanwendung. Der Lernende kann mittels des Navigation-Trees einen der Lernanwendungsschritte frei wählen. Folgende Schritte wurden implementiert, in Klammern Angabe des umgesetzten Lernziels: 1. Einleitender Text (1. und 2. Lernziel) 2. Szenenauswahl 3. Initialisierung (3. Lernziel) 4. Berechne Iterationen (4. Lernziel) 5. Berechnung einzelner Iterationsschritt (5. Lernziel) 63

73 5.6 Umsetzung der Lernziele 6. Was ist ein Hemi-Cube? (6. Lernziel) 7. Wie wird die Farbe eines Patches berechnet? (6. Lernziel) Die nachfolgende Abbildung 5.10 zeigt den voll expandierten Navigation-Tree, und somit die Anordnung und Unterteilung der Lernanwendungsschritte. Abbildung 5.10: Anordnung und Unterteilung der Lernanwendungsschritte, veranschaulicht durch den voll expandierten Navigation-Tree Zu Beginn der Lernanwendung (1. Schritt) wird dem Benutzer ein Einleitungstext zur Verfügung gestellt. Dieser erläutert die benötigte Theorie des Radiosity-Verfahrens und soll es dem Lernenden ermöglichen ein Grundwissen zu erlangen, um die anderen Schritte nachvollziehen zu können. Der Lernende kann im 2. Schritt der Lernanwendung eine der beiden Szenen und einen der drei Detailgrade auswählen. Diese Szene wird dann in allen weiteren Schritten verwendet. Im 3. Schritt wird die Initialisierung des Progressive Refinements erläutert und gezeigt, wie die Szene nach der Initialisierung aussieht. Dieser Schritt ist in drei weitere Schritte unterteilt. Unterschritte dienen dazu, weitere Details zu einem Schritt bereitzustellen. Sie zeigen, z.b. was alles nötig ist, um das Ziel des übergeordneten Schrittes zu erreichen oder in welche Unterschritte der Schritt algorithmisch unterteilt ist. Der Lernende kann sich im ersten Unterschritt zunächst die Szene unbeleuchtet ansehen, um einen Eindruck 64

74 5.6 Umsetzung der Lernziele von dem Aufbau und den Farben der Szene zu bekommen. In Unterschritt 2 wird die Szene als Wireframe dargestellt. Der Lernende kann durch diese Darstellung einen Eindruck davon bekommen, wie die Szene in Patches unterteilt ist. Unterschritt 3 zeigt die Szene nach dem Iterationsschritt B0, also nach der Initialisierung des Verfahrens. Nach B0 ist die gesamte Szene, bis auf emittierende Flächen (Lichtquellen), schwarz. Der 4. Schritt ist eine Animation, in der dargestellt wird, wie die Szene nach den einzelnen vorgerenderten Iterationsschritten (B1-B5) des Radiosity-Verfahrens aussieht. Dieser Schritt zeigt die sukzessive Veränderung der Szene und ermöglicht dem Lernenden die Auswirkungen der fünf Iterationsschritte auf die Szene, wie Schattenwurf und color bleeding, zu sehen. Als Unterschritte können die Iterationen B1-B5 einzeln ausgewählt und angeschaut werden. Dadurch kann der Lernende sich in aller Ruhe den Übergang von einem Schritt zu einem anderen anschauen, ohne, wie es in der Animation der Fall ist, eine Zeitvorgabe zu haben. Der 5. Schritt ist ein Unterschritt von Schritt B4. Er soll verdeutlichen wieviel Aufwand zur Berechnung des gewählten Radiosity-Verfahrens nötig ist, insbesondere wie viele Hemi-Cubes für einen einzelnen Iterationsschritt berechnet werden müssen. Dazu wird als Animation gezeigt, wie ein Hemi-Cube in Wireframe-Darstellung auf jeden einzelnen Patch der Szene gesetzt wird. Zur Vermeidung einer zu langen Animationszeit bei einer Szene mit Detailgrad Hoch, wird die Wartezeit bis zum Setzen des Hemi-Cubes auf den nächsten Patch von zwei Sekunden bis zu einem Minimalwert im Millisekundenbereich sukzessive verringert. Der 6. Schritt ist ein Unterschritt von Schritt 5 und erklärt den Aufbau und die Struktur eines Hemi-Cubes anhand einer 3D-Darstellung eines auf einem Patch sitzenden Hemi- Cubes in Wireframedarstellung. Schritt 6 hat einen Unterschritt, der dem Lernenden erläutert was Delta-Formfakoren sind und wie diese berechnet werden. Dafür wird ein Hemi-Cube in Wireframedarstellung gezeigt. In der Darstellung sind die für die Berechnung wichtigen Parameter eingezeichnet und mit 3D-Texten beschriftet. Schritt 7 ist ebenfalls ein Unterschritt von Schritt 5. In einer Animation wird gezeigt, wie eine Szene schrittweise auf die fünf Seiten des Hemi-Cubes projiziert wird. Für jede Seite wird das ViewVolume vom Mittelpunkt des Patches in Richtung der Normalen der entsprechenden Hemi-Cube-Seite, in Form eines grünen, semitransparenten Pyramidenstumpfes, eingezeichnet. Bevor die Animation zur nächsten Hemi-Cube-Seite wechselt, wird der aktuellen Hemi-Cube-Seite eine Textur zugeordnet. Diese Textur entspricht dem Bild, das durch eine Projektion der Szene auf die Hemi-Cube-Seite entstehen würde. Eine Projektion zur Laufzeit der Lernanwendung wäre für den Benutzer durch die nötigen Kameratransformationen verwirrend. Deshalb wurden für alle Szenen und deren mögli- 65

75 5.6 Umsetzung der Lernziele che Paramter Texturen vorberechnet und in Dateien gespeichert. Diese werden dann in Schritt 7 zur Darstellung der Projektion geladen. Der Hemi-Cube wird in Wireframedarstellung gezeigt. Die einzelnen Raster des Hemi-Cubes stellen die Hemi-Cube-Pixel dar. Um die Textur zu erhalten und dennoch ein Gitter für die Hemi-Cube-Pixel beizubehalten, wird ein zweiter Hemi-Cube, der minimal größer als der erste ist, in Wireframedarstellung über den ersten gelegt. Als Unterschritte können die einzelnen Animationsschritte separat betrachtet werden, d.h., für jede Hemi-Cube-Seite steht ein eigener Schritt bereit, der die Projektion auf diese Seite zeigt. Die nachfolgende Abbildung 5.11 zeigt die Darstellung der Projektion auf die Unterseite des Hemi-Cubes. Abbildung 5.11: Darstellung der Projektion auf die Unterseite des Hemi-Cubes Jeder der Schritte enthält einen Erklärungstext, der wie in Kapitel 5.2 beschrieben, als On-Screen-Display angezeigt wird. Der Aufbau und die Unterteilung der Lernanwendungsschritte wurde so gewählt, daß eine Erklärung des Radiosity-Verfahrens vom Allgemeinen ins Spezielle erfolgt, d.h., mit jeder tieferen Navigation-Tree-Ebene geht es bei den Erklärungen mehr ins Detail. Die erste Ebene gibt somit lediglich einen groben Überblick des Verfahrens. Der Lernende kann bei einer freien Exploration der Lernanwendung (ohne Nutzung des LernBar-Kurses), je nach seinem Wissensstand, selbst entscheiden welche Details er erfahren möchte. 66

76 5.7 Erstellung des LernBar-Kurses 5.7 Erstellung des LernBar-Kurses Der Lernende kann in der Lernanwendung die Schritte frei wählen. In der LernBar wurde ein Kurs entwickelt, der ein angeleitetes Lernen ermöglicht. Dieser Kurs ist in neun Lektionen unterteilt, die zusammen mit der Lernanwendung abgearbeitet werden sollen. Die Lektionen ermöglichen einen linearen Ablauf, indem sie dem Lernenden vorgeben, was er wann zu tun hat. Dennoch hat der Lernende die Möglichkeit die Reihenfolge der Lektionen selbst zu bestimmen oder eventuell einzelne Lektionen, mit dessen Inhalt er bereits vertraut ist, zu überspringen. Die Lektionen entsprechen der in Kapitel 4.2 vorgestellten Unterteilung, die nachfolgend nochmals aufgelistet wird: 1. Kurs - Einleitung: Beschreibt die Zielsetzung, den Aufbau und die Voraussetzungen des Kurses. 2. Radiosity - Einleitung: Erklärt Radiosity, dafür notwendige Voraussetzungen, die Radiosity-Gleichung sowie Formfaktoren. (1. und 2. Lernziel) 3. Bedienungsanleitung: Macht den Benutzer mit dem GUI der Lernanwendung vertraut. 4. Initialisierung: Beschreibt die notwendigen Initialisierungen des Progressive Refinements und zeigt die einzelnen Initialisierungsschritte an einer 3D-Szene. (3. Lernziel) 5. Progressive Refinement: Erklärt Progressive Refinement und zeigt die Veränderung einer 3D-Szene nach den einzelnen Iterationsschritten. (3. und 4. Lernziel) 6. Laufzeit- und Speicherplatzkomplexität: Vermittelt wie aufwendig die Radiosity- Berechnung ist und zeigt exemplarisch an einer 3D-Szene, wie viele Hemi-Cubes für einen einzigen Iterationsschritt berechnet werden müssen. (5. Lernziel) 7. Der Hemi-Cube: Beschreibt den Aufbau sowie die Berechnung des Hemi-Cubes und der dazugehörenden Elemente (Hemi-Cube-Pixel, Formfaktoren). Zeigt einen Hemi-Cube in 3D sowie dessen Hemi-Cube-Pixel und die Berechnung der Delta- Formfaktoren. (6. Lernziel) 8. Projektion auf einen Hemi-Cube: Zeigt die Projektion einer 3D-Szene auf die fünf Seiten des Hemi-Cubes. (6. Lernziel) 9. Schlusswort: Die Vor- und Nachteile des Radiosity-Verfahrens werden kurz zusammengefaßt. Der Benutzer wird ermutigt die Lernanwendung nochmals selbstständig zu erkunden und auf Details zu achten. (7. Lernziel) 67

77 5.7 Erstellung des LernBar-Kurses Jede Lektion erklärt zuerst die notwendigen Grundlagen und weißt anschließend den Lernenden an, bestimmte Schritte in der Lernanwendung auszuführen. Um das Kurzzeitgedächtnis des Lernenden nicht zu sehr zu strapazieren, wurden für jede Anweisung zusätzlich erklärende Bilder bereitgestellt, die verdeutlichen was der Lernende in der Lernanwendung zu tun hat. Ein Beispiel eines solchen Bildes ist Abbildung Abbildung 5.12: Anweisung des LernBar-Kurses in Bildform Die Teilbilder der Abbildung 5.12 entsprechen Bereiche aus der Lernanwendung. Die roten Zahlen beschreiben die Reihenfolge der Aktionen. Die roten Linien weisen auf das Element, mit dem im entsprechenden Schritt interagiert werden soll. Durch diese Bilder erhält der Lernende einen visuellen Eindruck davon, wo sich die einzelnen Elemente, die er bedienen soll, befinden und wie diese Aussehen. Dies soll die Suche nach den in den Anweisungstexten erwähnten Bedienelementen in der Lernanwendung reduzieren. Je Lektion werden Erklärungstexte und einleitende Grundlagenbeschreibungen gegeben, um den nötigen Stand des Wissens zu erreichen, dennoch sind gewisse Grundkenntnisse des Lernenden erforderlich. Der Kurs richtet sich an Studenten der Informatik, die bereits Basiswissen durch die Vorlesung Grundlagen der Computergrafik oder einer vergleichbaren Vorlesung vermittelt bekommen haben. Die Themengebiete zu den folgenden Stichwörter werden als bekannt vorausgesetzt: Globale vs. Lokale Beleuchtung, diffuse Reflektion, Emission, Reflektionsgleichung, Vorgang des Renderns, Oberflächennormale, Gouraud- vs. Flat-Shading, iterativ, Approximation, Konvergenz und Projektion. Die Zielsetzung des Kurses ist es, dem Lernenden ein Verständnis für Radiosity zu vermitteln. Er soll die einzelnen Schritte des verwendeten Algorithmus verstehen sowie einen Eindruck davon bekommen, welche Fähigkeiten, aber auch welche Schwachpunkte, Ra- 68

78 5.7 Erstellung des LernBar-Kurses diosity mit sich bringt. Die Bearbeitungszeit des Kurses beträgt ca Minuten, ist aber nicht auf dieses Zeitfenster beschränkt. Der Kurs kann jederzeit unterbrochen und an der selben Stelle, zu einem anderen Zeitpunkt fortgesetzt werden, jedoch empfiehlt es sich eine Lektion zusammenhängend abzuarbeiten. Im Kurs enthalten sind 16 Fragen, die in Form von Single-Choice und Multiple-Choice angelegt wurden. Sie dienen dem Abfragen des Lernfortschrittes und werden am Ende der jeweiligen Lektion gestellt. Die nachfolgende Abbildung 5.13 zeigt exemplarisch eine Seite des LernBar-Kurses. Abbildung 5.13: Eine Seite des Kurses Das Design, zu dem die Schriftgröße, die Anordnung der Elemente sowie das Farbschema zählt, ist durch die LernBar und deren Templates vorgegeben. Eine direkte Kommunikation zwischen dem LernBar-Kurs und der Lernanwendung ist aufgrund mangelnder Schnittstellen nicht möglich, sodaß der Benutzer selbstständig zwischen den beiden Anwendungen wechseln muß. Sobald ein Wechsel notwendig ist, wird in den Erklärungstexten des Kurses und der Lernanwendung darauf hingewiesen. Ursprünglich sollten Lernanwendung und Kurs so konzipiert werden, daß sie beide gleichzeit auf dem Bildschirm darstellbar sind. Die Lernanwendung wurde so implementiert, daß die Fenstergröße in gewissen Grenzen skalierbar ist. Die Fenstergröße des LernBar-Kurses kann jedoch aufgrund der festen Schriftgröße nicht ohne Verlust von Textteilen verkleinert werden. Dies führt dazu, daß bei einer Bildschirmauflösung von 1024 x 768 Pixel oder 1280 x 1024 Pixel nicht beide Anwendungen zeitgleich angezeigt werden können. Im Anhang A.1 dieser Diplomarbeit sind alle Seiten des LernBar-Kurses abgebildet. 69

79 6 Bewertung und Ausblick...etwas in Frage zu stellen, ist der einzige Weg, es zu verbessern. Richard Ginnow 6.1 Bewertung In dieser Diplomarbeit wurde eine 3D-Lernanwendung für Progressive Refinement Radiosity in der Gathering-Variante mittels Hemi-Cube implementiert. In der LernBar wurde ein Kurs entwickelt, der angeleitetes Lernen ermöglicht. Während der Präsentation des Lernstoffes wird in regelmäßigen Abständen durch Abfragen des bereits präsentierten Lernstoffes, in Form von Single- und Multiple-Choice-Fragen, ein Feedback erzeugt. Nach ihren technischen Merkmalen (siehe Kapitel 2.6) entspricht die Lernanwendung in Verbindung mit dem Kurs einer Mischung aus einem tutoriellen System in Form eines multifunktionalen Lernprogramms und einer Präsentations- und Visualisierungssoftware, die der Veranschaulichung komplexer Sachverhalte dient. Es wurde darauf Wert gelegt, daß der didaktische Nutzen der Lernanwendung in Verbindung mit dem Kurs höher ist, als die in Kapitel 3.5 vorgestellten, bereits existierenden Radiosity-Visualisierungen. Die Lernanwendung enthält erklärende Texte, sodaß der Lernende mit dem was er sieht nicht allein gelassen wird. Es wird nicht nur gezeigt wie sich Radiosity auf eine Szene auswirkt, wie es bei vielen Visualisierungen aus Kapitel 3.5 der Fall ist, sondern einzelne Schritte des verwendeten Algorithmus werden erläutert und dargestellt. Der Interaktionsgrad der Lernanwendung beschränkt sich nicht nur auf reine Animationen. In der Lernanwendung kann die Repräsentationsform der Szenen variiert werden. Die Kamera kann frei bewegt werden. Ein Verändern der Inhalte ist allerdings nicht möglich. Dies entspricht Stufe III der sechs Stufen der Interaktivität einer Multimedia-Anwendung (siehe Kapitel 2.6) und bietet somit wesentlich mehr Interaktivität als alle in Kapitel 3.5 vorgestellten Radiosity Simulationen und Visualisierungen. Eine höhere Stufe der Interaktivität kann nicht ohne weiteres implementiert 70

80 6.1 Bewertung werden. Die Stufen IV, V und VI erfordern alle, daß die Inhalte vom Benutzer verändert werden können. Zu diesen Änderungen zählt z.b. das Verändern der Szenengeometrie und der Lichtquellen oder das Verändern von Farben. Dies ist, solange Radiosity nicht echtzeitfähig ist, nicht praktikabel, sonst müßte der Lernende nach Änderung der Szene Minuten bis Studen warten, bis Radiosity für die Szene neu berechnet wurde und die Ausführung der Lernanwendung fortgesetzt werden kann. Wie in Kapitel 2.6 bereits erwähnt, soll die Lernanwendung sowohl für starke Lerner als auch für schwache Lerner geeignet sein. Die starken Lerner profitieren von dem vergleichsweise hohen Interaktionsgrad der Lernanwendung und unterliegen dadurch, daß Lektionen übersprungen werden können, nicht dem Zwang bereits bekannten Lernstoff abarbeiten zu müssen. Die Einstellung verschiedener Parameter, wie Detailgrad der Szene, die verschiedenen Kameraansichten und die Bereitstellung der Szene 2, die im Verlauf des Kurses nicht explizit verwendet wird, ermutigen zur weiteren Auseinandersetzung mit der Lernanwendung, auch nach Abarbeitung des Kurses. Schwache Lerner bekommen durch den anleitenden Kurs solide Grundlagen vermittelt und werden schrittweise an das Thema herangeführt. Der strukturierte Aufbau der Lektionen und die in Text- und Bildform vermittelten Anweisungen ermöglichen ihnen, sich auf das Wesentliche der Lektionen zu konzentrieren. Die Szenen wurden für die Lernanwendung vorgerendert und die Farbwerte der Patches nach der Radiosity-Berechungen in Dateien gespeichert. Alle anderen aufwendigen Berechnungen, wie das Anlegen der Topologie oder die Berechnung der Farben der Vertices für das Gouraud-Shading, wurden ebenfalls im Voraus einmalig berechnet, sodaß der Benutzer der Lernanwendung davon profitieren kann, daß mit Radiosity gerenderte Szenen in Echtzeit betrachtet und durchlaufen werden können. Die Antwortzeit der Anwendung auf eine Benutzereingabe wurden minimiert. Bei der Entwicklung einer Lernanwendung sollte die Benutzerfreundlichkeit (usability) immer im Vordergrund stehen. Deshalb wurde das GUI sehr übersichtlich gestaltet und darauf geachtet, daß die Bedienung möglichst einfach und komfortabel ist. Für das GUI- Design der Lernanwendung wurden gestalterische Richtlinien, wie z.b. die 8 goldenen Regeln des Interface Desings nach Shneiderman (siehe Kapitel 4.3), berücksichtigt. Die Verwendung der LernBar zur Erstellung des Kurses hat den Vorteil, daß der Kurs durch die Verwendung der vorgefertigten Templates den gestalterischen Richtlinien und Qualitätskriterien der LernBar folgt. Durch die Auswahl der vorgegebenen Templates ist das Layout und das Design des Kurses bereits festgelegt. Dies reduziert den Arbeitsaufwand bei der Erstellung des Kurses enorm. Ein Problem, das jedoch bei der simultanen Verwendung der Lernanwendung und des Kurses auftritt ist, daß nicht beide Anwendun- 71

81 6.2 Die Zukunft von 3D-Simulationen und 3D-Visualisierungen im Bereich des E-Learnings gen zeitglich auf dem Bildschirm dargestellt werden können. Das Fenster des LernBar- Kurses nimmt fast den ganzen Bildschirm ein und kann aufgrund der festen Schriftgröße nicht ohne Verlust von Textteilen verkleinert werden. Der Komfort bei der Benutzung der Lernanwendung und des Kurses leidet darunter, daß eine direkte Kommunikation zwischen dem LernBar-Kurs und der Lernanwendung aufgrund mangelnder Schnittstellen nicht möglich ist, sodaß der Benutzer selbstständig zwischen den beiden Anwendungen wechseln muß. An dieser Stelle ist noch Potential für Verbesserungen vorhanden. Das Problem der zu dunklen Darstellung der Szenen, verursacht durch die schlechte Konvergenz des Verfahrens, wurde durch das in Kapitel 5.5 vorgestellten Verfahren zur Kontrasterhöhung überwunden. Java 3D kann wirklich viel und erleichtert durch seine bereitgestellten Klassen die Erstellung von 3D-Inhalten. Jedoch enthält Java 3D einige kleinere Bugs und Eigenschaften, die nicht unbedingt so zu erwarten wären. Deren Umgehung stellte bei der Implementierung eine ständige Herausforderung dar. Ein Beispiel dafür sind die in Kapitel 5.5 erwähnten Rundungsfehler, die bei der Erstellung der vorgefertigten Geometrien für die Szenen auftreten und das Berechnen der Topologie für das Gouraud-Shading erschweren. Viele Probleme, wie das genannte, konnten umgangen oder beseitigt werden. Ein Problem, das in dieser Arbeit jedoch nicht umgangen werden konnte, ist, daß es bei der Verwendung des Raster-Objektes, zum Erstellen der Projektionen, wegen Rundungsfehlern zum Verlust von sehr kleinen Radiosity-Werten kommt (siehe Kapitel 5.4). Es hat sich gezeigt, daß die Implementierung eines eigenen Radiosity-Renderers, ohne die gesamte Renderingpipeline selbst zu implementieren, in Java 3D schwierig ist und nur mit Einschränkung bezüglich der Universalität des Renderers realisierbar ist. Könnte man über die in Java 3D in Kapitel 4.5 erwähnten Bugs bei dem Im- und Export von Szenen hinwegkommen, dann würde sich die Verwendung eines externen Radiosity-Renderers anbieten. 6.2 Die Zukunft von 3D-Simulationen und 3D-Visualisierungen im Bereich des E-Learnings Wie in Kapitel 3.6 bereits erwähnt wurde, existieren so gut wie keine E-Learning-Autorensysteme, die dem Autor die Erstellung von komplexen, interaktiven 3D-Inhalten erleichtern. Alle komplexen 3D-Inhalte müssen per Hand programmiert werden. Deren Entwicklung erfordert, ohne Zuhilfenahme von vorgefertigten Komponenten, eine Menge an Entwicklungsaufwand. Besonders Autoren, die nicht aus dem Bereich der Computergrafik oder der Informatik kommen, fehlen oft die Programmierkenntnisse, um komplexe 3D-Inhalte zu Lernzwecken zu erstellen. Deshalb verwundert es auch nicht, daß 3D- 72

82 6.2 Die Zukunft von 3D-Simulationen und 3D-Visualisierungen im Bereich des E-Learnings Visualisierungen und 3D-Simulationen bisher nur im geringen Maße im Bereich des E- Learnings zum Einsatz kommen. Um die Verbreitung von 3D-Simulationen und 3D-Visualisierungen im Bereich des E- Learnings zu erhöhen ist es notwendig, daß diese direkt in Autorensystemen zusammen mit Kursen erstellt werden können. Dies würde mehr Komfort für die Autoren bedeuten, aber auch für die Lernenden, denn das Umschalten zwischen 3D-Lernanwendung und Kurs, wie es in der implementierten Lernanwendung erforderlich ist, fällt dadurch weg. Idealerweise sollte das Anlegen von simplen 3D-Inhalten per Drag-and-Drop möglich sein, um auch Autoren ohne Programmierkenntnisse die Erstellung solcher Inhalte zu ermöglichen. Es stellt sich die Frage, warum immer noch so gut wie kein einziges E-Learning-Autorensystem die Erstellung von 3D-Inhalten unterstützt, obwohl die Anzahl der E-Learning- Autorensysteme ständig zunimmt. Wie in Kapitel 3.3 bereits erwähnt, ist es eine wichtige Anforderung für den Einsatz von 3D-Inhalten in Autorensystemen, daß die 3D-Inhalte online genutzt werden können. Obwohl es schon lange möglich ist mit z.b. Java 3D, das schon seit über 10 Jahren zur Verfügung steht, VRML, Adobe Flash oder Microsoft Silverlight online verfügbare 3D-Inhalte zu erstellen, kam es bisher zu keinem Durchbruch von 3D-Inhalten im Web. Bevor es keinen 3D-Web-Standard gibt, der sich durchsetzt und ähnlich weite Verbeitung wie z.b. Adobe Flash findet, werden Autorensysteme die Erstellung von 3D-Inhalten nur schwer unterstützen können. Ein vielverprechender Ansatz ist Adobe Flash auf 3D zu erweitern, wie z.b. mit Papervision3D 26. Eine weitere Möglichkeit könnte HTML 5 27 sein. HTML 5 ist gerade in der Entwicklung und enthält im aktuellen Arbeitsentwurf ein canvas-element, das Funktionen zur Verwendung und zur Erstellung von 2D-Grafiken bereitstellt. In der API-Übersicht 28 des canvas-elements wird erwähnt, daß eine zukünftige Erweiterung auf 3D-Grafiken sehr wahrscheinlich ist. Dies könnte eine Möglichkeit darstellen 3D-Inhalte in allen Webbrowsern verfügbar zu machen. Es ist wichtig anzumerken, daß nicht jeder Lerninhalt eine 3D-Darstellung erfordert. Wie bereits in Kapitel 3.4 erwähnt, können einige Inhalte, wie z.b. Radiosity, von einer 3D- Darstellung profitieren, andere jedoch nicht. Das Lehrmaterial vieler Autoren ist in Form von Foliensätzen präsent und kann somit leicht in einen 2D-Lernkurs umgewandelt werden. Das Entwerfen von 3D-Lerninhalten erfordert oftmals eine komplette Neukonzeption 26 Weitere Informationen zu Papervision3D siehe: und 27 Weitere Informationen zu HTML 5 siehe: 28 Weitere Informationen zum canvas-element-api siehe: 73

83 6.2 Die Zukunft von 3D-Simulationen und 3D-Visualisierungen im Bereich des E-Learnings des Lernmaterials und ist deshalb mit erheblichem Aufwand verbunden. Die Entwicklung von komplexen 3D-Inhalten dürfte nur schwer in E-Learning-Autorensysteme integrierbar sein. Ohne die Zuhilfenahme von Skripting oder Programmierung ist dies vemutlich unmöglich. Die Bedürfnisse nach verschiedenen Funktionen bei der Erstellung von 3D- Inhalten sind je nach Themengebiet sehr unterschiedlich, sodaß nur ein Autorensystem zur Erstellung von komplexen 3D-Inhalten geeignet wäre, das so gut wie alle Funktionalitäten, die auch in OpenGL oder DirectX enthalten sind, bereit stellt, sonst wäre das Autorensystem nicht universell einsetzbar. Java 3D hat vermutlich keine große Zukunft vor sich, denn es hat sich in den letzten 10 Jahren im Bereich von 3D-Web-Inhalten nie richtig durchsetzen können. Weil Java 3D nicht zusammen mit der Java-Laufzeitumgebung zur Verfügung gestellt wird, ist es notwendig Java 3D separat zu installieren. Dies ist hinsichtlich der Verbreitung sicherlich nicht förderlich. Es sind noch immer einige Bugs in Java 3D enthalten. Die Weiterentwicklung wurde bereits 2004 von Sun Microsystems gestoppt. Wesentlich bessere Alternativen zur Erstellung von 3D-Web-Inhalten lassen jedoch noch auf sich warten. Dennoch dürfte es nur eine Frage der Zeit sein, bis sich ein 3D-Web- Standard durchsetzt und dadurch E-Learning-Autorensysteme die Erstellung von 3D- Inhalten unterstützen. 74

84 Literaturverzeichnis [ABP04] [ADURL] [ANI00] [ANWEB] [AVC07] [AVS07] [CLABB] [COLAB] [DBM84] [DDL05] Jarc,D. J.; Feldman, M. B.; Heller, R. S.: Assessing the benefits of interactive prediction using web-based algorithm animation courseware. In SIGCSE 2000: Proceedings of 31th SIGCSE Technical Symposium on Computer Science Education, Seiten: , 2000 Spieleentwicklung, Authoring-Software für Multimedia-Inhalte Adobe Director: http: // www. adobe. com/ de/ products/ director/, Zugriff: Rößling, Guido; Schüler, Markus; Freisleben, Bernd: The ANIMAL algorithm animation tool. In: Commununications ACM, 2000 Animal Home Page Home of the Animal AV System: http: // www. algoanim. info/ Animal2/, Zugriff: Grissom, Scott; McNally, Myles F.; Naps, Tom: Algorithm visualization in CS education: comparing levels of student engagement. In: Commununications ACM, 2003 Shaffer, Clifford A.; Cooper, Matthew; Edwards, Stephen H.: Algorithm visualization: a report on the state of the field. In: Commununications ACM, 2007 Abbildung Course Lab: http: // www. courselab. com/ db/ cle/ root_ id/ courselab/ doc. html, Zugriff: CourseLab - free e-learning authoring tool http: // www. courselab. com/, Zugriff: Kiger, John I.: The depth/breadth trade-off in the design of menu-driven user interfaces. In: International Journal of Man-Machine Studies, Seiten: , 1984 Schweitzer, Dino: Designing computer graphics courses for distance learning. In: Commununications ACM,

85 Literaturverzeichnis [DMS86] [DSAVW] [EAS99] [EEA94] [EEM02] [EGR87] [GDV09] [GDV11] [Gou71] [Hem85] [HemPR] Shneiderman, Ben: Designing menu selection systems. In: Journal of the American Society for Information Science 37(2), Seiten: 57-70, 1986 Data Structure And Algorithm Visualization - Algoviz Wiki: http: // wiki. algoviz. org/ AlgovizWiki/, Zugriff: Byrne, M. D.; Catrabone, R.; Stasko, J. T.: Evaluating Animations as Student Aids in Learning Computer Algorithms. Computers and Education, 33, Seiten: , 1999 Lawrence, A. W. ; Stasko, J. T.; Badre, A.: Empirically evaluating the use of animations to teach algorithms. In: Proceedings, IEEE Symposium on Visual Languages, Seiten 48-54, 1994 Cockburn, A.; McKenzie, B.: Evaluating the effectiveness of spatial memory in 2d and 3d physical and virtual environments. In: Proceedings of the SIGCHI conference on Human factors in computing systems, Seiten: , 2002 Shneiderman, Ben: Eight Golden Rules of Interface Design. In: Addison- Wesley, 1987 GDV-Vorlesungsskript SS 2007 V09-Beleuchtungsrechnung: http: // www. gdv. informatik. uni-frankfurt. de/ lehre/ ss2007/ GDV/ Folien/ V09-Beleuchtungsrechnung. pdf, Seite: 9, Folie: 27, Zugriff: GDV-Vorlesungsskript SS 2007 V11-RayTracing+Radiosity: http: // www. gdv. informatik. uni-frankfurt. de/ lehre/ ss2007/ GDV/ Folien/ V11-RayTracing+ Radiosity. pdf, Seite: 20ff, Folie: 58ff, Zugriff: Gouraud, Henri: Computer display of curved surfaces. In: Commununications ACM, 1971 Greenberg, Donald P.; Cohen, Michael F.: The hemi-cube: a radiosity solution for complex environments. In: Commununications ACM, 1985 Abbildung Projektion auf Hemi-Cube: http: // upload. wikimedia. org/ wikipedia/ commons/ c/ c9/ Hemicube_ Radiosity. png, Zugriff:

86 Literaturverzeichnis [HHB04] [HLV00] [IBR03] Arnold, Patricia; Kilian, Lars; Thillosen, Anne; Zimmer, Gerhard: Handbuch für Hochschulen und Bildungszentren : Didaktik, Organisation, Qualität. BW Bildung und Wissen, 2004 Hansen, S. R.; Narayanan, N. H.; Schrimpsher, D.: Helping learners visualize and comprehend algorithms. In: Interactive Multimedia Electronic Journal of Computer-Enhanced Learning, 2, 2000 Shneiderman, B.: Why not make interfaces better than 3d reality? In: IEEE Comput. Graph. Appl. 23, Seiten: 12-15, 2003 [IMA05] Schulmeister, Rolf: Interaktivität in Multimedia-Anwendungen www. e-teaching. org/ didaktik/ gestaltung/ interaktiv/ InteraktivitaetSchulmeister. pdf, Zugriff: [ITM96] [JAAPC] [JHAVÉ] [JWEBS] [KKL02] [LeBar] [LerBa] Naiman, Avi C.: Interactive teaching modules for computer graphics. In: Commununications ACM, 1996 Java Applets Centre: http: // www. cosc. canterbury. ac. nz/ mukundan/ cogr/ applcogr. html, Zugriff: JHAVE: Home Page: http: // jhave. org/, Zugriff: Java SE Desktop Technologies - Java Web Start Technology: http: // java. sun. com/ javase/ technologies/ desktop/ javawebstart/ index. jsp, Zugriff: Gottfried, Clemens; Hager, Gerhard; SCHARL, Wolfgang: KRITERI- ENKATALOG zur qualitativen Bewertung von Lernsoftware http: // www. htlw3l. ac. at/ kk/, Zugriff: Abbildung LernBar-Kurs: http: // www. megadigitale. uni-frankfurt. de/ et/ LernBar/ index. html, Zugriff: LernBar-Portal: http: // lernbar. uni-frankfurt. de/, Zugriff:

87 Literaturverzeichnis [PEV07] [PHO75] [PHOSP] [PrR88] [Rad84] McNally, Myles; Naps, Tom; Furcy, David; Grissom, Scott; Trefftz, Christian: Supporting the rapid development of pedagogically effective algorithm visualizations. In: Commununications ACM, 2007 Phong, Bui T.: Illumination for computer generated pictures. In: Commununications ACM, 1975 Abbildung Phong-Shading Kugel: http: // en. wikipedia. org/ wiki/ File: Phong-shading-sample. jpg, Zugriff: Cohen, Michael F.; Chen, Shenchang E.; Wallace, John R.; Greenberg, Donald P.: A progressive refinement approach to fast radiosity image generation. In: Commununications ACM, 1988 Goral, Cindy M.; Torrance, Kenneth E.; Greenberg, Donald P.; Battaile, Bennett: Modeling the interaction of light between diffuse surfaces. In: Commununications ACM, 1984 [RADFF] [RADPR] Zu- Radiosity Form Factor: http: // www. cs. brown. edu/ exploratories/ freesoftware/ repository/ edu/ brown/ cs/ exploratories/ applets/ radiosityformfactor/ radiosity_ form_ factor_ guide. html, griff: Abbildung Glass Szene: http: // en. wikipedia. org/ wiki/ File: Glasses_ 800_ edit. png, griff: Zu- [RADSG] [RADSP] [RAGDR] Radiosity Shooting vs Gathering: http: // www. cs. brown. edu/ exploratories/ freesoftware/ repository/ edu/ brown/ cs/ exploratories/ applets/ radiositysvg/ radiosity_ shooting_ vs_ gathering_ guide. html, Zugriff: Abbildung Radiosity Kugeln: http: // de. wikipedia. org/ wiki/ Datei: Radiosity-yes. jpg, Zugriff: Radiosity Andy s Game Development Resources: http: // amesgames. net/ 2004/ 03/ 16/ radiosity/, Zugriff:

88 Literaturverzeichnis [RAVIS] Radiosity Visualisation: http: // www. cs. cmu. edu/ ~radiosity/ radvis. html, Zugriff: [RIM01] [RIM04] [sigpr] Cockburn, A.; McKenzie, B.: 3d or not 3d?: evaluating the effect of the third dimension in a document management system. In: Proceedings Proceedings of the SIGCHI conference on Human factors in computing systems, Seiten: , 2001 Cockburn, A.: Revisiting 2d vs 3d implications on spatial memory. In: Proceedings of the fifth conference on Australasian user interface, Seiten: 25-31, 2004 Radiosity OverView - SIGGRAPH 1993 Education Slide Set http: // www. siggraph. org/ education/ materials/ HyperGraph/ radiosity/ radiosity. htm, Zugriff: [TCCAA] The Complete Collection of Algorithm Animations: http: // www. cs. hope. edu/ ~dershem/ ccaa/ ccaa/ miscell. html, Zugriff: [TEA96] [TRH78] [UAA01] [VCG96] [VLA00] [VOS93] Gurka, J. S.; Citrin, W.: Testing effectiveness of algorithm animation. In: Proceedings, IEEE Symposium on Visual Languages, Seiten: , 1996 Siegel, Robert; Howell, John: Thermal Radiation Heat Transfer. Publishing Corp., 1978 Ciesielski, Vic; McDonald, Peter: Using animation of state space algorithms to overcome student learning difficulties. In: Commununications ACM, 2001 Goldman, David A.; Eckert, Richard R.; Cohen, Maxine S.: Threedimensional computation visualization for computer graphics rendering algorithms. In: Commununications ACM, 1996 Hundhausen, C.; Douglas, S.: Using visualizations to learn algorithms: should students construct their own, or view an expert s? In: Proceedings, IEEE Symposium on Visual Languages, Seiten: 21-28, 2000 Ware, C.; Hui, D.; Franck, G.: Visualizing object oriented software in three dimensions. In: Proceedings of the conference of the Centre for Advanced Studies on Collaborative research, Seiten: ,

89 Literaturverzeichnis [WCG98] [Whi80] [WRA93] [WSIGR] [WSIP1] Klein, Reinhard; Hanisch, Frank; Straßer, Wolfgang: Web-based teaching of computer graphics: concepts and realization of an interactive online course. In: Commununications ACM, 1998 Whitted, Turner: An improved illumination model for shaded display. In: Commununications ACM, 1980 Gortler, Steven J.; Schröder, Peter; Cohen, Michael F.; Hanrahan, Pat: Wavelet Radiosity. In: Commununications ACM, 1993 WSI-GRIS: GraphicalDevice: http: // www. gris. uni-tuebingen. de/ edu/ projects/ grdev/ doc/ html/ Overview. html, Zugriff: Abbildung: Visualisierung von Progressive-Refinement-Radiosity http: // www. gris. uni-tuebingen. de/ edu/ projects/ grdev/ applets/ progressiverefinement/ html/ index. html, Zugriff: [WSIP2] Abbildung: Interaktive Visualisierung von Progressive-Refinement- Radiosity http: // www. gris. uni-tuebingen. de/ edu/ projects/ grdev/ applets/ radio3d/ html/ index. html, Zugriff:

90 A Anhang A.1 LernBar-Kurs Auf den nachfogelnden Seiten ist der gesamte LernBar-Kurs als Pdf-Export abgebildet. 81

91 A.1 LernBar-Kurs 1 von 33 Radiosity /Kurs-Einleitung/Seiten/Kurs-Einleitung 2 von 33 Radiosity /Radiosity - Einleitung/Seiten/Radiosity - Einleitung 82

92 A.1 LernBar-Kurs 3 von 33 Radiosity /Radiosity - Einleitung/Seiten/Radiosity - Einleitung 4 von 33 Radiosity /Radiosity - Einleitung/Seiten/Formfaktoren 83

93 A.1 LernBar-Kurs 5 von 33 Radiosity /Radiosity - Einleitung/Seiten/Frage 1 6 von 33 Radiosity /Radiosity - Einleitung/Seiten/Frage 2 84

94 A.1 LernBar-Kurs 7 von 33 Radiosity /Radiosity - Einleitung/Seiten/Frage 3 8 von 33 Radiosity /Radiosity - Einleitung/Seiten/Frage 4 85

95 A.1 LernBar-Kurs 9 von 33 Radiosity /Radiosity - Einleitung/Seiten/Frage 5 10 von 33 Radiosity /Radiosity - Einleitung/Seiten/Frage 6 86

96 A.1 LernBar-Kurs 11 von 33 Radiosity /Bedienungsanleitung/Seiten/Bedienungsanleitung 12 von 33 Radiosity /Bedienungsanleitung/Seiten/Bedienungsanleitung 87

97 A.1 LernBar-Kurs 13 von 33 Radiosity /Initialisierung/Seiten/Initialisierung 14 von 33 Radiosity /Initialisierung/Seiten/Frage 7 88

98 A.1 LernBar-Kurs 15 von 33 Radiosity /Progressive Refinement/Seiten/Progressive Refinement 16 von 33 Radiosity /Progressive Refinement/Seiten/Progressive Refinement 89

99 A.1 LernBar-Kurs 17 von 33 Radiosity /Progressive Refinement/Seiten/Frage 8 18 von 33 Radiosity /Progressive Refinement/Seiten/Frage 9 90

100 A.1 LernBar-Kurs 19 von 33 Radiosity /Laufzeit- und Speicherplatzkomplexität/Seiten/Laufzeit- und Speicherplatzkomplexität 20 von 33 Radiosity /Laufzeit- und Speicherplatzkomplexität/Seiten/Laufzeit- und Speicherplatzkomplexität 91

101 A.1 LernBar-Kurs 21 von 33 Radiosity /Laufzeit- und Speicherplatzkomplexität/Seiten/Frage von 33 Radiosity /Laufzeit- und Speicherplatzkomplexität/Seiten/Frage 11 92

102 A.1 LernBar-Kurs 23 von 33 Radiosity /Der Hemi-Cube/Seiten/Der Hemi-Cube 24 von 33 Radiosity /Der Hemi-Cube/Seiten/Der Hemi-Cube 93

103 A.1 LernBar-Kurs 25 von 33 Radiosity /Der Hemi-Cube/Seiten/Der Hemi-Cube 26 von 33 Radiosity /Der Hemi-Cube/Seiten/Frage 12 94

104 A.1 LernBar-Kurs 27 von 33 Radiosity /Der Hemi-Cube/Seiten/Frage von 33 Radiosity /Projektion auf den Hemi-Cube/Seiten/Projektion auf den Hemi-Cube 95

105 A.1 LernBar-Kurs 29 von 33 Radiosity /Schlusswort/Seiten/Frage von 33 Radiosity /Schlusswort/Seiten/Frage 15 96

106 A.1 LernBar-Kurs 31 von 33 Radiosity /Schlusswort/Seiten/Frage von 33 Radiosity /Schlusswort/Seiten/Schlusswort 97

107 A.1 LernBar-Kurs 33 von 33 Radiosity /Schlusswort/Seiten/Auswertung 98

Visuelle Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen

Visuelle Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen Visuelle Simulation eines Radiosity Algorithmus und ihre Anwendung in Lernprozessen Abschlussvortrag zur Diplomarbeit von Jörg Karpf Graphische Datenverarbeitung, Institut für Informatik 3. September 2009

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar Workshop: Einführung in die 3D-Computergrafik Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar 1 Organisatorisches Tagesablauf: Vormittags: Theoretische Grundlagen Nachmittags: Bearbeitung

Mehr

C# Programm: Raytracer (3D Renderer)

C# Programm: Raytracer (3D Renderer) C# Programm: Raytracer (3D Renderer) Hiermit verbrachten wir die letzte Einheit in C# des Informatikunterrichtes. Dieser Raytracer ist ein Programm, das nur mit wenigen Informationen über einen Raum, der

Mehr

Diplomarbeit. Entwurf eines generischen Prozessleitstandes für Change Request Systeme

Diplomarbeit. Entwurf eines generischen Prozessleitstandes für Change Request Systeme Fakultät für Mathematik, Informatik und Naturwissenschaften Forschungsgruppe Softwarekonstruktion Diplomarbeit Entwurf eines generischen Prozessleitstandes für Change Request Systeme Development of a Generic

Mehr

- 3D Modelling & Renderer -

- 3D Modelling & Renderer - Referat zum Thema: Darstellung virtueller Welten - 3D Modelling & Renderer - Gruppe 3: Schilberg, Pfost, Möhle, Mertens Jan Möhle CAD-Programme 1 Begriff Rendern Darstellung virtueller Welten Rendern (von

Mehr

Rendering Grundlagen Autodesk Maya. Grundlagen. Version 1.0-2009-04-08. 2009 Ingo Clemens brave rabbit www.braverabbit.de

Rendering Grundlagen Autodesk Maya. Grundlagen. Version 1.0-2009-04-08. 2009 Ingo Clemens brave rabbit www.braverabbit.de Rendering Grundlagen Version 1.0-2009-04-08 Allgemeine Unterschiede bei Renderern Scanline Rendering Raytrace Rendering Renderlayer Einsatz von Renderlayern Overrides Material Overrides Layer Presets Batch

Mehr

Prüfungsprotokoll Computergrafik 1 und 2 (1692 & 1693) Prüfer: M. Felten von: Lindig Florian. Dauer: 30 min jeweils. Note: 1.

Prüfungsprotokoll Computergrafik 1 und 2 (1692 & 1693) Prüfer: M. Felten von: Lindig Florian. Dauer: 30 min jeweils. Note: 1. Prüfungsprotokoll Computergrafik 1 und 2 (1692 & 1693) Prüfer: M. Felten von: Lindig Florian Dauer: 30 min jeweils Note: 1.0 jeweils Alles in allem eine lockere Atmosphäre, man bekommt genug Papier und

Mehr

Raytracing. Schlussbericht. Jonas Lauener 1995, Áedán Christie 1997 Melvin Ott 1997, Timon Stampfli 1997

Raytracing. Schlussbericht. Jonas Lauener 1995, Áedán Christie 1997 Melvin Ott 1997, Timon Stampfli 1997 Raytracing Schlussbericht Jonas Lauener 1995, Áedán Christie 1997 Melvin Ott 1997, Timon Stampfli 1997 bei Betreuer Marco Manzi, Institut für Informatik und angewandte Mathematik Inhalt Fragestellung...

Mehr

Workflow Systeme mit der Windows Workflow Foundation

Workflow Systeme mit der Windows Workflow Foundation Studiengang Electronic Business (EB) Diplomarbeit (280000) Workflow Systeme mit der Windows Workflow Foundation externe Betreuung durch Christoph Müller vorgelegt bei Prof. Dr. Michael Gröschel von Hans-Martin

Mehr

Numerisches Programmieren

Numerisches Programmieren Technische Universität München SS 2012 Institut für Informatik Prof Dr Thomas Huckle Dipl-Inf Christoph Riesinger Dipl-Math Alexander Breuer Dipl-Math Dipl-Inf Jürgen Bräckle Dr-Ing Markus Kowarschik Numerisches

Mehr

Global Illumination Globale Beleuchtung

Global Illumination Globale Beleuchtung Global Illumination Globale Beleuchtung 1 Reale Szenen = komplexe Lichtsituation Licht & Schatten Reflexionen Colorbleeding Kaustiken, Nebel, http://gurneyjourney.blogspot.com/ 2 Walter Zatta 3 SATtva

Mehr

Referate-Seminar zur Wirtschaftsinformatik WS 05/06. Thema 1: E-Learning Definition und Begriffsabgrenzung

Referate-Seminar zur Wirtschaftsinformatik WS 05/06. Thema 1: E-Learning Definition und Begriffsabgrenzung Referate-Seminar zur Wirtschaftsinformatik WS 05/06 E-Learning am Fachbereich Wirtschaftswissenschaften der JLU Gießen: Theorie und praktische Umsetzung Thema 1: E-Learning Definition und Begriffsabgrenzung

Mehr

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit Direct 3D-Output für ein Rendering Framework von Benjamin Betting unter der Betreuung von Daniel Schiffner 1 Gliederung Kapitel I und II: Motivation,Einführung,Grundlagen

Mehr

3D rendering. Introduction and interesting algorithms. PHP Usergroup Dortmund, Dortmund, 2006-12-14. Kore Nordmann

3D rendering. Introduction and interesting algorithms. PHP Usergroup Dortmund, Dortmund, 2006-12-14. Kore Nordmann <kore@php.net> 3D rendering Introduction and interesting algorithms PHP Usergroup Dortmund, Dortmund, 2006-12-14 Kore Nordmann Speaker Kore Nordmann Studies computer science at the University Dortmund

Mehr

Bilddateien. Für die Speicherung von Bilddaten existieren zwei grundsätzlich unterschiedliche Verfahren. Bilder können als

Bilddateien. Für die Speicherung von Bilddaten existieren zwei grundsätzlich unterschiedliche Verfahren. Bilder können als Computerdateien Alle Dateien auf dem Computer, egal ob nun Zeichen (Text), Bilder, Töne, Filme etc abgespeichert wurden, enthalten nur eine Folge von Binärdaten, also Nullen und Einsen. Damit die eigentliche

Mehr

A) Durchsuchen von Datenbanken im Internet durch Endnote

A) Durchsuchen von Datenbanken im Internet durch Endnote EINLEITUNG/ANWEISUNGEN ZU DIESEM TEXT Wir werden die obere Liste (File/ Edit usw.) benutzen, obwohl die meisten Funktionen auch möglich mit rechtem Mausklick, mit Kombinationen der Tastatur oder mit den

Mehr

Integration von Wikis in bestehende E-Learning-Netzwerke. "Wikis im elearning" Hessisches elearning-fachforum am 10.11.08 Sarah Voß, David Weiß

Integration von Wikis in bestehende E-Learning-Netzwerke. Wikis im elearning Hessisches elearning-fachforum am 10.11.08 Sarah Voß, David Weiß Integration von Wikis in bestehende E-Learning-Netzwerke "Wikis im elearning" Hessisches elearning-fachforum am 10.11.08 Sarah Voß, David Weiß megadigitale -Experimentierstube- technische Planung, Konzeption,

Mehr

4. Kapitel 3D Engine Geometry

4. Kapitel 3D Engine Geometry 15.11.2007 Mathematics for 3D Game Programming & Computer Graphics 4. Kapitel 3D Engine Geometry Anne Adams & Katharina Schmitt Universität Trier Fachbereich IV Proseminar Numerik Wintersemester 2007/08

Mehr

Thema. Aufgabenstellung. Fachpraktikum Visualisierung und interaktive Systeme WS 2011. Aufgabe 5: 3D-Tetris. 3D - Tetris.

Thema. Aufgabenstellung. Fachpraktikum Visualisierung und interaktive Systeme WS 2011. Aufgabe 5: 3D-Tetris. 3D - Tetris. Fachpraktikum Visualisierung und interaktive Systeme WS 2011 Aufgabe 5: 3D-Tetris Thema 3D - Tetris. Aufgabenstellung Die Aufgabe ist, ein Drei-Dimensionales Tetrisspiel zu konstruieren. Es werden zufällig

Mehr

CREATIVE PROGRAMMING TOOLKITS

CREATIVE PROGRAMMING TOOLKITS CREATIVE PROGRAMMING TOOLKITS Unter Creative Programming Toolkits verstehen wir Software-Teile welche uns helfen vielfältige Medien-kunst zu erstellen. Viele dieser Werkzeuge wurden durch Künstler für

Mehr

Foto und Grafik. Arbeitsheft für den Informatikunterricht. Fotos, Pixel und Vektoren sowie Bildbearbeitung am PC. Name. ... Klasse ...

Foto und Grafik. Arbeitsheft für den Informatikunterricht. Fotos, Pixel und Vektoren sowie Bildbearbeitung am PC. Name. ... Klasse ... Foto und Grafik Arbeitsheft für den Informatikunterricht Fotos, Pixel und Vektoren sowie Bildbearbeitung am PC Name... Klasse... Ausgabe 2011 Redaktion N. Braun, Fachlehrer ICT & Medien Internet: www.jumpcuts.ch

Mehr

Lernen mit System. www.creos.de/pomme

Lernen mit System. www.creos.de/pomme Lernen mit System www.creos.de/pomme lernen. üben. prüfen. Creos POMME Lernen mit System Die Creos POMME ist das ideale Lern-Managementsystem (LMS) für Schulungen, Unterweisungen und das selbstständige

Mehr

Content Management Systeme

Content Management Systeme Content Management Systeme Ein Vergleich unter besonderer Berücksichtigung von CoreMedia und TYPO3 Bachelorthesis im Kooperativen Bachelor Studiengang Informatik (KoSI) der Fachhochschule Darmstadt University

Mehr

Wiederholung und Themenbereiche der Klausur im Fach Autorensysteme 2

Wiederholung und Themenbereiche der Klausur im Fach Autorensysteme 2 Wiederholung und Themenbereiche der Klausur im Fach Autorensysteme 2 Termin: Do, 14.07. 10:00-12:00 Raum B101 Erlaubte Unterlagen: ActionScript-Lexikon Es kommen nur Inhalte vor, die in der Vorlesung durchgenommen

Mehr

LEARNING Jedes Unternehmen verfügt über das unschätzbare Kapital des Mitarbeiterwissens. Erweitern und sichern Sie dieses Wissen nachhaltig.

LEARNING Jedes Unternehmen verfügt über das unschätzbare Kapital des Mitarbeiterwissens. Erweitern und sichern Sie dieses Wissen nachhaltig. LEARNING Jedes Unternehmen verfügt über das unschätzbare Kapital des Mitarbeiterwissens. Erweitern und sichern Sie dieses Wissen nachhaltig. Nutzen Sie dabei unsere Kompetenz für Ihre Mitarbeiter! Was

Mehr

http://www.nvu-composer.de

http://www.nvu-composer.de Kapitel 16 Seite 1 Ein portabler Web-Editor Wer viel Zeit in eine Website investieren will ist gut beraten, eine professionelle Software für Webdesigner zu beschaffen. Diese Programme sind sehr leistungsfähig,

Mehr

Schulung Open CMS Editor

Schulung Open CMS Editor Schulung Open CMS Editor Um Ihr Projekt im OpenCMS zu bearbeiten brauchen Sie lediglich einen Webbrowser, am besten Firefox. Vorgehensweise beim Einrichten Ihrer Site im OpenCMS Erste Schritte Wenn Sie

Mehr

Erste Schritte mit HG 2

Erste Schritte mit HG 2 Erste Schritte mit HG 2 Malte Ried FH-Gießen Version: 1.0 21. November 2003 Inhaltsverzeichnis 1 Einführung 2 2 Allgemeines 2 2.1 Koordinaten...................................... 2 2.2 Farben.........................................

Mehr

3D Grafik mit TrueSpace 5. Crashkurs März 2013. März 2013 Einführung in die 3D-Bearbeitung - 2012 Frank Kaden 1/26

3D Grafik mit TrueSpace 5. Crashkurs März 2013. März 2013 Einführung in die 3D-Bearbeitung - 2012 Frank Kaden 1/26 3D Grafik mit TrueSpace 5 Crashkurs März 2013 März 2013 Einführung in die 3D-Bearbeitung - 2012 Frank Kaden 1/26 3D Grafik mit TrueSpace dreidimensionales Visualisierungs-, Modellier-, Animationsprogramm

Mehr

Färben, texturieren und rendern in Solid Edge

Färben, texturieren und rendern in Solid Edge Färben, texturieren und rendern in Solid Edge Man kann den Objekten in Solid Edge Farben geben, transparent oder opak und Texturen. Das sind Bilder die auf die Oberflächen aufgelegt werden. Dabei bekommt

Mehr

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Björn Burow SE Mustererkennung in Bildern und 3D-Daten Lehrstuhl Graphische Systeme BTU Cottbus Inhaltsübersicht

Mehr

KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website

KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website Inhalt Inhalt... 1 1. Anmelden beim Kompetenzmanager... 3 2. Erstellen eines neuen Kompetenzprofils... 4 2.1. Wizard

Mehr

Installationsanleitung

Installationsanleitung Installationsanleitung Dieses Werk ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung der OutStart E-Learning GmbH unzulässig und

Mehr

Linear Workflow. Linear Workflow. Version 1.0-2011-10-11

Linear Workflow. Linear Workflow. Version 1.0-2011-10-11 Version 1.0-2011-10-11 Verfahren, Bilder unter Rücksichtnahme ihres Farbprofils und der des Ausgabegeräts zu berechnen (3D), bzw. zu bearbeiten (Compositing), um eine mathematisch und physikalisch korrekte

Mehr

PRODUKTION UND GESTALTUNG INTERAKTIVER MEDIEN

PRODUKTION UND GESTALTUNG INTERAKTIVER MEDIEN PRODUKTION UND GESTALTUNG INTERAKTIVER MEDIEN 1) Einführung in Photoshop Rebecca Rottensteiner, B.A. Photoshop Allgemein Dateiformate Design in Photoshop umsetzten Besprechung Konzepte Webschriftarten

Mehr

Administration Gruppen (Institution)

Administration Gruppen (Institution) Administration Gruppen (Institution) Kurzanleitung für den Moderator (mit Administrationsrechten) (1) Loggen Sie sich ein und klicken Sie auf den Reiter Institution. (2) Wählen Sie rechts oben über die

Mehr

Integration der Experience API in Autorensysteme für Web Based Trainings

Integration der Experience API in Autorensysteme für Web Based Trainings Patrick Sacher Integration der Experience API in Autorensysteme für Web Based Trainings Abschlussvortrag Diplomarbeit Betreuer: Prof. Detlef Krömker, David Weiß Integration der Experience API in Autorensysteme

Mehr

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python. 1.3 Aufbau des Buchs lichkeiten offen. Auf die Unterschiede der beiden Versionen gehe ich besonders ein, sodass ein späterer Umstieg von der einen zur anderen Version leichtfällt. Erste Zusammenhänge werden

Mehr

Webseiten mit HTML. Visual QuickProject Guide. von Elizabeth Castro

Webseiten mit HTML. Visual QuickProject Guide. von Elizabeth Castro Webseiten mit HTML Visual QuickProject Guide von Elizabeth Castro Der Ihnen vorliegende Visual QuickProject Guide langweilt nicht mit Theorie und umständlichen Erklärungen, sondern nutzt große Farbabbildungen

Mehr

Computer Graphics Gerätetechnik, Programmierung und Anwendung graphischer Systeme

Computer Graphics Gerätetechnik, Programmierung und Anwendung graphischer Systeme Computer Graphics Gerätetechnik, Programmierung und Anwendung graphischer Systeme Von Prof. Dr.-Ing. Jose Encarnacäo Prof. Dr.-Ing. Wolfgang Straßer, Technische Hochschule Darmstadt, Fachbereich Informatik

Mehr

NX für die digitale Produktentwicklung:

NX für die digitale Produktentwicklung: StS.fact sheet NX Virtual Studio NX für die digitale Produktentwicklung: Als vollständige Lösung für die digitale Produktentwicklung bietet die NX Software integrierte und technologisch führende Funktionen

Mehr

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit IT-basierte Erstellung von Nachhaltigkeitsberichten Diplomarbeit zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen Fakultät der Leibniz Universität Hannover vorgelegt von

Mehr

Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt 3

Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt 3 Ludwig-Maximilians-Universität München Institut für Informatik Lehrstuhl für Mobile und Verteilte Systeme Prof. Dr. Claudia Linnhoff-Popien Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt

Mehr

Die Rotations - Chire Projektdokumentation

Die Rotations - Chire Projektdokumentation Die Rotations - Chire Projektdokumentation Matthias Wul, Stephan Naterski 19. Juni 2008 Inhaltsverzeichnis 1 Geschichtliche Hintergründe 3 1.1 Die Transpositions-Chire........................... 3 1.1.1

Mehr

Vier Gewinnt Nicolas Schmidt Matthias Dietsche Bernhard Weiß Benjamin Ruile Datum: 17.2.2009 Tutor: Prof. Schottenloher Spieltheorie

Vier Gewinnt Nicolas Schmidt Matthias Dietsche Bernhard Weiß Benjamin Ruile Datum: 17.2.2009 Tutor: Prof. Schottenloher Spieltheorie Vier Gewinnt Nicolas Schmidt Matthias Dietsche Bernhard Weiß Benjamin Ruile Datum: 17.2.2009 Tutor: Prof. Schottenloher Spieltheorie Präsentation Agenda I. Einführung 1. Motivation 2. Das Spiel Vier Gewinnt

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Digitale Bildverarbeitung Einheit 12 3D-Rekonstruktion

Digitale Bildverarbeitung Einheit 12 3D-Rekonstruktion Digitale Bildverarbeitung Einheit 12 3D-Rekonstruktion Lehrauftrag SS 2008 Fachbereich M+I der FH-Offenburg Dr. Bernard Haasdonk Albert-Ludwigs-Universität Freiburg Ziele der Einheit Einen Eindruck davon

Mehr

Unterrichtsinhalte Informatik

Unterrichtsinhalte Informatik Unterrichtsinhalte Informatik Klasse 7 Einführung in die Arbeit mit dem Computer Was ist Informatik? Anwendungsbereiche der Informatik Was macht ein Computer? Hardware/Software Dateiverwaltung/Dateien

Mehr

Technische Universität München Medienzentrum. exelearning. - Erste Schritte zur Lernmodulerstellung -

Technische Universität München Medienzentrum. exelearning. - Erste Schritte zur Lernmodulerstellung - Technische Universität München Medienzentrum exelearning - Erste Schritte zur Lernmodulerstellung - Verfasser: Dr. Matthias Baume Stand: 25.08.2009 1 Inhalt 1. exe-learning zur Entwicklung von Lernmodulen

Mehr

Das Open Source CMS. Gregor Walter. gw@madgeniuses.net info@i-working.de

Das Open Source CMS. Gregor Walter. gw@madgeniuses.net info@i-working.de Das Open Source CMS Gregor Walter gw@madgeniuses.net info@i-working.de Übersicht Einführung und Geschichte von TYPO3 TYPO3 Features Für Webdesigner Für Redakteure TYPO3 Live - am Beispiel fiwm.de Seite

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Programmiersprachen und Programmierkonzepte

Programmiersprachen und Programmierkonzepte Programmiersprachen und Programmierkonzepte Inhalt Programmiersprachen- Entwicklung Programmiersprachen und Programmierparadigmen Die Geschichte der Programmiersprachen Anfänge vor 200 Jahren Programmierbare

Mehr

Script-Sprache für UPT und MKT-View II / III / IV. Einleitung, Anwendungsfälle, Programmierung. MKT Systemtechnik

Script-Sprache für UPT und MKT-View II / III / IV. Einleitung, Anwendungsfälle, Programmierung. MKT Systemtechnik Einleitung, Anwendungsfälle, Programmierung MKT Systemtechnik Autor: Stand: Ablage: Wolfgang Büscher Dipl.-Ing. Soft- und Hardware-Entwicklung buescher@mkt-sys.de 2015-01-21 (JJJJ-MM-DD) art85133_einfuehrung_mktview_scriptsprache.odp/pdf;

Mehr

Vorbereitung der Bauteil-Abgabe mit netfabb Studio Basic

Vorbereitung der Bauteil-Abgabe mit netfabb Studio Basic TUTORIAL BAUTEIL REPARATUR Vorbereitung der Bauteil-Abgabe mit netfabb Studio Basic Stand 10/2010 netfabb Studio Basic Version 4.6.0 Vorwort Die STL-Schnittstelle (Standard Triangulation Language) oder

Mehr

Gliederung. Motivation Das Projekt Kooperation Infrastruktur E-Learning Videokonferenz Technik Videokonferenz Einsatz Ausblick

Gliederung. Motivation Das Projekt Kooperation Infrastruktur E-Learning Videokonferenz Technik Videokonferenz Einsatz Ausblick Gliederung Motivation Das Projekt Kooperation Infrastruktur E-Learning Videokonferenz Technik Videokonferenz Einsatz Ausblick 1 Motivation Schiffs- und Meerestechnik Industrie Globaler Markt Internationaler

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Medienkompetenz, Grafik und DTP

Medienkompetenz, Grafik und DTP VO 340381 Informationsdesign; Medienkompetenz, Grafik und DTP Zentrum für Translationswissenschaft Letztes Mal sprachen wir über: Computer Aufbau Software Was ist Software? Software Soft im Sinne von weich/veränderbar

Mehr

BWL-ONLINE. Die Grundlagen der Betriebswirtschaft im Internet

BWL-ONLINE. Die Grundlagen der Betriebswirtschaft im Internet BWL-ONLINE Die Grundlagen der Betriebswirtschaft im Internet WISSEN auf KNOPFDRUCK VERSCHIEDENE LERNWEGE FÜR UNTERSCHIEDLICHE ANWENDER SPIELERISCH DIE WELT DER BETRIEBSWIRTSCHAFT ERKUNDEN Betriebswirtschaftliche

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Computergrafik Bilder, Grafiken, Zeichnungen etc., die mithilfe von Computern hergestellt oder bearbeitet werden, bezeichnet man allgemein als Computergrafiken. Früher wurde streng zwischen Computergrafik

Mehr

Photon Mapping. Proseminar How to make a P I X A R movie. Inhaltsverzeichnis. Andreas Schmidt 2011

Photon Mapping. Proseminar How to make a P I X A R movie. Inhaltsverzeichnis. Andreas Schmidt 2011 Photon Mapping Proseminar How to make a P I X A R movie Andreas Schmidt 2011 Inhaltsverzeichnis Zusammenfassung...2 Motivation...2 Photon Tracing Pass...3 Aussenden der Photonen...3 Russisches Roulette...3

Mehr

Webinar: Einführung in Technik und Didaktik des E-Learning 09.11.2010

Webinar: Einführung in Technik und Didaktik des E-Learning 09.11.2010 Webinar: Einführung in Technik und Didaktik des E-Learning 09.11.2010 Geschäftsführer Carrot Business Solutions www.carrot-solutions.de info@carrot-solutions.de +49 6221 7517252 Agenda Was ist E-Learning?

Mehr

Wissenschaftliches Arbeiten mit dem Programm Microsoft Word

Wissenschaftliches Arbeiten mit dem Programm Microsoft Word Wissenschaftliches Arbeiten mit dem Programm Microsoft Word Ein Leitfaden und Ratgeber für Studierende der Hochschule Fulda des Fachbereichs Sozialwesen Inhaltsverzeichnis VORWORT... 1 1. EINRICHTEN DES

Mehr

Open Source Learning Management Systeme (am Beispiel Moodle)

Open Source Learning Management Systeme (am Beispiel Moodle) Open Source Learning Management Systeme (am Beispiel Moodle) Dr. Oliver Wittenburg OSTC GmbH 15. März 2005 Wittenburg (OSTC GmbH) Moodle 15. März 2005 1 / 30 Gliederung 1 Die Herausforderung: Lernen Veränderung

Mehr

Explain ist eine Präsentationsagentur

Explain ist eine Präsentationsagentur Explain ist eine Präsentationsagentur In einer hochkomplexen Welt unterstützen wir Unternehmen sich wirkungsvoll zu erklären. Wir gestalten Audio-Visuelle Lerneinheiten (elearnings), damit Sie Ihre Schulungsinhalte

Mehr

Erste Schritte mit Elvis 3 ein Beispielprojekt

Erste Schritte mit Elvis 3 ein Beispielprojekt Erste Schritte mit Elvis 3 ein Beispielprojekt Um Sie mit Elvis 3 vertraut zu machen möchten wir mit Ihnen mit diesem Kapitel ein Beispielprojekt vom ersten Aufruf von Elvis 3 bis zum Testlauf aufbauen.

Mehr

WIRIS quizzes Datenbank, Mathematik für Moodle Quiz

WIRIS quizzes Datenbank, Mathematik für Moodle Quiz WIRIS quizzes Datenbank, Mathematik für Moodle Quiz Carles Aguiló Maths for More WIRIS quizzes verbessert die Funktionalität von Moodle Quiz in der Mathematik und in anderen wissenschaftlichen Themengebieten.

Mehr

Windows-Sidebar Minianwendung (Gadget) Sonne und Mond

Windows-Sidebar Minianwendung (Gadget) Sonne und Mond Windows-Sidebar Minianwendung (Gadget) Sonne und Mond Version 1.2 14. September 2008 Autor: Peter Scharf 2008 Inhalt Allgemeines... 3 Rechtliches... 3 Installieren der Minianwendung... 4 Deinstallieren

Mehr

SCRIBUS WORKSHOP Handout Gimp

SCRIBUS WORKSHOP Handout Gimp SCRIBUS WORKSHOP Handout Gimp 1 Ziele des Workshops Was ist Gimp? Was kann ich mit Gimp machen? Wie erstelle ich ein Bild für Scribus? Wie erstelle ich eine Vektorgrafik für Scribus? Varia? 2 Was ist Gimp?

Mehr

Proseminar Website-Managment-Systeme Thema: NetObjects Fusion

Proseminar Website-Managment-Systeme Thema: NetObjects Fusion Proseminar Website-Managment-Systeme Thema: NetObjects Fusion Vortragender: Christoph Feller Inhaltsverzeichnis 1 Übersicht... 2 2 Komponenten... 2 2.1 Übersicht:... 2 2.2 Beschreibung der einzelnen Komponenten...

Mehr

3 Anwendungsarchitektur und Entwicklungsumgebung

3 Anwendungsarchitektur und Entwicklungsumgebung 21 3 Anwendungsarchitektur und Bei den Entwicklern von Web-basierten Dialogsystemen hat sich im Laufe der Zeit eine Vorgehensweise im Design von Anwendungen entwickelt, dies es ermöglicht, flexible Web-Dialoge

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer. Beitrag von Peter Küsters. Spiegelung. Archiv. Bild 1: Unterschied zwischen FTP und Spiegelung

2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer. Beitrag von Peter Küsters. Spiegelung. Archiv. Bild 1: Unterschied zwischen FTP und Spiegelung 2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer Beitrag von Peter Küsters Formen des Datentransfers bei der Erfassung von Websites Im folgenden werden Methoden und Software zur Erfassung vorgestellt.

Mehr

Browserbasiertes, kollaboratives Whiteboard

Browserbasiertes, kollaboratives Whiteboard WS 2011/12 Bachelorarbeit Browserbasiertes, kollaboratives Whiteboard Sebastian Dorn 1 von 21 Inhalt 1. Motivation 2. Analyse 3. Design 4. Evaluation 5. Fazit Inhalt 2 von 21 Motivation Zusammenarbeit

Mehr

INHALT. Danksagung... Einleitung... 1 Projekt: Einfache Formen herstellen... 1. 2 Mit der Konsole herumspielen und feststellen, was kaputt ist...

INHALT. Danksagung... Einleitung... 1 Projekt: Einfache Formen herstellen... 1. 2 Mit der Konsole herumspielen und feststellen, was kaputt ist... INHALT Danksagung................................... Einleitung.................................... IX XI 1 Projekt: Einfache Formen herstellen.................. 1 Programmieren mit dem ICE Code Editor................................

Mehr

Das SR4 bietet eine Reihe von Verbesserung und behebt kleinere bekannte Probleme aus den Bereichen:

Das SR4 bietet eine Reihe von Verbesserung und behebt kleinere bekannte Probleme aus den Bereichen: Smith Micro Software, Inc. und das Poser-Team freuen sich mitteilen zu dürfen, dass das Poser Pro 2014 Service Release 4 (SR4) ab sofort für Mac OS X und Windows verfügbar ist. Das SR4 wird ihre Poser-Vollversion

Mehr

1 Ausgangssituation. Mathematik begreifen mit GeoGebra für Tablets

1 Ausgangssituation. Mathematik begreifen mit GeoGebra für Tablets Mathematik begreifen mit GeoGebra für Tablets Markus Hohenwarter, Barbara Kimeswenger Institut für Didaktik der Mathematik JKU Linz Altenbergerstr 69 4040 Linz markus.hohenwarter@jku.at barbara.kimeswenger@jku.at

Mehr

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching 1.1 Caching von Webanwendungen In den vergangenen Jahren hat sich das Webumfeld sehr verändert. Nicht nur eine zunehmend größere Zahl an Benutzern sondern auch die Anforderungen in Bezug auf dynamischere

Mehr

Anwendung eines adaptiven Tutorensystems für die universitäre Ausbildung

Anwendung eines adaptiven Tutorensystems für die universitäre Ausbildung Anwendung eines adaptiven Tutorensystems für die universitäre Ausbildung 1) Montanuniversität Leoben Institut für Gesteinshüttenkunde Peter-Tunner-Straße 5 A-8700 Leoben H. Sandtner 1) und H. Harmuth 1)

Mehr

Anleitung zum Applet Schiefer Wurf

Anleitung zum Applet Schiefer Wurf Anleitung zum Applet: Schiefer Wurf 1 Anleitung zum Applet Schiefer Wurf Bearbeitung von: Mathias Hartner SS 2009 Studiengang: Elektronik und Informationstechnik Betreuung durch: Prof. Dr. Wilhelm Kleppmann

Mehr

Software Engineering Projekt (SEP) mit ROBOCODE

Software Engineering Projekt (SEP) mit ROBOCODE Software Engineering Projekt (SEP) mit ROBOCODE Klaus Knopper Stand: 2014 http://robocode.sourceforge.net/ Kurzbeschreibung Es wird mit den Methoden des Software Engineering in Teamarbeit

Mehr

Projektthema: Modul Programmiersprachen (Java)

Projektthema: Modul Programmiersprachen (Java) Projektthema: Modul Programmiersprachen (Java) Thema: Fliegender Ball Entwickeln Sie ein Java- Programm mit dem Namen FliegenderBall. Dieses zeigt einen Ball, der sich über die Bildfläche bewegt und an

Mehr

Eine Vervielfältigung auch von Auszügen in jeglicher Weise bedarf der vorherigen ausdrücklichen Genehmigung von der Comitas AG.

Eine Vervielfältigung auch von Auszügen in jeglicher Weise bedarf der vorherigen ausdrücklichen Genehmigung von der Comitas AG. 1 Impressum 1998 2015 Comitas AG Schweiz. Alle Rechte vorbehalten. Whitepaper, 1. Auflage, 2015. Eine Vervielfältigung auch von Auszügen in jeglicher Weise bedarf der vorherigen ausdrücklichen Genehmigung

Mehr

- 1 - LOGION CMS. MedienService Ladewig

- 1 - LOGION CMS. MedienService Ladewig - 1 - LOGION CMS MedienService Ladewig - 2 - Administration Einführung: Warum Online Redaktion einfach sein kann... Wer Informationen aufbereitet und verteilt, steht mit den Mitteln moderner Informationstechnologie

Mehr

Das Studiengangsinformationssystem (SGIS)

Das Studiengangsinformationssystem (SGIS) Das Studiengangsinformationssystem (SGIS) Manual für Typo3-Redakteure Version 1.a Mai 2015 Kontakt: Referat 1.4 - Allgemeine Studienberatung und Career Service Christian Birringer, christian.birringer@uni-rostock.de

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Employment and Salary Verification in the Internet (PA-PA-US)

Employment and Salary Verification in the Internet (PA-PA-US) Employment and Salary Verification in the Internet (PA-PA-US) HELP.PYUS Release 4.6C Employment and Salary Verification in the Internet (PA-PA-US SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten.

Mehr

Programmieren? Das kann ich auch! Bau dir deinen eigenen Bildschirmschoner

Programmieren? Das kann ich auch! Bau dir deinen eigenen Bildschirmschoner Programmieren? Das kann ich auch! Bau dir deinen eigenen Bildschirmschoner Christiane Taras Institut für Visualisierung und interaktive Systeme Universität Stuttgart GEFÖRDERT VON AKTIONSPARTNER Vorstellungsrunde

Mehr

TYPO3-REDAKTEURSHANDBUCH

TYPO3-REDAKTEURSHANDBUCH TYPO3-REDAKTEURSHANDBUCH Erstellung von Webseiten mit dem TYPO3-CMS der HHU Düsseldorf ZIM Zentrum für Informations- und Medientechnologie ZIM - TYPO3-Team HHU Düsseldorf Ansprechpartner ZIM Dr. Sebastian

Mehr

Tabellenkalkulation / Funktionen. VBA Visual Basic for Applications VBA auf einfache Art und Weise nutzen Der Makro-Recorder von EXCEL

Tabellenkalkulation / Funktionen. VBA Visual Basic for Applications VBA auf einfache Art und Weise nutzen Der Makro-Recorder von EXCEL Tabellenkalkulation / Funktionen VBA auf einfache Art und Weise nutzen Der Makro-Recorder von EXCEL Möchte man mal eben einfache Arbeitsschritte automatisieren oder einfach nur Tastatur-eingaben und Mausklicks

Mehr

UX DESIGN. Kapitel 14 - creating useful persona profiles. Kapitel 15 - designing usable information architectures

UX DESIGN. Kapitel 14 - creating useful persona profiles. Kapitel 15 - designing usable information architectures UX DESIGN Kapitel 14 - creating useful persona profiles Kapitel 15 - designing usable information architectures Kapitel 16 - using sketching to generate and communicate ideas Lukas Christiansen, Martin

Mehr

Komprimieren von Bildern

Komprimieren von Bildern Komprimieren von Bildern Weshalb komprimiert man Bilder? Internet-Browser können lediglich eine begrenzte Zahl von Bilddateien lesen: Dies sind die Formate.gif,.jpg und.png. Man kann Bilder jedoch in einer

Mehr

Fotobasierte Punktwolken eigener Modelle in Revit platzieren

Fotobasierte Punktwolken eigener Modelle in Revit platzieren Fotobasierte Punktwolken eigener Modelle in Revit platzieren Objekte, die Sie physikalisch besitzen, Elemente, die Sie draussen auf der Strasse sehen - oder vielleicht sogar sich selbst als 3D Modell in

Mehr

Allgemeine Informationen zu Access und Tabellen

Allgemeine Informationen zu Access und Tabellen E-Learning am Fachbereich Wirtschaftswissenschaften der JLU Gießen: Theorie und praktische Umsetzung Praktische Implementierung des Learning Objects Allgemeine Informationen zu Access und Tabellen Referateseminar

Mehr

Collaborative Virtual Environments

Collaborative Virtual Environments Collaborative Virtual Environments Stefan Lücking Projektgruppe Kreativität und Technik AG Domik WS 02/03 09.01.2003 1/35 Was sind CVE? Versuch einer Definition : Ein CVE ist ein Programm, das eine virtuelle

Mehr

Multivariate Tests mit Google Analytics

Multivariate Tests mit Google Analytics Table of Contents 1. Einleitung 2. Ziele festlegen 3. Einrichtung eines Multivariate Tests in Google Analytics 4. Das JavaScript 5. Die Auswertung der Ergebnisse Multivariate Tests mit Google Analytics

Mehr

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung Informatik Kurs 12 André Hoffmann Delphi Einführung in die Windows- Programmierung Grundlagen Entwicklung von Windows-Programmen Relativ unkompliziert durch typische, vorgefertigte Elemente Programmiertechnische

Mehr