Universität Rostock. Fakultät für Informatik und Elektrotechnik. Institut für Informatik. Wissenschaftsbereich Computergraphik.

Größe: px
Ab Seite anzeigen:

Download "Universität Rostock. Fakultät für Informatik und Elektrotechnik. Institut für Informatik. Wissenschaftsbereich Computergraphik."

Transkript

1 Universität Rostock Fakultät für Informatik und Elektrotechnik Institut für Informatik Wissenschaftsbereich Computergraphik Studienarbeit Interaktive 3D-Modellierung und Darstellung von Geländedaten Max Wieden XXX Betreuer: Prof. Dr.-Ing. habil. Heidrun Schumann Dipl.-Inf. Falko Löffler 1

2 Inhaltsverzeichnis 1 Einleitung 4 2 Grundlagen Vorbetrachtungen zum Rendering Level of Detail Culling Konventionelle 2,5D-Geländedarstellungen Komplexe 3D-Geländedarstellungen Repräsentation mit Stacks Repräsentation mit Voxeln Marching Cubes-Algorithmus Anforderungen und Problemdiskussion Datenstruktur Interaktive Modellierung Rendering Rekapitulation und erste Lösungsansätze Editor zur komplexen Geländemodellierung Systementwurf Datenstruktur Daten D-Tiles Konfigurationsparameter des Geländes Modellierer Erzeugung des Grundmodells Globale Anpassungen Lokale Anpassungen Renderer Isoflächenextraktion Texturierung Sichtbarkeitsbetrachtungen Integration des Geländes in eine Szene Benutzungsoberfläche Optimierungen Implementierung Graphikengine Datenstruktur Werkzeuge Global Werkzeuge Lokale Werkzeuge Rendering Interface Parameterstudie

3 5.6.1 Erhöhung der Auflösung des Voxelraums Erhöhung der Anzahl der Gitterelemente für den Marching Cubes-Algorithmus Verringerung der Größe der 3D-Tiles mit angepassten sonstigen Parametern 39 6 Zusammenfassung und Ausblick Zusammenfassung Ausblick

4 Kapitel 1 Einleitung Konventionelle Geländedarstellungen 1 auf Basis von Höhenwerten sind in der Visualisierung, Simulation und in Spielen sehr weit verbreitet. Weil sie nach wie vor ein wichtiges Thema in der Computergraphik sind, existieren heute sehr ausgereifte Methoden für alle Aspekte dieser Art der Geländedarstellung. Stand der Technik sind große Gelände, die in Echtzeit gerendert und modifiziert werden können. Mit graphischen Effekten wird dabei ein sehr realitätsnaher Eindruck vermittelt. Konventionelle Geländedarstellungen nutzen als Grundlage Höhenwerte. Diese Höhenwerte liegen in der Regel in Form eines Höhenfelds vor. Wegen der Höhenwerte haben konventionelle Geländedarstellungen aber ein inhärentes Problem. Es gibt in der Natur einige geographische Merkmale, die durch solche Höhenwerte nicht abgebildet werden können, wie z.b. Überhänge, Bögen oder Höhlen. Es haben sich pragmatische Lösungen für dieses Problem etabliert. Zur Modellierung solcher Merkmale können beispielsweise 3D-Modelle in die Geländedarstellung integriert oder das Gelände ganzheitlich als ein 3D-Modell verarbeitet und modifiziert werden. Diese pragmatischen Lösungen sind jedoch unflexibel, da eine nachträgliche Änderung viele manuelle Arbeitsschritte benötigt. So muss z.b. bei einem 3D-Modell nach Anpassung der Form auch die Texturierung angepasst werden. Für eine intuitive und vor allem interaktive Modellierung ist es erstrebenswert, solche Änderungen in Echtzeit durchführen zu können. Dies ist nur möglich, wenn Details wie die Texturierung oder die genaue Triangulierung im 3D-Modell nicht manuell angepasst werden müssen. Es muss eine angepasste Datenstruktur eingesetzt werden, um 3D-Geländedarstellungen zu ermöglichen, die solche dreidimensionalen geographischen Merkmale nativ unterstützten und es erlauben, diese in Echtzeit interaktiv zu modifizieren. Die Datenstruktur soll es für eine ansprechende graphische Repräsentation zudem unterstützten, verschiedene Materialien zu nutzen und zu visualisieren. Es gibt einige bekannte Datenstrukturen, die die Teilprobleme lösen, jedoch noch keine, die diese Anforderungen gleichzeitig erfüllt. Zur Anzeige von 3D-Modellen werden auf moderner Graphikhardware Dreiecksnetze bzw. 3D-Meshs genutzt. Eine interaktive Modifikation von Geländedaten und die Abtastung der Daten wird durch einen Voxelraum gut unterstützt, dieser kann auch verschiedene Materialtypen abbilden. Eine Voxeldatenstruktur benötigt jedoch sehr viel Speicher, sodass diese für große Gelände ungeeignet ist. Eine weitere Datenstruktur ist die der sogenannten Material Stacks von Peytavie et al. ([PGMG09]), aufbauend auf einer Arbeit von Benes et al. ([BF01]). Diese Datenstruktur speichert in einem regulären 2D-Gitter Stacks von Materialschichten. Mit diesen können die gleichen geographischen Merkmale abgebildet werden wie mit Voxeldaten, der Speicherbedarf ist bei einer Stack-Datenstruktur jedoch viel geringer als bei einer Voxeldatenstruktur. Die Autoren haben die Material Stacks auch für eine Erosionssimulation verwendet, um Gelände zu stabilisieren und so physikalisch plausiblere Ergebnisse zu erzielen. Gegenstand dieser Arbeit ist die Entwicklung eines Editors zur interaktiven Modellierung und dem Rendering von 3D-Geländedarstellungen und einer Datenstruktur dafür, die die Vorteile von 1 Gelände im Englischen: terrain 4

5 3D-Meshs, Voxelräumen und Material Stacks vereint. Die vorliegende Arbeit ist wie folgt gegliedert. In den Grundlagen (Kapitel 2) werden die Technologien vorgestellt, auf denen diese Arbeit aufbaut, insbesondere werden konventionelle Methoden und 3D-Geländedarstellungen beschrieben. Auf Basis der Aufgabenstellung werden Anforderungen formuliert und die Konflikte zwischen diesen in einer Problemdiskussion erörtert (Kapitel 3). Das Konzept stellt eine erste Lösung dieser Konflikte und Erfüllung der Anforderungen dar (Kapitel 4). Als Anwendung des Konzepts wurde der interaktive 3D-Editor Hangover implementiert (Kapitel 5). Den Abschluss bildet eine Zusammenfassung der Arbeit, mit einem Ausblick darauf, wie die Thematik weiter behandelt und erweitert werden kann (Kapitel 6). 5

6 Kapitel 2 Grundlagen Dieses Kapitel führt die Grundlagen ein, auf denen die Arbeit aufbaut. Für die Beschreibung der 3D-Geländedaten werden hier die Voxel- und die Stackrepräsentation behandelt. Zur Anzeige werden Graphikprimitive benötigt, die mit einer Isoflächenextraktion aus den Geländedaten gewonnen werden können. Um einen möglichst performanten Renderingvorgang sicherzustellen, ist der Einsatz von Level of Detail-Techniken sowie Culling notwendig, diese Techniken werden in den Vorbetrachtungen zum Rendering (Abschnitt 2.1) vorgestellt. Gegenstand der Arbeit sind Geländedarstellungen. Konventionelle 2,5D-Geländedarstellungen sind Thema von Abschnitt 2.2, komplexe 3D-Geländedarstellungen und die Repräsentationsarten dieser werden in Abschnitt 2.3 genauer behandelt. 2.1 Vorbetrachtungen zum Rendering Um mit moderner Graphikhardware immer mehr Informationen gleichzeitig bei interaktiven Bildwiederholraten in einer Szene darstellen zu können, müssen Anstrengungen unternommen werden, die angezeigten Details der Position und Ausrichtung des Betrachters anzupassen. Je weniger Graphikprimitive dargestellt werden, desto höhere Bildwiederholraten sind möglich. Die hier vorgestellten Optimierungstechniken befassen sich deshalb mit der Einsparung von anzuzeigenden Graphikprimitiven. Abschnitt befasst sich mit Level of Detail-Techniken. Mit diesen ist es möglich, Teile der 3D-Welt, die weiter in der Ferne liegen, mit weniger Details bzw. Graphikprimitiven darzustellen. Teile der 3D-Welt, die auf den gerenderten Bildern nicht zu sehen sind, können vom Renderprozess ausgenommen werden. Dies wird mittels Culling realisiert, worauf in Abschnitt eingegangen wird Level of Detail Eine Möglichkeit, die Anzahl der anzuzeigenden Graphikprimitive zu reduzieren, um bessere Bildwiederholraten zu erreichen, sind Level of Detail-Techniken. Mit so einer Technik wird der Detailgrad der 3D-Szene blickpunktabhängig eingestellt. Es wird zwischen diskreten, kontinuierlichen und blickpunktabhängigen 1 Level of Detail- Techniken unterschieden. Bei einer diskreten LoD-Technik wird die Szene bzw. der große anzuzeigende 3D-Mesh in Teilmeshs unterteilt, die in verschiedenen statischen, also vorberechneten Detailstufen vorliegen. Anhand der Distanz zum Betrachter oder ähnlichen Kriterien wird dann für jeden Teilmesh die anzuzeigende Detailstufe ausgewählt. Diese Technik wurde von Clark bereits 1976 in [Cla76] beschrieben, auf Basis eines Szenengraphen mit klar abgegrenzten Objekten, für die unterschiedliche Detailstufen vorliegen. Geiss hat diese Technik in [Gei08] genutzt, um die Details einer 3D-Geländedarstellung einzustellen, bei der eine Isoflächenextraktion mit dem Marching Cubes- 1 engl. view dependent 6

7 Algorithmus durchgeführt wird. Dadurch konnte eine bessere Rendering-Performance erzielt werden. Es gibt verschiedene Möglichkeiten, für diskrete LoD-Techniken verschiedene Detailstufen eines 3D-Meshs zu erzeugen. Ziel ist es, bei gröberen Detailstufen weniger Graphikprimitive zu nutzen, um diese schneller zu rendern. Wird der Marching Cubes-Algorithmus zur Meshsynthese genutzt, so kann mit der Auflösung des Gitters für diesen der Detailgrad für den sich ergebenden 3D-Mesh eingestellt werden. Eine weitere Möglichkeit sind Mesh Simplification-Techniken (Vgl. [CMS97]). Eine gröbere Detailstufe eines 3D-Meshs kann so z.b. durch Streichung von Vertizes und Kanten aus einem detaillierten 3D-Mesh entstehen. Ein anderer Ansatz sind kontinuierliche und darauf aufbauend blickpunktabhängige LoD- Techniken, bei denen die anzuzeigende Detailstufe dynamisch aus den vorliegenden Daten für den Blickpunkt angepasst erzeugt wird. Hierfür werden spezielle hierarchische Datenstrukturen verwendet, aus denen der 3D-Mesh nach Bedarf neu erzeugt wird. Bei Geländedarstellungen werden dafür insbesondere sogenannte Multi Resolution-Datenstrukturen eingesetzt (Vgl. [PG07]). Bei solchen Techniken können Diskontinuitäten besser vermieden werden als bei diskreten LoD- Techniken Culling Liegt ein Teilmodell außerhalb des View Frustums oder wird es verdeckt, so ist es sinnvoll, dieses nicht zu rendern. Assarrsson et al. ([AM00]) beschreiben das weitverbreitete View Frustum Culling, wobei Objekte außerhalb des Sicht-Pyramidenstumpfes nicht gerendert werden. So ein Pyramidenstumpf ergibt sich aus der perspektivischen Projektion in gängigen Graphiksystemen. Backface Culling (Vgl. [Wat99]) wird genutzt, um vom Betrachter abgewandte Polygone von der Darstellung auszunehmen. Ob ein Polygon vom Betrachter abgewandt ist, wird anhand der Normale des Polygons bestimmt. Backface Culling eignet sich bei geschlossenen 3D-Modellen, deren innere Hülle nicht für die Betrachtung gedacht ist und sonst überzeichnet werden würde. Occlusion Culling (Vgl. [CT97]) wird genutzt, um verdeckte Modelle innerhalb des View Frustums vom Rendering auszunehmen. Dafür wird zwischen Occludern und den potenziell occludierten Objekten unterschieden. Die Occluder müssen vorab bestimmt werden. Im Rahmen dieser Arbeit werden das View Frustum Culling und das Backface Culling genutzt. 2.2 Konventionelle 2,5D-Geländedarstellungen Für Geländedarstellungen werden oft Höhenfelder 2 bzw. Höhenkarten 3 als Grundlage genutzt (Vgl. [BT09]). Bei Höhenfeldern handelt es sich um zweidimensionale Gitter von Höhenwerten. Geländedarstellungen, die solche Daten als Grundlage haben, stellen den konventionellen Ansatz für Geländedarstellungen in der Computergraphik dar. Weil sich diese Höhenwerte auf eine Grundebene beziehen, seien diese Geländedarstellungen hier als 2,5D-Geländedarstellungen bezeichnet. Da die Datenbasis für solche Geländedarstellungen meist sehr groß ist, werden Level of Detail- Techniken genutzt, um die Interaktivität zu gewährleisten. Auf Basis der Höhenwerte werden 3D- Meshs erzeugt. Um hohe Bildwiederholraten zu erzielen, muss der Detailgrad der angezeigten 3D- Meshs dem Betrachter angepasst werden. Die Meshsynthese für die Anzeige und LoD-Techniken sind eng miteinander verbunden. Eine Studie von Pajarola et al. ([PG07]) stellt verschiedene Ansätze dazu vor. Die Datenstruktur des angezeigten 2,5D-Geländemodells muss es entsprechend unterstützen, die Details für den Betrachterblickpunkt, also die Position und Ausrichtung des Betrachters, anzupassen. Für kontinuierliche LoD-Techniken werden hierarchische Datenstrukturen eingesetzt. Es bestehen noch weitere, hardwarespezifische Optimierungsmöglichkeiten wie z.b. Triangle Strips oder Indexbuffer. 2 engl. height fields 3 engl. height maps 7

8 Bei Pajarola in [Paj98] findet eine Technik namens Restricted Quadtree Triangulation (RQT) Anwendung, um große Gelände darzustellen und dynamisch den Detailgrad anzupassen. Die RQT-Technik benutzt Höhenfelder und stellt eine Möglichkeit der rekursiven Unterteilung des 3D-Meshs des Geländes dar, die sicherstellt, dass das Geländemodell durchgehend abgeschlossen ist. Die damit erzeugten Triangulierungen eignen sich für die Darstellung durch Triangle Strips, um das Rendering zu beschleunigen. In Abbildung 2.1 links ist ein Beispiel für so eine Restricted Quadtree-Triangulierung zu sehen. Aufbauend auf der RQT-Technik wird von Pajarola et al. in [PAL02] die Quadtree based Triangulated Irregular Networks -Technik (QuadTIN) vorgestellt. Diese Technik kann irregulär verteilte Höhenwerte verarbeiten und zeichnet sich besonders dadurch aus, dass die erstellten Vertizes so platziert werden, dass sie die Geländedaten an markanten geographischen Merkmalen bestmöglich repräsentieren. Eine Beispieltriangulierung mit QuadTIN ist in Abbildung 2.1 rechts zu sehen. Abbildung 2.1: RQT-Triangle Strip aus [Paj98] (links), QuadTIN-Triangulierung auf Basis irregulär verteilter Höhenwerte aus [PAL02] (rechts) In der Studie ([PG07]) werden des Weiteren sogenannte Triangle Bin-Trees vorgestellt, die in der Technik Real-Time Optimally Adapting Meshes ( ROAM ) von Duchaineau et al. ([DWS + 97]) genutzt werden. Diese Technik nutzt eine Fehlermetrik, um zu bestimmen, welche Teile des 3D-Meshs eines Geländes adaptiv weiter unterteilt oder weniger unterteilt werden sollen. Fehlermetriken sind generell wichtig für die adaptive Steuerung des Detailgrades. In der Studie werden verschiedene Metriken für verschiedene Techniken diskutiert. Bei den Metriken wird zwischen dem Approximationsfehler im Objektraum und dem Approximationsfehler im Bildraum unterschieden. Bei der Bestimmung des Approximationsfehlers werden auch die Silhouetten des erzeugten 3D-Meshs berücksichtigt, da diese stark zum Gesamtbild beitragen. Es werden in der Studie ([PG07]) Aussagen dazu getroffen, wie Texturinformationen mit den Geometrieinformationen verwaltet werden können. Bei konventionellen 2,5D-Geländedarstellungen bieten sich Texturierungsmethoden an, die mit planaren Projektionen arbeiten. Es gibt für blickpunktabhängige LoD-Techniken auch patchbasierte Ansätze. Hierbei werden Detailentscheidungen nicht auf der Ebene von einzelnen Dreiecken, sondern auf Basis von Dreiecksclustern getroffen, um den Arbeitsaufwand zu reduzieren. Stand der Technik sind große in Echtzeit renderbare Gelände, deren Details ohne visuelle Sprünge mit kontinuierlichen Level of Detail-Techniken für jeden Blickpunkt angepasst werden können. 2.3 Komplexe 3D-Geländedarstellungen Konventionelle 2,5D-Geländedarstellungen haben einen wesentlichen Nachteil. Für jeden Gitterpunkt in einem Höhenfeld kann nur ein Höhenwert gespeichert werden. Geographische Merkmale wie Überhänge oder Bögen können auf diese Weise nicht repräsentiert werden. Abbildung 2.2 veranschaulicht das Problem. 8

9 Um solche Merkmale in den Daten repräsentieren zu können, gibt es in der Literatur einige Ansätze, wobei die Stackrepräsentation sowie die Voxelrepräsentation für diese Arbeit von Bedeutung sind. Eine Stackrepräsentation wird in Abschnitt vorgestellt. In Abschnitt wird aufgezeigt, wie komplexe 3D-Geländedaten in Voxelrepräsentation gespeichert werden können. Um die komplexen 3D-Geländedaten mit Graphikprimitiven repräsentieren und anzeigen zu können, findet eine Isoflächenextraktion statt. Ein Werkzeug dafür ist der Marching CubesAlgorithmus, welcher in Abschnitt vorgestellt wird. Abbildung 2.2: Überhänge sind mit einem Höhenfeld nicht repräsentierbar (Vgl. [Ryb08]) Eine weitere Motivation für diese Repräsentationsarten ist, manuelle Bearbeitungsschritte einzusparen. Abbildung 2.3 zeigt eine Geländedarstellung aus einem aktuellen Computerspiel, die ganzheitlich als 3D-Modell erstellt wurde. Soll hier nachträglich z.b. ein Tunnel eingefügt werden, sind dafür viele Arbeitsschritte notwendig, um die Triangulierung, Texturierung und Beleuchtung anzupassen. Abbildung 2.3: Geländedarstellung aus Serious Sam HD: The First Encounter von Croteam Ltd Repräsentation mit Stacks Benes et al. ([BF01]) suchten nach einer Möglichkeit, evolutionäre Vorgänge in prozedural erzeugten Geländen zu modellieren, insbesondere die thermische Erosion von Gestein. Höhenwerte aus konventionellen 2,5D-Geländedarstellungen reichten dabei nicht aus, um physikalische Materialschichten im Boden zu repräsentieren. Um mit diesen übereinander liegenden Schichten arbeiten zu können, führten die Autoren eine Datenstruktur ein, die an den abgetasteten Punkten auf der 2D-Ebene keine Höhenwerte, sondern Stacks von Materialschichten mit unabhängigen Schichtdicken speichert. Die Daten liegen hier 9

10 wie bei einem Höhenfeld in einem Gitter vor. Jedes Schicht-Element beinhaltet Informationen über den Materialtyp und die Schichtdicke. Mit den verschiedenen Materialtypen sind verschiedene Härtegrade assoziiert, welche während der thermischen Erosionssimulation berücksichtigt werden. In der Erosionssimulation wird dann materialabhängig der Schüttwinkel 4 simuliert. Über die simulierte Zeit kann ein hartes Material gelöst werden, sodass sich das Mengenverhältnis von hartem zu lockerem Material während der Simulation verändert. Peytavie et al. ([PGMG09]) haben auf der Arbeit von Benes et al. aufgebaut und sich auf die Aspekte der Modellierung und des Renderings konzentriert. Ein Ziel der Autoren war die Modellierung von Bögen ( Arches ). Die Datenstruktur wurde hier als Material Stacks bezeichnet und für die Erreichung dieses Ziels neben anderen Dingen gegenüber der Datenstruktur von Benes et al. um den Materialtyp Luft erweitert. Mit diesem Materialtyp ist es möglich, Gegebenheiten wie Überhänge oder Bögen in den Daten zu repräsentieren (Vgl. Abb. 2.2). Mit dem Fokus auf dem Rendering wurden auch die Isoflächenextraktion und die Texturierung sehr ausführlich behandelt. Besonderes Augenmerk liegt dabei auf der Abtastung der Datenstruktur. Wird bei einem Abtastvorgang nur der Materialtyp an dem abgetasteten Punkt berücksichtigt, so werden die Daten zwar akkurat repräsentiert, aber nicht visuell ansprechend dargestellt. Eine Glättung der Daten ist deshalb notwendig. Um diese zu realisieren, wird bei einer Abtastaktion nicht nur der Materialtyp in dem abzutastenden Punkt berücksichtigt, sondern die Materialien in einem bestimmten Bereich um diesen Punkt, mit diesem als Mittelpunkt. Diese Integration Domain wurde für einen sphärischen sowie für einen kubischen Raumbereich untersucht, wie in Abbildung 2.4 gezeigt. Abbildung 2.4: Spärischer und kubischer Raumbereich als Integration Domain, aus [PGMG09] Abbildung 2.5 gibt eine Übersicht über die Materialtypen aus der Arbeit von Peytavie et al. Die Materialien Bedrock (Grundgestein) und Sand werden mit einer Isoflächenextraktion, genauer mit dem Marching Cubes-Algorithmus 5, in Graphikprimitive überführt, welche dann gerendert werden. Sand und Gestein werden im extrahierten 3D-Mesh bei der Texturierung weich ineinander überblendet. Abbildung 2.5: Material Stacks und konkrete Materialtypen aus Peytavie et al. ([PGMG09]) Alle anderen Materialien werden bei der Isoflächenextraktion nicht berücksichtigt. Wasser wird in den Ergebnisbildern der Arbeit mit klar abgegrenzten Kanten dargestellt. Rocks (Steine) als Material werden mit einem sich wiederholenden 3D-Muster von Steinen dargestellt. Diese 4 engl. talus angle 5 Aussage von A. Peytavie via 10

11 Steinhaufen und eine Erosionssimulation auf den Daten zielen auf einen möglichst realistischen visuellen Eindruck ab. Im Hinblick auf die Texturierung muss für einen abzutastenden Punkt bei der Isoflächenextraktion bestimmt werden, wie genau die Mischungsverhältnisse der Materialien zueinander sind. Dazu wird im Integrationsraum das Volumen, das von einem bestimmten Materialtyp ausgefüllt wird, in Bezug auf das Gesamtvolumen gesetzt. Bei der Texturierung des 3D-Meshs werden verschiedene Texturen anhand der Mischungsverhältnisse der Materialien zueinander weich ineinander überblendet. Eine nahtlose Texturierung wird mit einer speziellen Projektionstechnik gewährleistet. Der extrahierte 3D-Mesh verfügt an jedem Vertex über Informationen über die Normale der Oberfläche und das Mischungsverhältnis der Materialien. Mit dem Mischungsverhältnis werden Farbwerte für die unterschiedlichen Texturen in einem Shader anteilig gemischt, in diesem Fall sind es die Farbwerte für Sand und Grundgestein. Der Farbwert für eine Textur wird folgendermaßen bestimmt. Im Vertexshader werden die Normalen an den Fragmentshader übergeben, sodass diese dem Fragmentshader dann in interpolierter Form zur Verfügung stehen. Für ein darzustellendes Fragment wird nun die normierte Normale genommen und die Skalarprodukte dieser zu den Normalen der drei Hauptebenen (XY, XZ, ZY) bestimmt. Jetzt erfolgen drei Textur-Lookups für die drei Hauptebenen, mit den Raumkoordinaten des Fragments als Eingabe. Es werden so drei Farbwerte bestimmt, die den Projektionen der Textur auf diesen drei Hauptebenen entsprechen. Dies soll Abbildung 2.6 verdeutlichen. Mittels der bestimmten Faktoren werden diese Farbwerte gemischt, sodass immer der Farbwert der Projektion dominiert, deren Ausrichtung die Ausrichtung der Normale des Oberflächenpunkts am besten widerspiegelt. Weil bei der Interpolation der Normalen keine Unstetigkeiten auftreten, ist auch die Texturierung nahtlos. Das Ergebnis der nahtlosen Texturierung und der Mischung der Farbwerte anhand der Materialtypen wird in Abbildung 2.7 gezeigt. Abbildung 2.6: Projektionsebenen, deren Farbwerte für ein Fragment anhand der Skalarprodukte ihrer Normalen mit der Objektnormale (auf dem Modell) anteilig gemischt werden Abbildung 2.7: Renderbilder von Peytavie et al. ([PGMG09]) 11

12 2.3.2 Repräsentation mit Voxeln Dreidimensionale Daten können in einer Voxelrepräsentation, also einem Voxelraum gespeichert werden. Voxelrepräsentationen sind eine wichtige Grundlage für die Daten für Volumenvisualisierungen (Vgl. [Elv92]). Bei einer Voxelrepräsentation wird der 3D-Datenraum auf allen drei Koordinatenachsen diskretisiert, es entsteht ein reguläres 3D-Gitter. Ein Element des Gitters repräsentiert einen quaderförmigen Raumbereich. Innerhalb des Quaders ist der Datenwert an jeden Raumpunkt gleich. In Abgrenzung zu den Voxeln gibt es auch Zellen, bei denen Datenwerte mit den Schnittpunkten des zugehörigen Gitternetzes, also den Eckpunkten des Quaders assoziiert werden. Bei Voxeln ist der Datenwert jeweils über ein ganzes Element homogen, bei Zellen werden die Datenwerte im Quader durch trilineare Interpolation bestimmt. In der Praxis finden sich Beispiele für die Nutzung von Voxelrepräsentationen für 3D-Geländedarstellungen. Eine Möglichkeit ist, die Voxeldaten mit einem Raytracer direkt zu rendern, ohne einer Isoflächenextraktion als Zwischenschritt. Silverman und Dobrowolski haben mit der Graphikengine Voxlap 3D-Gelände in Voxelrepräsentation direkt gerendert. Die Demoanwendung Cave (Vgl. Abb. 2.8) zeigt, dass Interaktionen mit und Modifikationen der Voxeldaten in Echtzeit möglich sind 6. Abbildung 2.8: Renderbilder aus der Cave -Demoapplikation Eine für diese Arbeit relevantere Möglichkeit des Renderings von Voxeldaten ist die indirekte Volumenvisualisierung mit einer Isofläche. Dabei wird der Voxelraum mit einem Isoflächenextraktionsalgorithmus wie z.b. dem Marching Cubes-Algorithmus abgetastet und der entstehende 3D-Mesh gerendert. Crytek hat diese Form der Darstellung genutzt und durch eine nahtlose Integration in konventionelle 2,5D-Geländedarstellungen eingearbeitet (Vgl. [Cry08]). Es werden dazu sogenannte Voxel Objects in die 3D-Szene eingefügt, deren synthetisierte 3D-Meshs nahtlos an ein bestehendes konventionelles 2,5D-Gelände angepasst werden können. In dem dafür bereitgestellten Editor besteht auch die Möglichkeit, ein Stück konventionelles Gelände in diese Voxelrepräsentation zu überführen, um nachträglich spezielle geographische Merkmale zu realisieren. Auf diese Weise können Voxeldaten für komplexe geographische Merkmale wie Überhänge oder Bögen verwendet werden, während der verbleibende Teil des Geländes mit den konventionellen Methoden bearbeitet und gerendert wird

13 Abbildung 2.9: Integration von Voxel Objects (aus [Cry08]) Bei einer Datenstruktur für einen Voxelraum lassen sich Speicheradressen von Voxeln für Raumkoordinaten leicht bestimmen. Umgekehrt lassen sich Raumkoordinaten für die Speicheradressen von Voxeln leicht bestimmen. Aus diesem Grund sind Modifikationen an Voxeldaten einfach zu realisieren. Modifikationen der Voxeldaten können z.b. mit Hilfe von geometrischen Formen arbeiten und in einem Raumbereich alle Voxel auf einen bestimmten Datenwert setzen. Auch können Formen in Voxeldaten prozedural generiert werden, z.b. mit Fraktalen. Werden mit Voxeln in den Daten einfache Zahlen assoziiert, können verschiedene Materialtypen abgebildet werden. In Abbildung 2.10 sind Voxeldaten in einer indirekten Volumenvisualisierung dargestellt, bei der keine Tiefpassfilterung verwendet wurde. Die kubischen Raumbereiche werden dabei ersichtlich. Abbildung 2.10: Indirekte Volumenvisualisierung von Voxeldaten in Hangover ohne Tiefpassfilterung, kubische Raumbereiche werden ersichtlich Marching Cubes-Algorithmus Moderne Graphikhardware und die gängigen Graphik-APIs sind darauf optimiert, Polygone bzw. Dreiecks-3D-Meshs unter Nutzung von Shadern zu rendern. Dafür müssen entsprechend Polygondaten bereitgestellt werden, die das Gelände repräsentieren. Aus einer Voxel- oder Stackbeschreibung der Geländedaten kann eine Isofläche extrahiert werden. In einem 3D-Datenraum stellt eine Isofläche für einen bestimmten Datenwert die Menge von Punkten dar, die diesen Datenwert haben. Ein solcher 3D-Datenraum kann aus einer Geländerepräsentation konstruiert werden. Der Marching Cubes-Algorithmus hat sich, insbesondere bei der medizinischen Bildgebung, als ein Standardwerkzeug zur Extraktion von Isoflächen etabliert wurde dieser von Lorensen et al. beschrieben ([LC87]). Die Studie von Newman et al. ([NY06]) beschreibt die Entwicklung dieses Algorithmus von der Originalform von Lorensen et al. bis zu den heute gängigen Lösungen. 13

14 Bei Anwendung des Algorithmus auf einem 3D-Raum wird dieser konzeptionell in gleich große Würfel unterteilt. Die Kanten der Würfel bilden ein reguläres 3D-Gitternetz, mit den Eckpunkten sind Datenwerte assoziiert. Es wird für jeden Würfel anhand der Eckpunkte eine Klassifikation durchgeführt. Für jeden Eckpunkt wird bestimmt, ob der Datenwert dort größer als ein eingestellter Isowert ist (oder gleich diesem ist), oder nicht. Alle Würfel in einer Klasse der Klassifikation sind dadurch ausgezeichnet, dass die Kombination ihrer Eckpunkte mit dieser Eigenschaft für die Datenwerte gleich ist. Es gibt dafür 256 verschiedene Kombinationen und bei der Originalform des Algorithmus entsprechend auch 256 Klassen. Für jeden Würfel wird dann eine Triangulierung nach dem Grundmuster seiner Klasse durchgeführt. Die Eckpunkte der erzeugten Dreiecke aus den Klassen-Grundmustern werden entsprechend der Verhältnisse der Datenwerte an den Eckpunkten des Würfels zueinander verschoben, sodass sie die Isofläche möglichst gut approximieren. Die Studie zeigt auf, welche Probleme beim Original-Algorithmus bestanden und wie diese im Laufe der Zeit durch Verbesserungen behoben wurden. In der Originalform des Algorithmus wurden alle 256 möglichen Triangulierungen bzw. Klassen-Grundmuster unter Ausnutzung von Symmetrieeigenschaften aus 15 verschiedenen Grundmustern durch Rotation und Spiegelung erzeugt, dies führte aber zu Mehrdeutigkeiten. Mehrdeutigkeiten in der Triangulierung haben zur Folge, dass der erzeugte 3D-Mesh in bestimmten Fällen nicht abgeschlossen ist und somit Löcher aufweist. In der Studie werden zur Lösung des Problems der Mehrdeutigkeit neben dem Resampling, also der genaueren Abtastung bei Problemfällen, noch die Cell Decomposition, Topology Inference und Preferred Popularity-Methoden vorgestellt. Bei Algorithmen zur Isoflächenextraktion können sehr kleine Dreiecke auftreten, die sogenannten Sliver-Dreiecke. Diese sind für den visuellen Eindruck vernachlässigbar, haben aber durch die höhere Anzahl von Graphikprimitiven einen erhöhten Renderingaufwand zur Folge (Vgl. The mesh s facet count in [NY06]). Der entstandene 3D-Mesh kann mit Mesh Simplification- Techniken nachbearbeitet werden, um die Triangulierung zu optimieren und Graphikprimitive einzusparen (Vgl. [CMS97]). Wegen des Mehrdeutigkeitsproblems und weil der Marching Cubes-Algorithmus nach seiner Einführung für eine lange Zeit patentiert war (Vgl. Patent [Cli87]), wurden auch alternative Ansätze entwickelt. Der Marching Tetrahedrons -Algorithmus ist eine Alternative zum Marching Cubes-Algorithmus, die aus diesem hervorging (Vgl. [NY06]). Dieser nutzt als Grundform keinen Würfel, sondern unterteilt diesen in Tetraeder. Der Marching Tetrahedrons-Algorithmus weist das Mehrdeutigkeitsproblem des originalen Marching Cubes-Algorithmus nicht auf. Gibt es im 3D-Datenraum Details, die nicht mit entsprechend hoher Auflösung abgetastet werden, so kann der resultierende 3D-Mesh an Stellen verbunden sein, wo es die Daten nicht sind und an anderen Stellen fehlende Verbindungen aufweisen, die auch nicht die Daten widerspiegeln (Vgl. The Sampling Theorem bzw. Nyquist-Frequenz aus [Sha49]). Zur Kompensation des Problems mit der Nyquist-Frequenz kann die Auflösung des Gitters erhöht werden. Ein weiterer Ansatz zur Isoflächenextraktion, welcher insbesondere markante Merkmale erhält und die Topologie der zugrundeliegenden Datenfunktion besser abbildet, ist der Dual Marching Cubes-Algorithmus von Schaefer et al. ([SW04]). Bei diesem Algorithmus wird im Schritt der Feature Extraction bestimmt, wo die Merkmale der Datenfunktion liegen. An diesen werden Vertizes platziert. Mit einem Top-Down-Ansatz wird ein Octree konstruiert, mit dem die genaue Abtastung der Datenfunktion gesteuert wird. Der Aufbau des Octrees wird mit einer Fehlermetrik adaptiv gesteuert. Dann wird jede Octreezelle durch einen Vertex repräsentiert. Die Topologie der Datenfunktion ist dual zwischen den Merkmalen der Octreezellen und denen im Ergebnis-3D-Mesh. Mit einer generelleren Form des Marching Cubes-Algorithmus findet dann eine Triangulierung statt. Sliver-Dreiecke werden vermieden, indem die Vertizes so verschoben werden, dass deren Datenwerte einen vorgegebenen Wert möglichst gut approximieren. Abbildung 2.11 zeigt Ergebnisse dieser adaptiven Isoflächenextraktion. 14

15 Abbildung 2.11: Dual Marching Cubes-Algorithmus, links: CSG-Modell, Mitte: entsprechende extrahierte Isofläche, rechts: extrahierte Isofläche des Stanford Dragon (aus [SW04]) 15

16 Kapitel 3 Anforderungen und Problemdiskussion Im Folgenden werden die Anforderungen an den zu entwickelnden Editor und die damit verbundenen Probleme diskutiert. Der integrale Bestandteil dieser Arbeit ist eine einheitliche Datenstruktur (Abschnitt 3.1), welche alle Nutzungsaspekte des Editors unterstützen soll. Zu diesen Aspekten gehören die interaktive Modellierung (Abschnitt 3.2) und das Rendering (Abschnitt 3.3). Abschließend erfolgt eine Rekapitulation mit ersten Lösungsansätzen (Abschnitt 3.4). 3.1 Datenstruktur Es soll möglich sein, mit dem Editor wie mit vergleichbaren Systemen zur Geländedarstellung große Gelände darzustellen und zu bearbeiten. Dafür ist es notwendig, eine leistungsfähige hybride Datenstruktur zu entwickeln, die den 3D-Datenraum unterteilt und die Vorteile der Repräsentationsarten der Geländedaten, d.h. der Stack- und der Voxelrepräsentation, vereint und 3D-Meshs zur Anzeige verwaltet. Die Datenstruktur soll im 3D-Datenraum verschiedene Materialtypen abbilden können, wobei eine einfache Belegung eines Raumpunktes mit einem bestimmten Materialtyp ausreichend ist. Lokale Modifikationen durch Werkzeuge sollen an jeder Stelle im Gelände durchgeführt werden können. Bei lokalen Modifikationen am Gelände und dem Rendering soll der Speicherbedarf möglichst gering sein. Dies erlaubt nicht nur, größere Gelände zu verarbeiten, sondern stellt auch sicher, dass für weitere Aspekte einer Anwendung genügend Ressourcen verfügbar sind. Die Material Stacks von Peytavie et al. ([PGMG09]) haben einen geringen Speicherbedarf und eignen für die Persistierung der komplexen Geländedaten des gesamten Geländes im Arbeitsspeicher und in Dateien. Im Hinblick auf das Rendering muss der 3D-Datenraum der Datenstruktur sehr schnell für eine Isoflächenextraktion abgetastet werden können und es müssen die Daten bei der Abtastung für ansprechende visuelle Ergebnisse geglättet werden können. Abtastung bedeutet hier, dass für jeden Punkt im 3D-Datenraum der Materialtyp bestimmt werden kann. Für eine Glättung der Daten müssen mehrere Werte bestimmt werden. Eine Voxelrepräsentation der Daten ist für eine sehr schnelle Abtastung gut geeignet, benötigt jedoch im allgemeinen sehr viel Speicher. Der Gesamte 3D-Datenraum des Geländes sollte im allgemeinen nicht in dieser Repräsentationsart vorliegen. Die Geländedaten sollen des Weiteren mit Operationen performant modifiziert werden können. Operationen können als lesender und schreibender Zugriff auf Daten in Voxelrepräsentation realisiert werden. Da die Daten bei der Voxelrepräsentation im Gegensatz zur Stackrepräsentation nicht komprimiert vorliegen, eignet sich diese Repräsentationsart besser für Modifikationen. Ein effizientes Rendering auf moderner Graphikhardware benötigt 3D-Meshs, diese können aus dem Gelände für eine indirekte Volumenvisualisierung mit einer Isoflächenextraktion gewonnen werden. 16

17 Eine Grundlage für die interaktive Modifikation des Geländes ist eine hohe Bildwiederholrate. Mit Einsatz einer LoD-Technik können bei der Anzeige hohe Bildwiederholraten erreicht und so ein Echtzeitrendering erzielt werden. Dieser Aspekt sollte schon in der Datenstruktur unterstützt werden. Kontinuierliche Level of Detail-Techniken, die auf den Ergebnissen einer Isoflächenextraktion aufsetzen, sind existent, jedoch im allgemeinen nicht auf Geländedarstellungen optimiert. Eine diskrete Level of Detail-Technik setzt eine Partitionierung des Geländemodells voraus. Eine Partitionierung des Geländemodells würde es auch ermöglichen, verschiedene Bereiche des 3D-Datenraums in verschiedenen Repräsentationsarten vorzuhalten (Voxel- oder Stackrepräsentation). Dort, wo eine Änderung stattfindet, könnte die Voxelrepräsentation verwendet werden, wobei die Daten aller anderen Bereiche in Stackrepräsentation vorliegen. Homogene Bereiche innerhalb des Geländes sind ein Argument für die Nutzung von Octrees, jedoch wird es an den zu rendernden sichtbaren Teilen am Rand immer inhomogene Bereiche sowie verschiedene Materialtypen im Einsatz geben. Stacks wurden extra für die Persistierung verschiedener Materialtypen entwickelt und repräsentieren die zu erwartete Datenverteilung besser, da es nach wie vor viele Merkmale im Gelände geben wird, die sich hauptsächlich in die Höhe erstrecken. Die hybride Datenstruktur muss die vorhandenen Repräsentationsarten kombinieren und eine Partitionierung des zu rendernden 3D-Geländemodells ermöglichen, sodass der Ressourcenverbrauch gering bleibt und eine diskrete Level of Detail-Technik eingesetzt werden kann. 3.2 Interaktive Modellierung Es soll dem Benutzer ermöglicht werden, lokale und globale Modifikationen am Gelände durchzuführen. Dies soll bei lokalen Modifikationen in Echtzeit jederzeit an jeder Stelle des Geländes möglich sein. Der Nutzer soll die Möglichkeit haben, verschiedene Materialien aufzubringen und auch wieder abzutragen bzw. zu entfernen. Für ein intuitives Arbeiten muss es möglich sein, Änderungen genau dort vorzunehmen, wo im angezeigten Bild auf die Geländegeometrie geklickt wird. Eine gute Navigation ist für eine intuitive Modellierung wichtig. Um dem Benutzer möglichst viel Freiraum für die Realisierung seiner Wünsche zu ermöglichen, sollte die Navigation im 3D- Raum keinen Beschränkungen unterworfen sein. So sollte es möglich sein, sich zu jedem Punkt im Raum zu bewegen. Modifikationen können als Operationen auf dem 3D-Datenraum aufgefasst werden. Im Hinblick auf die Architektur des Programms sollten diese einen einheitlichen Rahmen bekommen. Der Rahmen sollte sicherstellen, dass notwendige Konvertierungen zwischen den Repräsentationsarten der Daten und eine Isoflächenextraktion automatisch durchgeführt werden. Lokale Modifikationen sind Operationen auf dem 3D-Datenraum mit einem begrenzten Wirkungsbereich. Globale Modifikationen werden auf das ganze Gelände angewandt. Bei globalen Modifikationen wird also der gesamte 3D-Datenraum mit einbezogen und muss die ganze 3D- Darstellung aktualisiert werden. Bei größeren Geländen kann bei Anwendung von globalen Modifikationen die Interaktivität wahrscheinlich nicht gewährleistet werden, da eine Aktualisierung des gesamten Geländes etwas Zeit in Anspruch nimmt. Tritt wegen einer Modifikation eine deutliche Verzögerung in der Anzeige auf, wie z.b. bei einem globalen Filter über den gesamten 3D-Datenraum bei einem großen Gelände, so ist dies dem Nutzer kenntlich zu machen. Um zu identifizieren, welche Bereiche des Geländes modifiziert werden sollen, ist eine Picking- Technik notwendig. Picking kann auf den gerenderten Geometriedaten oder auf den vorliegenden Daten des 3D-Datenraums in Voxel- oder Stackrepräsentation basieren. 3.3 Rendering Das Rendering des 3D-Geländes soll für die interaktive Bearbeitung mit einer genügend hohen Bildwiederholrate, also in Echtzeit möglich sein. So wie in der Arbeit von Peytavie et al. ([PGMG09]) sollen verschiedene Materialtypen mit verschiedenen Texturen im extrahierten 3D- Mesh visualisiert werden und weich ineinander übergehen. Die Texturierung soll nahtlos sein 17

18 und für die Unterstützung der visuellen Abschätzung der Formen soll eine einfache Schattierung durchgeführt werden. Bei der Erfüllung dieser Anforderungen sind einige Probleme zu lösen. UV-Maps für Texturkoordinaten können wegen der höchst veränderlichen Topologie und Form der Gelände nicht eingesetzt werden. Die Texturierung muss deshalb ohne ein Mapping der Texturkoordinaten realisiert werden. Wird ein Teilbereich des Geländes modifiziert, so muss dieser Teil neu dargestellt werden und sich die aktualisierte Darstellung nahtlos in die umgebende Geländedarstellung integrieren. Die Daten aus dem 3D-Datenraum der Datenstruktur müssen bei der Abtastung während der Isoflächenextraktion für visuell ansprechende Ergebnisse geglättet werden. Eine Glättung der Daten des 3D-Datenraums, also eine Tiefpassfilterung, kann mit der Integrationsmethode von Peytavie et al. realisiert werden. So muss die Datenstruktur nicht nur an der Stelle eines abzutastenden Punktes abgefragt werden, sondern auch in dessen Umgebung (Vgl. Integration Domain bei Peytavie et al., behandelt in Abschnitt 2.3.1). Auch zur Bestimmung der Normalen für eine Schattierung sind mehrere elementare Abtastaktionen notwendig, um eine Gradientenabschätzung durchführen zu können (Vgl. [Elv92]). Je mehr Abtastungen durchgeführt werden müssen, desto langsamer wird eine Isoflächenextraktion vonstatten gehen. 3.4 Rekapitulation und erste Lösungsansätze Die zu entwickelnde hybride Datenstruktur soll verschiedene Aspekte unterstützen, indem sie die Vorteile verschiedener bereits bekannter Datenstrukturen und Repräsentationsarten vereint. Sie soll wenig Speicherplatz benötigen und die Abtastung und Modifikation der Geländedaten möglichst performant unterstützen. Das Rendering soll in Echtzeit möglich sein, dies ist mit einer statischen Level of Detail-Technik sowie Culling realisierbar. Eine Partitionierung des 3D- Datenraumes in einem groben regelmäßigen Gitter wäre zielführend. Mit jeder Partition könnten mehrere 3D-Meshs assoziiert werden, die verschiedene Detailstufen darstellen. Die Auswahl der anzuzeigenden Detailstufe kann abhängig von der Distanz des Betrachters zu einer Partition bzw. deren Zentrum stattfinden. Lokale Modifikationen müssen interaktiv möglich sein, bei globalen Modifikationen muss die Interaktivität insbesondere bei großen Geländen nicht gewährleistet sein. Bei einer Modifikation der Geländedaten werden nur die davon betroffenen Partitionen prozessiert, während alle anderen Teile des Geländes unberüht bleiben. Der Speicherbedarf kann gering gehalten werden, falls nur die von einer Modifikation betroffenen und erneut darzustellenden Partitionen in den Daten in Voxelrepräsentation vorliegen. Beim Rendering ist eine einfache Schattierung wünschenswert, um im Editor visuell Formen besser abschätzen zu können. UV-Maps für Texturkoordinaten können nicht eingesetzt werden, da das Gelände interaktiv in Echtzeit bearbeitet werden soll. Zur Schattierung und Texturierung kann von modernen Shader-Technologien gebrauch gemacht werden. Zur Beschleunigung des Renderings können Indexstrukturen eingesetzt werden. Dabei wird auf der Graphikhardware weniger Speicherplatz benötigt, um Vertexdaten vorzuhalten, da ein Vertex mehrmals indiziert werden kann. Die nachträgliche Modifikation solcher Indexstrukturen gestaltet sich als unpraktikabel, sodass sie praktisch nur als Ganzes neu erstellt werden können. Eine Partitionierung des Geländes wirkt diesem Problem entgegen, da jeweils nur 3D-Meshs neu synthetisiert werden müssen, deren Partitionen von Modifikationen betroffen sind. Weil die Geländedaten bei der Abtastung für einen besseren visuellen Eindruck geglättet werden sollen, müssen auch Nachbar-Partitionen von neu darzustellenden Partitionen in Voxelrepräsentation vorliegen. Wird in einer Partition eine Isoflächenextraktion durchgeführt, so werden dabei auch Datenwerte aus angrenzenden Partitionen mit einbezogen. 18

19 Kapitel 4 Editor zur komplexen Geländemodellierung Dieses Kapitel stellt das Konzept eines Editors vor, das die in Kapitel 3 eingeführten Anforderungen adressiert. In Abschnitt 4.1 wird einführend der Systementwurf des Editors vorgestellt. Die wichtigste Komponente der Arbeit stellt die hybride Datenstruktur dar, auf die in Abschnitt 4.2 näher eingegangen wird. Im Rahmen der Modellierung werden diese Daten modifiziert. Die in Abschnitt 4.3 spezifizierte Modellierer-Komponente beinhaltet die entsprechenden Mechanismen. Auf Basis der Datenstruktur werden die graphischen Repräsentationen bereitgestellt und vom Renderer gerendert. Die Renderer-Komponente ist Thema von Abschnitt 4.4. In Abschnitt 4.5 wird kurz umrissen, wie die Funktionen des Editors mit einer Benutzungsoberfläche für einen Endbenutzer bereitgestellt werden. Abschließend werden in Abschnitt 4.6 noch einige Optimierungen vorgestellt. 4.1 Systementwurf Der Editor besteht aus den Komponenten der Benutzungsoberfläche, über die der Endbenutzer mit dem Editor kommuniziert, dem Modellierer mit den Modifikationsmöglichkeiten für die Daten, dem Renderer und der Datenstruktur. Die Datenstruktur ist die zentrale Komponente, da sie viele Anforderungen erfüllen muss und vom Renderer und dem Modellierer genutzt wird. Abbildung 4.1 zeigt die Komponenten auf. Abbildung 4.1: Systementwurf, Pfeile symbolisieren Nutzungsbeziehungen Eine graphische Benutzungsoberfläche ist die Schnittstelle zwischen Benutzer und Editor. 19

20 Hier werden Fensterereignisse des Betriebssystems verarbeitet, auf die das Programm reagiert. Die Modellier-Komponente beinhaltet die Werkzeuge für die Modifikation der Daten der Datenstruktur. Nach einer Initialisierung der Datenstruktur wendet der Nutzer diese Werkzeuge an um die grobe Form und alle feinen Details des Geländes zu modellieren. Der Renderer ist für die Anzeige von 3D-Meshs mit moderner Graphikhardware zuständig. Hier kommt eine gängige Graphik-API wie z.b. OpenGL zum Einsatz. Mit den Daten aus der Datenstruktur führt der Renderer eine Isoflächenextraktion durch und entscheidet, ob gewisse Terrainteile mit weniger Details dargestellt werden oder, falls sie außerhalb des Sichtbereichs liegen, vom Rendering ausgenommen werden. Die hybride Datenstruktur partitioniert den 3D-Datenraum des Geländes und vereint die Voxel- und die Stackrepräsentation der Geländedaten. Die Datenstruktur stellt ein Interface bereit, mit dem die anderen Komponenten lesenden und schreibenden Zugriff auf die Geländedaten bekommen. Dies ist Grundlage für eine Isoflächenextraktion und alle Modifikationen durch Werkzeuge der Modellier-Komponente. 4.2 Datenstruktur Kernstück des Konzepts ist eine Datenstruktur, die die verschiedenen vorgestellten Repräsentationsarten von Geländedaten und 3D-Meshs vereinigt. In der Problemdiskussion wurde eine mögliche Partitionierung des Geländes eingeführt. Die verschiedenen Repräsentationsarten der Daten werden in Abschnitt dargestellt. Die konkrete Ausprägung der Partitionen des Geländes, die sogenannten 3D-Tiles, werden in Abschnitt vorgestellt. Der 3D-Datenraum des Geländes wird mit Parametern eingestellt, die sich auf diese 3D-Tiles beziehen. Darauf wird in Abschnitt eingegangen Daten Wie in Abschnitt 3.1 in der Problemdiskussion aufgezeigt, sind für die verschiedenen Anforderungen verschiedene konkrete Datenrepräsentationen bzw. Datenstrukturen nötig. Eine Voxelrepräsentation des 3D-Datenraums eignet sich für Modellierung und Abtastung, eine Stackrepräsentation für die Persistierung und 3D-Meshs aus einer Isoflächenextraktion zur Anzeige mit moderner Graphikhardware. Es wurden schon Gelände untersucht, die komplett in Voxel- oder Stackrepräsentation vorliegen (Vgl. [PGMG09], Demoanwendung Cave von Silverman und Dobrowolski). Das gesamte Gelände in einer Voxelrepräsentation zu speichern, würde viel Speicherplatz benötigen. Eine lokale Modifikation im Rahmen der Modellierung hat einen bestimmten Einflussbereich. Dieser von der Modifikation beeinflusste Raum (der lokale Arbeitsbereich) muss in Voxelrepräsentation vorliegen. Werden 3D-Meshs als Ergebnis einer Isoflächenextraktion genutzt, so werden diese als Ganzes aktualisiert bzw. neu erzeugt. Eine Aktualisierung eines 3D-Meshs, welcher das ganze Gelände repräsentiert, ist bei großen Geländen aufwändig und somit nicht performant genug für Interaktionen. Um also nicht immer das gesamte Gelände in einer bestimmten Repräsentationsart vorzuhalten und zu bearbeiten, muss es partitioniert sein. Wie in Abschnitt 3.4 in der Problemdiskussion diskutiert, eignet sich ein regelmäßiges 3D-Gitter dafür. Durch eine Partitionierung ist es möglich, immer nur den Arbeitsbereich der Modellierung, in dem Daten modifiziert werden, in einer Voxelrepräsentation vorzuhalten und die Daten aller anderen Geländeteile in Stackrepräsentation zu speichern. Mit einer Partitionierung wird auch das 3D-Modell des Geländes unterteilt, sodass von der Modellierung betroffene Teilmodelle aktualisiert werden können, wobei alle anderen Teilmodelle unberührt bleiben. Genaue Details zur Partitionierung liefert der folgende Abschnitt über 3D-Tiles, Abschnitt Damit der 3D-Datenraum mit beiden Repräsentationsarten beschrieben werden kann, müssen Stack- und Voxelrepräsentation verlustfrei ineinander konvertiert werden können. Um dies zu gewährleisten, müssen sich die Schichtdicken der Stacks an der Diskretisierung der Höhenachse bei der Voxelrepräsentation orientieren. Stacks dürfen also nur Schichtdicken aus einem diskreten Zahlenspektrum haben. Des Weiteren verwenden beide Repräsentationsarten auf der 20

21 Grundebene das gleiche 2D-Gitter. Benachbarte Partitionen des Geländes können auch in unterschiedlichen Repräsentationsarten vorliegen. Wann Partitionen in welche Repräsentationsart konvertiert werden, wird nachfolgend erläutert. Abbildung 4.2 stellt diese Sachhverhalte dar. Abbildung 4.2: Verschiedene Repräsentationsarten der Daten und hybride Repräsentation für ein partitioniertes Gelände Das Gelände hat eine Grundebene mit einem regulären 2D-Gitter. Dieses 2D-Gitter ist das Schema, welches vorgibt wie die Stacks im Gelände angeordnet sind. Auch die Anordnung der Voxel orientiert sich an diesem Schema. Ein Stack in der Stackrepräsentation der Geländedaten besteht aus verschiedenen Materialschichten, den Stackelementen. Diese Materialschichten haben unabhängige Schichtdicken. Ein Stackelement beinhaltet die Information über seine eigene Schichtdicke und den Materialtyp (Vgl. Abschnitt 2.3.1). Die Voxelrepräsentation der Geländedaten ist eine diskrete Unterteilung des vom Gelände ausgefüllten Raums auf allen drei Koordinatenachsen. Auf der Grundebene des Geländes ergibt sich das gleiche 2D-Gitter wie bei der Stackrepräsentation. Auf der Höhenachse findet auch eine Diskretisierung statt (Vgl. Abschnitt 2.3.2). Mit jedem Voxel, also jedem Element des Voxelraums, ist ein Materialtyp assoziiert. Um eine Konvertierung zwischen den Repräsentationsarten der Daten zu erleichtern, sollen die Datenwerte für beide Repräsentationsarten so im Speicher vorliegen, dass Sequenzen von Datenwerten in Richtung der Höhenachse gebildet werden. Solche Sequenzen sind vorteilhaft für eine Konvertierung, bei der über die Daten iteriert wird. Soll nun die Daten von der Stackrepräsentation in die Voxelrepräsentation konvertiert werden, so werden sie aus einem Stack sequenziell ausgelesen und die passenden Materialtypen in die Speichersequenz des Voxelraums geschrieben. Bei der Konvertierung von der Stack- zur Voxelrepräsentation der Daten muss vorher festgestellt werden, wie viele Schichtelemente ein Stack beinhalten wird. Hierfür wird eine Säule von übereinander liegenden Voxeln gescannt und registriert, wie oft Unterschiede bei den Materialtypen aufeinanderfolgender Voxel auftreten. In einem zweiten Lauf werden dann die Schichtdicken bestimmt und in die Struktur für einen Stack geschrieben. Prinzipiell ist es möglich, diese Konvertierungen zu parallelisieren. Ebene Materialschichten ergeben sich aus benachbarten Stacks oder Säulen von Voxeln, welche auf gleicher Höhe mit dem gleichen Materialtyp belegt sind D-Tiles Mit dem Fokus auf der lokalen Modellierung und Level of Detail-Betrachtungen sowie auf den technischen Gegebenheiten eignet sich ein grobes regelmäßiges 3D-Gitter als Partitionierung für das Gelände, wie in Abbildung 4.3 dargestellt. Zur rechnerischen Vereinfachung sei dieses 3D-Gitter regulär und die dieses Gitter aufspannenden Richtungsvektoren parallel zu den elementaren Koordinatenachsen des Weltkoordinatensystems. 21

22 Abbildung 4.3: Partitionierung des Geländes in 3D-Tiles In den folgenden Abschnitten werden der Aufbau der 3D-Tiles und deren Nutzung beschrieben Aufbau eines 3D-Tiles Ein 3D-Tile stellt eine Partition des Geländes und somit ein Element dieses groben 3D-Gitters dar. Jedes 3D-Tile hat entsprechend der beschriebenen Eigenschaften des 3D-Gitters die gleichen Abmessungen und ist quaderförmig. Mit jedem 3D-Tile wird eine Voxel- sowie eine Stackrepräsentation assoziiert. Für verschiedene Detailstufen für eine diskrete Level of Detail-Technik werden auch 3D-Meshs verschiedener Detailstufen mit einem 3D-Tile assoziiert. Die Partitionierung des Geländes ist unabhängig von den dargestellten geographischen Merkmalen. Ein visuell zusammenhängendes Merkmal kann folglich durch mehrere 3D-Tiles repräsentiert werden. Der 3D-Datenraum, der durch ein 3D-Tile ausgefüllt wird, ist ein Teilstück des gesamten 3D-Datenraums des Geländes. Entsprechend hat auch der 3D-Datenraum eines 3D-Tiles ein 2D- Gitter auf seiner Grundfläche, das bestimmt, wie Stacks in der Stackrepräsentation und Voxel in der Voxelrepräsentation der Daten angeordnet werden. Soll eine Modifikation am Gelände durchgeführt werden, so bezieht sich diese auf die 3D-Tiles, da die Geländedaten in diesen gespeichert werden. Ein 3D-Tile kann modifiziert werden, wenn die Daten dessen in der Voxelrepräsentation vorliegen. Modifikationen an Daten in Stackrepräsentation sind aus Performancegründen nicht vorgesehen (Vgl. Abschnitt 3.1). Es muss also die Möglichkeit bestehen, die in Abschnitt beschriebenen Konvertierungen zwischen der Voxelund der Stackrepräsentation der Daten eines 3D-Tiles bei Bedarf durchzuführen Nutzung von 3D-Tiles Die Daten von 3D-Tiles können in Voxel- oder Stackrepräsentation vorliegen. Die Voxelrepräsentation der Daten wird für die Modifikation im Rahmen der Modellierung und die Isoflächextraktion verwendet, die Stackrepräsentation wird zur Persistierung genutzt. Ergebnis der Isoflächenextraktion sind 3D-Meshs, welche beim Rendering angezeigt werden. Abbildung 4.4 zeigt diese Nutzungsarten mit den entsprechenden Datentypen. 22

23 Abbildung 4.4: Nutzungsarten der 3D-Tiles mit den entsprechenden Datentypen Eine Isoflächenextraktion auf Basis der Stackdaten ist möglich, diese Möglichkeit wird in dieser Arbeit nicht genutzt, da sich die Abtastung der Daten in dieser Repräsentationsart im Vergleich zur Abtastung der Daten in Voxelrepräsentation als sehr ineffizient gestaltet. Stacks eignen sich für eine Erosionssimulation (Vgl. [PGMG09]), eine Erosionssimulation wird hier jedoch nicht weiter betrachtet. Die Modellierung basiert auf einer Voxelrepräsentation der Geländedaten. Es gibt Modifikationen mit lokalem Einfluss und Modifikationen mit globalem Einfluss, die auf den Daten in Voxelrepräsentation angewandt werden. 3D-Tiles werden bei lokaler Modellierung on the fly auf eine Modifikation ihrer Daten vorbereitet. Das heißt, dass die Daten der betroffenen 3D- Tiles in die Voxelrepräsentation konvertiert werden und nach Abschluss der Modifikation eine Isoflächenextraktion auf diesen Daten durchgeführt wird. Für eine Persistierung eignet sich die Stackrepräsentation gut, da sie für eine Beschreibung der gleichen Merkmale in den Daten im allgemeinen viel weniger Speicherplatz benötigt als die Voxelrepräsentation. Entsprechend den Erkenntnissen aus Abschnitt 3.4 lässt sich für das Rendering eine diskrete LoD-Technik anwenden. Dazu werden für ein 3D-Tile bei der Isoflächenextraktion mehrere Detailstufen erzeugt. Weiterhin kann mit dieser Partitionierung des Geländes durch 3D-Tiles ein View Frustum Culling durchgeführt werden. Die genaue Vorgehensweise wird bei den Sichtbarkeitsbetrachtungen in Abschnitt beschrieben Konfigurationsparameter des Geländes Es gibt bei dem komplexen 3D-Gelände verschiedene Eigenschaften, insbesondere bezogen auf den 3D-Datenraum, die durch eine Menge von Parametern abgebildet werden sollen. Um eine konsistente und eindeutige Definition der Parameter zu garantieren, werden diese an den 3D- Tiles festgemacht. Das heißt, dass z.b. die Auflösung des 3D-Datenraums des Geländes anhand eines 3D-Tiles festgelegt wird und nicht für das gesamte Gelände. So ist keine Einschränkung der Art nötig, dass z.b. die Anzahl der Voxel auf einer Achse ein Vielfaches der Anzahl der 3D-Tiles auf dieser Achse sein muss. Ohne solche Einschränkungen gestaltet sich eine Einstellung für den Endbenutzer einfacher und das Gesamtsystem ist weniger fehleranfällig. Integrale Parameter sind die Auflösung des Voxelraums, die Ausdehnung des Geländes in Längeneinheiten und die Auflösung der extrahierten Isoflächen. Alle diese Parameter werden für ein 3D-Tile für jede der drei Hauptachsen des Koordinatensystems definiert. Die Auflösung des Voxelraums für das gesamte Gelände auf einer Achse ergibt sich so aus der Gesamtanzahl der 23

24 3D-Tiles auf dieser Achse multipliziert mit der entsprechenden eingestellten Auflösung für ein 3D-Tile. Die Auflösung des Voxelraums definiert auf der Grundebene gleichzeitig die Auflösung des Gitters für die Stackrepräsentation. Die Anzahl der Abstufungen für die Höhen von Stacks bzw. deren Elementen ergibt sich auch aus dieser Einstellung, jedoch bezogen auf die Höhenachse. Die räumliche Ausdehnung eines Voxels kann mit der Auflösung des Voxelraums und der Ausdehnung eines 3D-Tiles berechnet werden. Abbildung 4.5 zeigt eine Auflistung dieser Parameter. Abbildung 4.5: Konfigurationsparameter für den 3D-Datenraum (immer bezogen auf die X-, Y- und Z-Achsen) Alle angegebenen Parameter sind in der Konfiguration des Editors (etwa in einer Konfigurationdatei) manuell, nicht interaktiv einzustellen. Weitere einzustellende Parameter für die komplexe 3D-Geländedarstellung im Editor sind Parameter für die Tiefpassfilterung bei der Isoflächenextraktion sowie Parameter für die Auswahlkriterien für Detailstufen bei der diskreten LoD-Technik, diese seien an dieser Stelle noch nicht genauer spezifiziert. Soll ein Gelände mit einer bestimmten Ausdehnung und Voxelraumauflösung eingestellt werden, so muss der Benutzer die Entscheidung treffen, wie die Partitionsgrößen einzustellen sind. Die Größe der 3D-Tiles, die Einflussbereiche von Modifikationen und die vorher benannten Parameter stehen alle in Wechselwirkung zueinander bezüglich der Performance bei der interaktiven Modellierung. Wie genau die Auswirkungen unterschiedlicher Konfigurationsparameter sind, wird in der Parameterstudie in Kapitel 5 (Abschnitt 5.6) untersucht. 4.3 Modellierer Hauptaspekt der Modellierung des komplexen 3D-Geländes im Editor sind Modifikationen am Gelände durch Werkzeuge, über die die Interaktionen des Benutzers realisiert werden. Die Modifikationen durch die Werkzeuge können als Operationen auf dem 3D-Datenraum des Geländes aufgefasst werden. Die interaktive Modellierung des Geländes wird mit lokalen Modifikationen, also Modifikationen mit lokalem Einflussbereich realisiert. Das Gelände selbst kann als Abbildung von Koordinaten auf Materialtypen aufgefasst werden. Eine allgemeine Modellierungsfunktion hat diese Abbildung als Argument und eine neue Abbildung als Ergebnis. Im folgenden sollen bei den Operationen auf dem 3D-Datenraum des Geländes nicht allgemeine Modellierungsfunktionen behandelt werden, sondern speziellere. Um die Echtzeitfähigkeit realisieren zu können, müssen die Einflussbereiche von Modifikationen an den Daten eingeschränkt werden. Das heißt, dass dort, wo das Ergebnis einer Operation von der Eingabe abweicht, nur Informationen aus einer gewissen lokalen Umgebung genutzt werden dürfen. 24

25 Die Erzeugung des Grundmodells für das Gelände ist Thema von Abschnitt Auf Basis dieses Grundmodells werden globale Anpassungen durchgeführt, die das Gelände mit einer groben Form ausstatten. Dies wird in Abschnitt beschrieben. In Abschnitt wird auf die interaktiven lokalen Änderungen eingegangen, mit denen der Benutzer des Editors das Gelände im Detail gestaltet Erzeugung des Grundmodells Das Grundmodell ist der Anfangszustand der Modellierung. Es ist ein leeres Gelände, dessen 3D- Datenraum keine landschaftlichen Merkmale, sondern nur Luft beinhaltet. Diese Funktionalität erzeugt alle 3D-Tiles und initialisiert sie mit Daten in Stackrepräsentation, wobei jeder Stack nur eine Luftschicht repräsentiert. Eine Isoflächenextraktion zur Darstellung der Isofläche findet nicht statt, stattdessen werden leere 3D-Meshs für alle Detailstufen erzeugt Globale Anpassungen Globale Anpassungen bauen auf dem Grundmodell auf. Mit einer globalen Anpassung wird dem Gelände auf Basis einer Funktion eine grobe Form verliehen. Es wird ein technischer Rahmen definiert, um globale Modifikationen am Gelände durchzuführen. Globale und lokale Modifikation können als Operationen auf dem 3D-Datenraum des Geländes aufgefasst werden, die partitionsweise angewendet werden. Der technische Rahmen für eine globale Modifikation sieht so aus, dass das Gelände auf Ebene der Daten der 3D-Tiles Stück für Stück in die Voxelrepräsentation konvertiert wird, dann modifiziert und erneut gerendert wird, dann die Daten wieder in die Stackrepräsentation konvertiert werden. Die Modifikation der Daten eines 3D-Tiles findet durch Anwendung der Funktion der Modifikation auf jedem Voxel dieser Daten und Schreiben des Funktionswertes in die Daten statt. Parametrisiert wird so eine globale Modifikation mit der Funktion, die auf den Daten der 3D-Tiles angewandt werden soll. Eine Klasse der globalen Modifikationen ist die Initialisierung des gesamten Geländes mit einer Funktion. Dazu gehört die Initialisierung aller Daten mit einem bestimmten Materialtyp oder die Erzeugung von sinusförmigen Erhebungen. Des Weiteren ist der Import einer Graustufen- Rastergraphik als Höhenfeld vorgesehen. Weitere globale Modifikationen wie z.b. die Ersetzung eines bestimmten Materialtyps im Gelände sind denkbar, werden hier aber nicht genauer spezifiziert. Die Geländedaten in Stackrepräsentation können auch in einer Datei persistiert und stückweise geladen, dann analog zu dem Vorgehen bei anderen Modifikationen in die Voxelrepräsentation konvertiert und dargestellt werden. Da die Verarbeitung bei einer globalen Modifikation auf Basis von 3D-Tiles durchgeführt wird, ist der aktuelle Bearbeitungszustand einfach beschrieben. Bei einer vorgegebenen Reihenfolge der Bearbeitung der 3D-Tiles ist es ausreichend zu speichern, welches 3D-Tile als nächstes bearbeitet wird. Mit so einer Zustandsbeschreibung ist es praktikabel, den Vorgang pausierbar zu gestalten. Es ist dem Benutzer anzuzeigen, wie weit eine globale Modifikation schon vorangeschritten ist, da diese bei großen Geländen im allgemeinen deutlich mehr Zeit in Anspruch nehmen als interaktive lokale Modifikationen Lokale Anpassungen Die lokale Modellierung im 3D-Gelände ist der wichtigste Modellierungsaspekt in dieser Arbeit, da nur diese bei großen Geländen interaktiv gewährleistet werden kann. Im Editor soll es Brush-Werkzeuge geben, mit denen lokale Modifikationen am Gelände durchgeführt werden. Brushes werden zur Aufbringung und zum Abtragen von verschiedenen Materialien im Gelände genutzt. Der Benutzer spezifiziert mit der graphischen Benutzungsoberfläche einen Raumpunkt, an dem der Effekt des Werkzeugs ansetzen soll. Diese Operation verändert die Daten des 3D-Datenraums in Voxelrepräsentation. Alle Voxel in einem gewissen Radius um diesen gegebenen Punkt werden dann auf einen bestimmten Materialtyp (solide Materialtypen 25

26 oder Luft) gesetzt, alle anderen Voxel behalten ihren Materialtyp bei. Es findet also eine Fallunterscheidung anhand der Abstände der Voxel zum Bezugspunkt statt. Für jeden Materialtyp soll es mindestens einen Brush mit konfigurierbarem Wirkradius oder mehrere Brushes mit verschiedenen voreingestellten Radien geben. Der Brush für den Materialtyp Luft entfernt vorhandenes solides Material aus dem Gelände, da dies mit dem Materialtyp Luft überschrieben wird. Charakteristisch für jeden Brush ist ein Wirkbereich. Der Wirkbereich für jede denkbare lokale Modifikation kann mit einer Bounding Box als Hüllkörper beschrieben werden, die beim Brush den eingestellten Radius als halbe Kantenlänge und den Bezugspunkt als Mittelpunkt hat. Mit Hilfe so einer für ein Werkzeug fest bestimmbaren Bounding Box wird ermittelt, welche 3D-Tiles von der Modellierung betroffen sind. Bevor eine Modifikation durchgeführt wird, werden die in Stackrepräsentation vorliegenden Daten der betroffenen 3D-Tiles in die Voxelrepräsentation konvertiert. Die Modifikation wird dann auf den Daten in Voxelrepräsentation durchgeführt. Nach der Isoflächenextraktion auf Basis der Voxelrepräsentation der Daten können die Daten der betroffenen 3D-Tiles wieder in die Stackrepräsentation zurück konvertiert werden. Wann genau die Rückkonvertierung in die Stackrepräsentation durchgeführt wird, hat Einfluss auf die Performance des Modelliervorgangs. Das konkrete Vorgehen wird bei den Optimierungen in Abschnitt 4.6 spezifiziert. Die Menge der von einer Modifikation betroffenen 3D-Tiles sei als Arbeitsbereich der lokalen Modellierung bezeichnet. Abbildung 4.6 stellt mit einem Brush als lokalem Werkzeug die Vorbereitung des Arbeitsbereichs auf die Modifikation der Daten dar. In diesem Beispiel wird Material abgetragen, d.h. das Material im vom Brush erfassten Bereich wird auf den Materialtyp Luft eingestellt. Die dann folgende Abbildung, Abb. 4.7, zeigt diesen Vorgang und die Rückkonvertierung der Daten der betroffenen 3D-Tiles in die Stackrepräsentation. Abbildung 4.6: Konvertierung des Arbeitsbereichs in die Voxelrepräsentation Abbildung 4.7: Durchführung von Änderungen und Rückkonvertierung Aus Sicht der Datenstruktur stehen bei einer atomaren Modellierungsoperation genau die Daten für Lese- und Schreiboperationen zur Verfügung, die sich im Arbeitsbereich befinden. Entsprechend soll die Einschränkung aus der Einleitung zu diesem Kapitel bezüglich der Lokalität der Informationen für alle Modellierungswerkzeuge Anwendung finden, sodass kein Zugriff auf Daten nötig ist, die im 3D-Datenraum weiter entfernt liegen. 26

27 4.4 Renderer Für das performante Rendering mit moderner Graphikhardware werden entsprechende Graphikprimitive, also 3D-Meshs benötigt. Solche 3D-Meshs werden mit einer Isoflächenextraktion aus den Geländedaten gewonnen, wie in Abschnitt behandelt. Sie werden dann entsprechend ihren Materialien mit Shadern texturiert, darauf wird in Abschnitt eingegangen. Um das Rendering zu beschleunigen, werden Teile des Geländes vom Rendering ausgenommen, die nicht sichtbar sind, sowie weiter entfernte Teile mit einer diskreten LoD-Technik mit weniger Details dargestellt. Diese Sichtbarkeitsbetrachtungen sind Thema von Abschnitt Abschließend wird in Abschnitt die Integration des Geländes als Ganzes in eine es umgebene 3D-Szene behandelt Isoflächenextraktion Moderne Graphikhardware benötigt polygonbasierte Graphikprimitive für einen performanten Renderingvorgang. Aus den Daten des Geländes ist eine Isofläche zu extrahieren, welche mit solchen Graphikprimitiven repräsentiert werden kann. Ein Werkzeug zur Isoflächenextraktion, das auch hier Anwendung finden soll, ist der Marching Cubes-Algorithmus (Vgl. Abschnitt 2.3.3). Mit diesem Algorithmus, wie auch mit anderen Algorithmen zur Isoflächenextraktion, wird der Voxelraum, also 3D-Tiles mit Daten in Voxelrepräsentation, abgetastet. Die Isoflächeextraktion arbeitet eigentlich auf einem Binärvolumen, bei dem nur zwischen Luft und nicht Luft unterschieden wird. Raumbereiche, die vollständig mit nicht Luft ausgefüllt sind, erhalten den Datenwert 1. Komplett lufterfüllte Bereiche erhalten den Datenwert 0. Für einen besseren visuellen Eindruck werden die genutzten Daten aber geglättet und interpoliert. Die zu extrahierende Isofläche hat den Datenwert 0,5. Analog zur Integrationsmethode aus Peytavie et al. ([PGMG09], Vgl. Abschnitt 2.3.1) soll hier auch über die Daten integriert werden. Hierbei wird für einen Datenpunkt ein sphärischer oder kubischer Bereich berücksichtigt und die Verhältnisse der Volumen der verschiedenen Materialien in diesem Bereich im Bezug auf das Gesamtvolumen darin bestimmt. Verschiedene Materialtypen werden auf der Isofläche durch unterschiedliche Texturen dargestellt. Die bestimmten Volumen der Materialien im Integrationsbereich werden als Grundlage für die Mischungsverhältnisse bei der Mischung der Texturen genutzt. Für die Bestimmung von Normalen der zu extrahierenden Isofläche ist eine Gradientenabschätzung notwendig. Dazu wird der 3D-Datenraum mehrmals mit der beschriebenen Integrationsmethode abgetastet und Zentraldifferenzen gebildet. 3D-Tiles teilen sich ihre Ränder. An diesen Rändern dürfen keine Diskontinuitäten bei der Isoflächenextraktion und Beleuchtungsberechnung auftreten, da diese den Benutzer beeinflussen würden. Der Nutzer wäre bestrebt, Diskontinuitäten durch eine andere Modellierung zu glätten, jedoch soll die Partitionierung des 3D-Datenraums keinen Einfluss auf die Modellierung haben. Da der 3D-Datenraum geglättet wird, müssen nicht nur die Daten der 3D-Tiles in Voxelrepräsentation vorliegen, aus denen die Isofläche extrahiert wird, sondern auch die umliegenden 3D-Tiles, damit diese zur Abtastung zur Verfügung stehen. Das Marching Cubes-Abtastgitter ist des Weiteren auch über die Randpunkte der 3D-Tiles gelegt. Auch ohne eine Tiefpassfilterung müssen so direkte Nachbarn eines 3D-Tiles, für das die Isofläche neu extrahiert werden soll, in Voxelrepräsentation vorliegen, um deren Datenwerte abtasten zu können. Abbildung 4.8 stellt dar, dass die Nachbarschaft aus 3D-Tiles ebenfalls in Voxelrepräsentation vorliegen muss, damit diese abgetastet werden kann. Abbildung 4.9 zeigt die glatten Übergänge zwischen 3D-Tiles, die bei der Isoflächenextraktion mit einer Abtastung über die Ränder hinweg erreicht werden können. Abbildung 4.10 zeigt diese Übergänge zwischen den entsprechenden Partitionen eines Geländes in 3D. 27

28 Abbildung 4.8: Für eine Tiefpassfilterung müssen auch die Daten aus benachbarten 3D-Tiles in Voxelrepräsentation vorliegen Abbildung 4.9: Glatte Übergänge an den Grenzen benachbarter 3D-Tiles Abbildung 4.10: Glatte Übergänge zwischen benachbarten Partitionen eines Geländemodells in Hangover Texturierung Wie bereits bei den Anforderungen und der Problemdiskussion motiviert (Vgl. Abschnitt 3.3), müssen bei der Texturierung des Geländes verschiedene Ziele erreicht werden. Die verschiedenen Materialtypen sollen mit verschiedenen Texturen visualisiert werden, mit weichen Übergängen an den Grenzen. UV-Maps für Texturkoordinaten können keine Anwendung finden, da sich die Geländedaten durch interaktive Modifikationen beliebig verändern können. Die Texturierung soll nahtlos sein. Um diese Ziele zu erreichen, wird mit Shadern eine spezielle Projektionsart für Texturen eingesetzt. Bei der Isoflächenextraktion werden hierfür die Normalen und die Mischungsverhältnisse der Materialien für die Vertizes des 3D-Meshs bestimmt. Die Projektion der Texturen funktioniert genau so wie von Peytavie et al. ([PGMG09]) beschrieben, siehe dazu Abschnitt

29 Die Farbwerte der Projektionen der Texturen für die verschiedenen Materialtypen werden anhand der Mischungsverhältnisse an den Vertizes gemischt. Bei den Normalen und den Mischungsverhältnissen findet über die Dreiecke hinweg eine Interpolation statt. Normalen werden, auch für die Schattierung, für jedes Fragment noch normalisiert, die Material-Mischungsverhältnisse werden so übernommen wie sie in interpolierter Form vorliegen. Konzeptionell findet so ein Texture Splatting statt, wobei die Projektionen der verschiedenen Texturen mit einer Maske gemischt werden, die sich aus den Mischungsverhältnissen ergibt. Diese Technik vermeidet Diskontinuitäten und Verzerrungen, da immer die Projektion am stärksten gewichtet wird, die die Ausrichtung der Oberfläche an einem Punkt im Gelände am besten repräsentiert (Vgl. Abschnitt 3.3). Abbildung 4.11 stellt den weichen Übergang zwischen zwei Materialtypen dar. Abbildung 4.12 zeigt ein Ergebnis dieser Texturierungstechnik mit Texture Splatting und dem Vermischen der Projektionen. Abbildung 4.11: Weicher Übergang zwischen verschiedenen Materialtypen in Hangover Abbildung 4.12: Texture Splatting in Hangover, basierend auf den Mischungsverhältnissen der Materialien an den Vertizes Sichtbarkeitsbetrachtungen Um das Rendering des Geländes performanter zu gestalten, eignen sich hier speziell eine diskrete LoD-Technik sowie View Frustum Culling, da beide auf Basis der 3D-Tiles operieren können. Die Grundlagen dazu wurden in den Abschnitten und vorgestellt. Die 3D-Tiles eignen sich dafür, mit ihnen mehrere 3D-Meshs zu assoziieren, die verschiedene diskrete Detailstufen repräsentieren. Diese sollen bei der Meshsynthese nach einer Veränderung an den Daten eines 3D-Tiles aus diesen gewonnen werden. Es wird also nicht nur die feinste Detailstufe extrahiert, sondern auch gröbere Detailstufen. Die Anzahl der verschiedenen Detailstufen ergibt sich aus der eingestellten Auflösung des 3D-Datenraumes in Voxelrepräsentation. Zuerst wird die feinste Detailstufe mit der Isoflächextraktion gewonnen. Für die nächst gröbere Detailstufe wird die Auflösung bei der Isoflächenextraktion auf allen Achsen halbiert. Dieser 29

30 Prozess endet, sobald auf einer Achse ein Minimum in der Auflösung erreicht wurde, das sich nicht weiter halbieren lässt. Dies ist der Fall, wenn sich der mit einem 3D-Tile assoziierte 3D- Datenraum auf einer Achse nur noch über einen Voxel erstreckt. Abhängig vom Abstand des Betrachters zu den Mittelpunkten der 3D-Tiles werden dann die Detailstufen beim Rendering ausgewählt. Dazu wird die Distanz d vom Blickpunkt zum Mittelpunkt eines 3D-Tiles konfiguriert, bis zu der die feinste Detailstufe angezeigt wird. Die Distanzen für die gröberen Detailstufen ergeben sich durch die Verdopplung dieses initial eingestellten Werts (nächst gröbere Detailstufe bei 2 d, dann 4 d). Die gröbste Detailstufe wird auch angezeigt, falls die entsprechende Distanz nicht mehr eingehalten wird. Die Umschaltdistanzen wurden so gewählt, weil sich in der eingesetzten perspektivischen Projektion der abgedeckte Bildbereich eines Objekts auf ein Viertel verkleint, wenn die Distanz des Objekts zum Betrachter verdoppelt wird. Um Popping-Artefakte 1 durch plötzlich erscheinende Detailstufen zu vermeiden, ist es möglich, die Detailstufen für einen weichen Übergang über eine kurze Zeit in ihrer Transparenz anzupassen (Vgl. alpha-fade aus [Gei08]). Zur Umsetzung eines View Frustum Cullings wird für jedes 3D-Tile entschieden, ob es dargestellt wird oder nicht. Jedes 3D-Tile hat die gleichen Abmessungen und ist in einem regulären Gitter angeordnet. Wird ein 3D-Tile dargestellt und ein Nachbar davon nicht, so lassen sich die Nachbarschaftsbeziehungen ausnutzen und entsprechend alle weiteren 3D-Tiles auf der Achse in Richtung des nicht dargestellten 3D-Tiles nicht darstellen. Der Test, ob ein 3D-Tile im View Frustum liegt oder nicht, kann konservativ oder exakt durchgeführt werden. Bei einem konservativen Test werden alle potenziell sichtbaren 3D-Tiles angezeigt, es wird aber nicht garantiert, dass nicht sichtbare 3D-Tiles tatsächlich nicht gerendert werden. Dieser Test kann den Abstand des Mittelpunkts eines 3D-Tiles zu den begrenzenden Ebenen des View Frustums als Grundlage nutzen. Ein exakter Test nutzt entsprechend die Eckpunkte der Bounding Box des 3D-Tiles. Abbildung 4.13 stellt das View Frustum und die dazu passende Sichtbarkeit der 3D-Tiles dar. Abbildung 4.13: Das View Frustum und die dazu angezeigten 3D-Tiles Des Weiteren wird die Innenseite des Geländes stets verdeckt sein. Um diese vom Rendering auszunehmen, ist Backface Culling bei der Anzeige der 3D-Meshs zu nutzen. Die Datenstruktur eignet sich durchaus auch dafür, mit den 3D-Tiles weitere Informationen bezüglich des Renderings zu assoziieren. Denkbar wäre eine vom Benutzer einstellbare Importance, welche Einfluss darauf hat, welche Detailstufen bei der LoD-Technik unter welchen Umständen ausgewählt werden Integration des Geländes in eine Szene Ein komplexes 3D-Gelände wird im Normalfall wahrscheinlich nicht allein in einer Anwendung eingesetzt. Es ist zu erwarten, dass die Anwendung außerdem Daten im Gelände visualisiert 1 Bildfehler, visuelle Sprünge 30

31 oder andere Gegebenheiten einer 3D-Szene mit dargestellt werden. Auch die Verwendung in Computerspielen ist zu berücksichtigen, wobei sich Spieler direkt durch das Gelände bewegen oder indirekt Einheiten und Gebäude darauf platzieren. Damit das Gelände in eine Szene integriert werden kann, dürfen die Ränder des Geländes nicht visuell hervorstechen. Die Beleuchtung des Geländes muss der Beleuchtung der Umgebung angepasst werden, insbesondere im Bezug auf die Farbwerte und die Richtung der Schatten. Für visuell ansprechende Ergebnisse bei der Isoflächenextraktion findet eine Glättung der Daten statt. Um korrekte Übergänge zu benachbarten Geländemodellen oder einer Grundebene sicherzustellen, soll mit einer Funktion eingestellt werden, welche konkreten Materialtypen bei einer Abtastung von Raumpunkten außerhalb des definierten 3D-Datenraums des Geländes ausgegeben werden. Abbildung 4.14 zeigt den Effekt so einer Materialdefinition. Abbildung 4.14: Definiertes Bodenmaterial Gestein, und Luft an den Seiten des Geländes in Hangover : Das Gelände schließt trotz Glättung in den Daten mit der Grundfläche ab Anwendungsabhängig können polygonbasierte 3D-Modelle im Gelände platziert werden. Diese Modelle sowie das Gelände können wegen der indirekten Volumenvisualisierung des Geländes mit der gleichen Technologie in einem Pass gerendert werden. Für eine genaue Verdeckungsrechnung der Modelle mit dem Gelände kann vom Z-Buffer Gebrauch gemacht werden. Für einen realistischeren Eindruck der Szene können 3D-Modelle von natürlichen Dingen wie z.b. Pflanzen und Steinen im gelände Platziert werden. Des Weiteren eignen sich Graphikeffekte wie volumetrische Wolkendarstellungen, eine Skybox oder Dunst- und Nebeleffekte im Gelände zur Unterstützung des Realismus. Der Aspekt der Materialerfüllung der Datenstruktur lässt sich in Visualisierungen, Simulationen und Spielen weiter ausnutzen, z.b. durch visuelle Schnittdarstellungen oder Reaktionen auf Ereignisse in einer Simulation. Als Anwendungsbeispiel diene eine Anwendung zur Lokalisierung von Lawinenopfern. Mittels einer Schnittdarstellung wird ein Problembereich visuell leichter zugänglich. Mit einer Erosionssimulation können dann mögliche Lawinenabgänge simuliert werden. 4.5 Benutzungsoberfläche Die graphische Benutzungsoberfläche bildet die Schnittstelle vom Benutzer zu den Funktionen des Editors. Dafür ist ein konventionelles Fenster in einem Fenstersystem vorgesehen, bei dem Eingaben mit Maus und Tastatur getätigt werden. Der Benutzer soll die Möglichkeit haben, sich mit Hilfe dieser Schnittstelle im Gelände zu bewegen und Werkzeuge zur lokalen und globalen Modifikation des Geländes auszuwählen und anzuwenden. Bei lokalen Werkzeugen soll dem Benutzer ermöglicht werden, direkt in der Anzeige des Geländes Änderungen vorzunehmen. 31

32 4.6 Optimierungen Wird am Gelände eine Modellieraktion durchgeführt, so besteht diese aus atomaren Modifikationen der Datenstruktur. Hierbei gibt es eine Kohärenz, denn aufeinanderfolgende atomare Modifikationen werden beim Brushing meist in unmittelbarer Nachbarschaft zueinander durchgeführt. Es ist anzunehmen, dass sich dabei die Blickrichtung und Position des Betrachters auch nicht ändern. Abbildung 4.15 zeigt einen Brushing-Vorgang, der aus mehreren atomaren Modifikationen besteht. Abbildung 4.15: Brushing in Hangover, gelbe Punkte symbolisieren die Ansatzpunkte für die atomaren Modifikationen Diese Kohärenzen sollen für eine bessere Performance ausgenutzt werden. Die Konvertierung zwischen Stack- und Voxelrepräsentation der Daten eines 3D-Tiles kostet Rechenzeit. Um diese Konvertierungen zu reduzieren, können die Daten von 3D-Tiles, die in Voxelrepräsentation vorliegen, nach einer Modifikation in dieser Repräsentationsart verbleiben. Findet eine erneute Modifikation statt, so wird ermittelt, von welchen 3D-Tiles die Daten zusätzlich in diese Repräsentationsart konvertiert werden müssen und welche in die Stackrepräsentation zurück konvertiert werden können. Die Daten der Differenzmengen werden dann in Vorbereitung auf eine neue atomare Modifikation konvertiert, die Daten der Schnittmenge der Arbeitsbereiche verbleiben in Voxelrepräsentation. Abbildung 4.16 zeigt das Prinzip mit den Differenzmengen und der Schnittmenge der Arbeitsbereiche. Abbildung 4.16: Die Daten der Schnittmenge von zwei Arbeitsbereichen werden in der Voxelrepräsentation belassen Steht etwas Speicherplatz zur Verfügung, kann ein Pool von 3D-Tiles vorgehalten werden, deren Daten in Voxelrepräsentation vorliegen. Mittels eines mit jedem 3D-Tile assoziierten Alters oder einem anderen Prioritätskriterium wird festgelegt, welche 3D-Tiles wann zurück konvertiert 32

33 werden. Auf diese Weise kann der Arbeitsbereich der Modellierung, der in Voxelrepräsentation vorliegt, dynamisch wachsen und so müssen weniger Konvertierungen durchgeführt werden. Steht kein Speicherplatz für so einen Pool von 3D-Tiles zur Verfügung, so werden die Daten der 3D- Tiles, die von der ersten, aber nicht der zweiten Modifikation betroffen sind, umgehend wieder in die Stackrepräsentation überführt. Auch bei einer globalen Modifikation, bei der das Gelände stückweise bearbeitet wird, spart die vorgestellte Differenz-Konvertierung Rechenarbeit und steigert so die Performance. 33

34 Kapitel 5 Implementierung Die rechentechnische Umsetzung des Konzepts ist der Geländeeditor Hangover. Dieser Prototyp zeigt, dass entsprechend des Konzepts eine Echtzeit-Modellierung von 3D-Geländen realisiert werden kann. Zuerst wird kurz die dem Programm zugrundeliegende Graphikengine vorgestellt (Abschnitt 5.1). Dann werden die hier implementierte Datenstruktur sowie Werkzeuge vorgestellt, die auf dieser Datenstruktur arbeiten (Abschnitte 5.2, 5.3). Das Rendering wird in Abschnitt 5.4 behandelt, gefolgt von anwendungsspezifischen Lösungen für das Interface (Abschnitt 5.5). Abschließend wird noch eine Parameterstudie vorgestellt, bei der der Einfluss verschiedener zu konfigurierender Parameter auf die Leistung der Datenstruktur beleuchtet wird (Abschnitt 5.6). 5.1 Graphikengine Die zugrundeliegende Graphikengine nutzt als API für die Ansteuerung der Graphikhardware OpenGL. Shader werden in der GL Shading Language (GLSL) verfasst, Texturen werden als Rastergraphiken im PNG-Format geladen. JPG-Graphiken wären für den vorliegenden Anwendungsfall angemessener, konnten aber zum Zeitpunkt der Entwicklung vom System noch nicht verarbeitet werden. Die OpenGL-Funktionalitäten werden durch einen Szenengraphen bereitgestellt. Teilprojekte wie der Marching Cubes-Algorithmus oder die graphische Benutzungsoberfläche des Editors liegen als separate wiederverwendbare Module vor. 3D-Meshs werden als OpenGL-Vertex Buffer Objects verwaltet und im Speicher der Graphikhardware vorgehalten. Die Graphikengine hat eine Art Flugmodus zur freien Navigation. Dieser kann unabhängig von den konkreten Geländedaten des Editors immer eingesetzt werden. 5.2 Datenstruktur Die Datenstruktur der Implementierung bildet entsprechend des Konzepts ein Gitter von 3D- Tiles mit den entsprechenden einstellbaren Konfigurationsparametern ab (Vgl. Abschnitt 4.2.2), jedoch wird hier nur eine zweidimensionale Schicht von 3D-Tiles unterstützt, d.h. es können keine zwei 3D-Tiles übereinander liegen. Exemplarisch wurden drei Materialtypen umgesetzt, welche visuell durch zwei verschiedene Texturen dargestellt und anhand ihrer Mischungsverhältnisse zueinander kombiniert werden: Gestein, Sand und Luft. Diese werden bei der Texturierung auch weich ineinander überblendet. Gestein und Sand werden durch eine zusammenhängende Isofläche dargestellt. Entsprechend Abschnitt wurden die Materialtypen außerhalb des Geländes mit einer Funktion definiert. In Richtung Boden ist Gestein, alle sonstigen Richtungen sind als mit Luft erfüllt definiert. Die Materialtypen als kategorischer Datentyp werden mit einem Byte codiert. Die Schichtdicken von Stacks werden ebenfalls in Bytes codiert. Soll ein Stack in den Daten größer als

35 Voxeleinheiten sein, werden mehrere Stackelemente gleichen Materialtyps übereinander gelegt. Stackelemente mit der Höhe 0 bilden einen Abschluss, der Rest des Stacks in Höhenrichtung wird bei so einem Abschluss als mit Luft erfüllt angenommen. Ein Picking in den Daten wurde auch implementiert. In der Problemdiskussion wurden zwei Ansätze dafür vorgestellt: Basierend auf den gerenderten Geometriedaten oder basierend auf den vorliegenden Daten in Voxel- oder Stackrepräsentation (Vgl. Abschnitt 3.2). Für das Picking werden hier nicht die extrahierten Oberflächen, sondern die vorliegenden 3D-Geländedaten verwendet. Es wurden konkret eine Pickingmethode für die Stackrepräsentation sowie eine für die Voxelrepräsentation implementiert. 5.3 Werkzeuge Werkzeuge stellen die Interaktionsmöglichkeiten für den Benutzer des Editors dar und führen die Modifikationen auf dem Gelände durch. Sie haben entsprechend des Konzepts einen einheitlichen technischen Rahmen (Vgl. Abschnitt 4.3). Die Werkzeugpalette ist ohne großen Aufwand um neue Werkzeuge erweiterbar, welche lesenden und schreibenden Zugriff auf die Datenstruktur haben. Der einheitliche Rahmen gewährleistet, dass das 3D-Modell des Geländes zeitnah aktualisiert wird und die Werkzeuge immer auf einer Voxelrepräsentation der Daten der 3D-Tiles arbeiten können. Abbildung 5.1 zeigt die Werkzeugpalette im Editor. Im Folgenden werden die implementierten globalen Werkzeuge (Abschnitt 5.3.1) und dann die lokalen Werkzeuge (Abschnitt 5.3.2) behandelt. Abbildung 5.1: Werkzeugleiste in Hangover Die Optimierung aus dem Konzept, Differenzmengen von 3D-Tiles zu konvertieren, wurde in der Implementierung für die lokale und die globale Modellierung angewandt (Vgl. Abschnitt 4.6) Global Werkzeuge Entsprechend des Konzepts wurden globale Werkzeuge implementiert. Der Editor stellt einen Rahmen bereit, der das Gelände stückweise konvertiert und mit einem globalen Werkzeug bearbeitet (Vgl. Abschnitt 4.3.2). Die globalen Werkzeuge werden in der Werkzeugleiste durch die gelblich hinterlegten Icons repräsentiert (Vgl. Abb. 5.1). Es wurden Werkzeuge zur Initialisierung des Geländes und zum Laden von Daten in Stackrepräsentation implementiert. Die Operationen aller globalen Werkzeuge bis auf das Laden von Daten in Stackrepräsentation können abgebrochen werden, da nach Bearbeitung jedes 3D-Tiles ein konsistenter Zustand gegeben ist. Der Ladevorgang kann nicht abgebrochen werden, da dieser auf Performance optimiert ist und erst am Ende dieses Vorgangs wieder ein konsistenter Zustand vorliegt. Es stehen noch weitere Werkzeuge bereit, die im Konzept nicht beschrieben wurden. Eines davon ist das Ausfüllen jedes Voxels im 3D-Datenraum mit einem zufällig gewählten Material, zu Testzwecken. Für eine genaue Untersuchung des Systems steht auch ein Werkzeug bereit, das an den Rändern von 3D-Tiles Material ablegt (sodass diese Ränder solide werden). 35

36 5.3.2 Lokale Werkzeuge Als lokale Werkzeuge wurden Brushs mit verschiedenen Parameterausprägungen implementiert, wie in Abschnitt spezifiziert. Nutzbar sind Brushs für die drei Materialien Sand, Gestein und Luft mit je drei voreingestellten Radien. Diese werden in der Werkzeugleiste durch die neun Icons mit den Ziffern 1-3 repräsentiert (Vgl. Abb. 5.1). Die Radien selbst können in der Konfiguration verändert werden. Wird ein Brush einmal genutzt, so stellt dies eine atomare Modifikation an der Datenstruktur dar. Mit einem einstellbaren Wiederholungsintervall wird geregelt, mit welcher Frequenz sich diese Modifikation an der aktuellen Position des Mauszeigers wiederholt. Erst beim Beenden der Aktion (z.b. durch Loslassen der entsprechenden Taste) werden auch diese periodischen Modifikationen wieder unterlassen. Mit korrekt eingestellten Parametern entsteht so der Eindruck einer kontinuierlich angewandten Brushing-Technik. 5.4 Rendering Für das Rendering in der Graphikengine werden mit einer Isoflächenextraktion 3D-Meshs erzeugt. Für die Isoflächenextraktion kommt eine von mir programmierte einfache Marching Cubes- Implementierung zum Einsatz, die wegen dem Implementierungsaufwand noch keine Mehrdeutigkeiten behebt. Ich entschied mich bei diesem Prototypen eines Editors für eine Eigenimplementierung des Algorithmus, da im C++-Umfeld der integrative Aufwand von Fremdcode im allgemeinen hoch ist und ich auf diese Weise an den Vertizes direkt Normalen und die Mischungsverhältnisse der Materialtypen zueinander bereitstellen konnte. In Abschnitt wird im Konzept die Abtastmethode mittels Integration über Raumbereiche beschrieben. Wegen dem geringeren Implementierungsaufwand werden bei dieser Implementierung keine Daten in Raumbereichen aufsummiert, sondern es wird eine Abschätzung vorgenommen. Bei einem Abtastvorgang werden die Datenwerte am abzutastenden Punkt und die von sechs weiteren Punkten um diesen herum, auf den drei Koordinatenachsen und mit gleichem Abstand zum Referenzpunkt, bestimmt und der Durchschnittswert gebildet. Die Abschätzung von Gradienten für die Beleuchtungsnormalen setzt auf diesem Abtastmechanismus auf, denn er wird für die Berechnung von Zentraldifferenzen mehrfach angewandt. Durch die Verwendung der Grundform des Marching Cubes-Algorithmus sowie der einfacheren Abtastung der Daten entstehen gewisse Artefakte wie z.b. kleine Löcher im 3D-Mesh und vereinzelt falsche Datenwerte für die Texturierung, diese lassen sich jedoch prinzipiell beheben. Die Texturierung mit Shadern verläuft genau wie in dem in Abschnitt beschriebenen Verfahren. Zur Schattierung des Modells wird N L-Lighting eingesetzt. Die Lichtintensitäten werden dabei nicht wie beim Gouraud Shading vertexbasiert berechnet und über die Fragmente interpoliert, sondern für jedes Fragment berechnet. Dazu werden die vertexbasierten Normalen über die Fragmente interpoliert und dann für jedes Fragment normiert. Des Weiteren wird ein ambienter Term eingesetzt, um sonst zu dunkle Bereiche aufzuhellen. Abbildung 5.2 zeigt ein mit diesen Techniken texturiertes und schattiertes Gelände im Editor. Es wird ein einfaches Backface Culling eingesetzt, welches als Grundfunktion von OpenGL bereitsteht. Ein View Frustum Culling wurde erwägt, jedoch nicht umgesetzt. Zur Visualisierung stehen verschiedene Shader bereit. Neben der vorgestellten Technik, welche auf Projektionen und Texture Splatting basiert, wurde auch ein Shader implementiert, bei dem die verschiedenen Texturprojektionen nicht anteilig gemischt werden, sondern jeweils die für ein Fragment passendste Projektion gewählt wird. Mit diesem Shader ist es möglich zu demonstrieren, warum eine kontinuierliche Texturierung des Geländes erstrebenswert ist. Es stehen auch Shader zur Verfügung, mit denen die Partitionierung in 3D-Tiles sowie Höhenlinien oder die Ausrichtung der Normalen im Weltkoordinatensystem visualisiert werden können. Unabhängig von den Shadern ist es möglich, separierende Ebenen zwischen den 3D-Tiles sowie ein Gitternetz auf der Grundebene anzuzeigen. 36

37 Abbildung 5.2: Texturiertes Gelände in Hangover 5.5 Interface Um den Benutzer im vorliegenden Anwendungsfall eines 3D-Editors zu unterstützen, wird stets graphisch angezeigt, welche Werkzeuge gerade aktiv sind. Dem Benutzer steht des Weiteren ein übersichtliches Menü zur Verfügung, in dem die Werkzeuge und andere Funktionen ausgewählt werden können (Vgl. Abb. 5.1). Die Modellierung in der 3D-Welt funktioniert nach dem Prinzip, dass genau dort Änderungen geschehen, wo es mit der Maus durch den Nutzer angezeigt wurde. Diese Methode soll die Bearbeitung des Geländes intuitiver gestalten. Die Einstellung, welche Werkzeuge mit welchen Tastatur- und Maustasten assoziiert werden, wird wie die Einstellung aller Parameter des Geländes und der Parameter für die einzelnen Werkzeuge an sich in einer Konfigurationsdatei vorgenommen. 5.6 Parameterstudie Ziel dieser kurzen Studie ist, herauszufinden, wie sich verschiedene Faktoren, d.h. ausgewählte konfigurierbare Parameter, auf die Renderingperformance auswirken. Da die interaktive Modellierung und Meshsynthese für das Rendering für diese Arbeit sehr wichtig sind, soll ein Test durchgeführt werden, der sich speziell auf diese Mechanismen bezieht. Die verschiedenen Parameter, die die Datenstruktur charakterisieren, wurden in Abschnitt vorgestellt. Der Test wendet das Werkzeug Gestein, grob, also den großen Brush für die Platzierung von Gestein im Gelände, zehnmal am Mittelpunkt der Bodenebene des Geländes an. Diese Aktion wird mindestens zweimal durchgeführt, sodass ein Steady State erreicht wird, bei dem die Daten aller betroffenen 3D-Tiles in Voxelrepräsentation vorliegen. Für den Vorgang der Modifikation der vorliegenden Daten und die anschließende Meshsynthese mittels Marching Cubes- Algorithmus wird dabei die Zeit gestoppt. Da absolute Zeitdauern von System zu System unterschiedlich sind, werden die Dauern bei Veränderung der Parameter zueinander in Bezug gesetzt. Es wird der Shader Normals sowie eine Default-Kameraeinstellung (Druck auf F1 im Editor) gewählt. Der Computer, auf dem dieser Test stattfindet, ist ein Laptop der Marke Packard Bell, Modell Easynote LJ 65. Dieser verfügt über einen Intel Core 2 Duo-Prozessor, eine Ati Radeon HD 4570-Graphikkarte mit 512 MB Speicher sowie 4 GB DDR3-Hauptspeicher. Das genutzte Betriebssystem ist die englische 64bit-Version von Windows Vista Business. Sofern nicht als abweichend angegeben, werden folgende Parameter genutzt: 3D-Tiles im Gelände (Anzahl X Z): D-Tile-Ausdehnung (X Z Y in Längeneinheiten):

computer graphics & visualization

computer graphics & visualization Entwicklung und Implementierung echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs Motivation

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

Terrain-Rendering mit Geometry Clipmaps

Terrain-Rendering mit Geometry Clipmaps Vorarbeiten & Grundlagen Basiskomponenten Der Clipmap-Algorithmus Terrain-Rendering mit Seminar Computergrak 2010 Vorarbeiten & Grundlagen Basiskomponenten Der Clipmap-Algorithmus Worum geht's? Algorithmus

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Microsoft Access 2013 Navigationsformular (Musterlösung)

Microsoft Access 2013 Navigationsformular (Musterlösung) Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Access 2013 Navigationsformular (Musterlösung) Musterlösung zum Navigationsformular (Access 2013) Seite 1 von 5 Inhaltsverzeichnis Vorbemerkung...

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Option 1: Hinzufügen eines Schritts zur Bearbeitungsliste... 2

Option 1: Hinzufügen eines Schritts zur Bearbeitungsliste... 2 Erklärung der Bearbeitungsliste Frage Wie verwende ich die Bearbeitungsliste? Antwort Alle Optimierungen, die auf Bilder angewandt werden, und im Rahmen der einzelnen Optimierungen jeweils vorgenommenen

Mehr

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen 3D-Rendering Ulf Döring, Markus Färber 07.03.2011 1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen Anzeigefläche (a) Worin besteht das Sichtbarkeitsproblem?

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Content Management System mit INTREXX 2002.

Content Management System mit INTREXX 2002. Content Management System mit INTREXX 2002. Welche Vorteile hat ein CM-System mit INTREXX? Sie haben bereits INTREXX im Einsatz? Dann liegt es auf der Hand, dass Sie ein CM-System zur Pflege Ihrer Webseite,

Mehr

Erinnerung. Arbeitsschritte der Computergraphik. Modellierung. Animation. Rendering. Ausgabemedium. Generierung

Erinnerung. Arbeitsschritte der Computergraphik. Modellierung. Animation. Rendering. Ausgabemedium. Generierung Erinnerung Arbeitsschritte der Computergraphik Modellierung Animation Generierung Ausgabemedium Graphik/-Pipeline Wandelt die Beschreibung einer Szene im dreidimensionalen Raum in eine zweidimensionale

Mehr

Die Lernumgebung des Projekts Informationskompetenz

Die Lernumgebung des Projekts Informationskompetenz Beitrag für Bibliothek aktuell Die Lernumgebung des Projekts Informationskompetenz Von Sandra Merten Im Rahmen des Projekts Informationskompetenz wurde ein Musterkurs entwickelt, der den Lehrenden als

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Anleitung für den Euroweb-Newsletter

Anleitung für den Euroweb-Newsletter 1. Die Anmeldung Begeben Sie sich auf der Euroweb Homepage (www.euroweb.de) in den Support-Bereich und wählen dort den Punkt Newsletter aus. Im Folgenden öffnet sich in dem Browserfenster die Seite, auf

Mehr

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Wir wollen, dass ihr einfach für eure Ideen und Vorschläge werben könnt. Egal ob in ausgedruckten Flyern, oder in sozialen Netzwerken und

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Festigkeit von FDM-3D-Druckteilen

Festigkeit von FDM-3D-Druckteilen Festigkeit von FDM-3D-Druckteilen Häufig werden bei 3D-Druck-Filamenten die Kunststoff-Festigkeit und physikalischen Eigenschaften diskutiert ohne die Einflüsse der Geometrie und der Verschweißung der

Mehr

GeoPilot (Android) die App

GeoPilot (Android) die App GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen

Mehr

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Computer Graphik II Tesselierung impliziter Kurven und Flächen

Computer Graphik II Tesselierung impliziter Kurven und Flächen Computer Graphik II impliziter Kurven und Flächen 1 impliziter Flächen Problem: Nullstellenmenge kann nicht explizit berechnet werden! Lösung: ApproximaCon der Fläche auf Zellen Beispiel 2D: f p ( )

Mehr

Animation ist das Erzeugen von Filmen mit Hilfe der Computergrafik. Objekte bewegen sich hierbei oder Beleuchtung, Augpunkt, Form,... ändern sich.

Animation ist das Erzeugen von Filmen mit Hilfe der Computergrafik. Objekte bewegen sich hierbei oder Beleuchtung, Augpunkt, Form,... ändern sich. Kapitel 1 Animation (Belebung) Animation ist das Erzeugen von Filmen mit Hilfe der Computergrafik. Objekte bewegen sich hierbei oder Beleuchtung, Augpunkt, Form,... ändern sich. Anwendungen findet die

Mehr

Thematische Abfrage mit Computerlinguistik

Thematische Abfrage mit Computerlinguistik Thematische Abfrage mit Computerlinguistik Autor: Dr. Klaus Loth (ETH-Bibliothek Zürich) Zusammenfassung Der Beitrag befasst sich mit dem Einsatz der Computerlinguistik bei der thematischen Abfrage einer

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Microsoft Access 2010 Navigationsformular (Musterlösung)

Microsoft Access 2010 Navigationsformular (Musterlösung) Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Access 2010 Navigationsformular (Musterlösung) Musterlösung zum Navigationsformular (Access 2010) Seite 1 von 5 Inhaltsverzeichnis Vorbemerkung...

Mehr

Avira Server Security Produktupdates. Best Practice

Avira Server Security Produktupdates. Best Practice Avira Server Security Produktupdates Best Practice Inhaltsverzeichnis 1. Was ist Avira Server Security?... 3 2. Wo kann Avira Server Security sonst gefunden werden?... 3 3. Was ist der Unterschied zwischen

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung 1 Einleitung 1.1 Motivation und Zielsetzung der Untersuchung Obgleich Tourenplanungsprobleme zu den am häufigsten untersuchten Problemstellungen des Operations Research zählen, konzentriert sich der Großteil

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Netzwerkeinstellungen unter Mac OS X

Netzwerkeinstellungen unter Mac OS X Netzwerkeinstellungen unter Mac OS X Dieses Dokument bezieht sich auf das D-Link Dokument Apple Kompatibilität und Problemlösungen und erklärt, wie Sie schnell und einfach ein Netzwerkprofil unter Mac

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Advanced Rendering Interior Szene

Advanced Rendering Interior Szene Advanced Rendering Interior Szene in Cinema 4D 11-11.5 Als erstes, sollten Sie ihre Szene in Cinema 4D öffnen. vergewissern sie sich, ob alle Licht quellen die evtl. mit importiert wurden, aus der Szene

Mehr

Beschreibung des MAP-Tools

Beschreibung des MAP-Tools 1. Funktionen des MAP-Tool 2. Aufbau des MAP-Tools 3. Arbeiten mit dem MAP-Tool Beschreibung MAP-Tool.doc Erstellt von Thomas Paral 1 Funktionen des MAP-Tool Die Hauptfunktion des MAP-Tools besteht darin,

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

ecaros2 - Accountmanager

ecaros2 - Accountmanager ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

WordPress. Dokumentation

WordPress. Dokumentation WordPress Dokumentation Backend-Login In das Backend gelangt man, indem man hinter seiner Website-URL einfach ein /wp-admin dranhängt www.domain.tld/wp-admin Dabei gelangt man auf die Administrationsoberfläche,

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Tutorial about how to use USBView.exe and Connection Optimization for VNWA. Tutorial about how to use USBView.exe and Connection Optimization for VNWA. Tutorial über den Gebrauch von USBView.exe und die Anschluss-Optimierung für den VNWA. Es wurde beobachtet, dass bestimmte VNWA

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Kurz-Anleitung zum Erstellen eines HotPot-Test

Kurz-Anleitung zum Erstellen eines HotPot-Test Kurz-Anleitung zum Erstellen eines HotPot-Test Mit HIlfe der Tätigkeit HotPot-Test können Sie für Studierende interaktive Tests einbinden um ihren Wissenstand zu überprüfen. Der Test muss über die Autorensoftware

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Postfach aufräumen und archivieren

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Postfach aufräumen und archivieren Handbuch ECDL 2003 Professional Modul 3: Kommunikation Postfach aufräumen und archivieren Dateiname: ecdl_p3_04_03_documentation.doc Speicherdatum: 08.12.2004 ECDL 2003 Professional Modul 3 Kommunikation

Mehr

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE Dezernat 6 Abteilung 4 Stand: 14.Oktober 2014 Inhalt 1. Einleitung 3 2. Räume & gemeinsame Termine finden 3 3. Rüstzeit 8 4. FAQ: Oft gestellte

Mehr

Bedienung des Web-Portales der Sportbergbetriebe

Bedienung des Web-Portales der Sportbergbetriebe Bedienung des Web-Portales der Sportbergbetriebe Allgemein Über dieses Web-Portal, können sich Tourismusbetriebe via Internet präsentieren, wobei jeder Betrieb seine Daten zu 100% selbst warten kann. Anfragen

Mehr

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

AZK 1- Freistil. Der Dialog Arbeitszeitkonten Grundsätzliches zum Dialog Arbeitszeitkonten AZK 1- Freistil Nur bei Bedarf werden dafür gekennzeichnete Lohnbestandteile (Stundenzahl und Stundensatz) zwischen dem aktuellen Bruttolohnjournal und dem AZK ausgetauscht. Das Ansparen und das Auszahlen

Mehr

FORUM HANDREICHUNG (STAND: AUGUST 2013)

FORUM HANDREICHUNG (STAND: AUGUST 2013) FORUM HANDREICHUNG (STAND: AUGUST 2013) Seite 2, Forum Inhalt Ein Forum anlegen... 3 Forumstypen... 4 Beiträge im Forum schreiben... 5 Beiträge im Forum beantworten... 6 Besondere Rechte der Leitung...

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig?

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig? Pädagogik Melanie Schewtschenko Eingewöhnung und Übergang in die Kinderkrippe Warum ist die Beteiligung der Eltern so wichtig? Studienarbeit Inhaltsverzeichnis 1. Einleitung.2 2. Warum ist Eingewöhnung

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

Mehr

eduvote Ein Umfragesystem für Lehrveranstaltungen - PowerPoint Add-In -

eduvote Ein Umfragesystem für Lehrveranstaltungen - PowerPoint Add-In - eduvote Ein Umfragesystem für Lehrveranstaltungen - PowerPoint Add-In - Übersicht: Nach dem Herunterladen und Ausführen des Installationsprogamms für das eduvote PowerPoint Add-In befindet sich rechts

Mehr

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) 3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

Die Erstellung eigener Strukturprofile

Die Erstellung eigener Strukturprofile Die Erstellung eigener Strukturprofile Manchmal ist es nötig, eigene Profile zu Erstellen, die man dann mittels Gestellgenerator verbaut. Diese Strukturprofile werden in einer Benutzerbezogenen Bibliothek

Mehr

(1) Problemstellung. (2) Kalman Filter

(1) Problemstellung. (2) Kalman Filter Inhaltsverzeichnis (1) Problemstellung...2 (2) Kalman Filter...2 Funktionsweise... 2 Gleichungen im mehrdimensionalen Fall...3 Schätzung des Systemzustands...3 Vermuteter Schätzfehler... 3 Aktualisierung

Mehr

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang 16 8307 Effretikon

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang 16 8307 Effretikon WinWerk Prozess 6a Rabatt gemäss Vorjahresverbrauch 8307 Effretikon Telefon: 052-740 11 11 Telefax: 052-740 11 71 E-Mail info@kmuratgeber.ch Internet: www.winwerk.ch Inhaltsverzeichnis 1 Ablauf der Rabattverarbeitung...

Mehr

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...

Mehr

Modus und Spielregeln für Quizzes

Modus und Spielregeln für Quizzes Modus und Spielregeln für Quizzes Standard-Quizzes, Wettbewerbe mit Zeit- und Punktelimit Übersicht Modus und Spielregeln Wenn Sie ein Quiz für eine Klasse freigeben, als AdHoc-Quiz oder PubliQuiz publizieren,

Mehr

Die Übereckperspektive mit zwei Fluchtpunkten

Die Übereckperspektive mit zwei Fluchtpunkten Perspektive Perspektive mit zwei Fluchtpunkten (S. 1 von 8) / www.kunstbrowser.de Die Übereckperspektive mit zwei Fluchtpunkten Bei dieser Perspektivart wird der rechtwinklige Körper so auf die Grundebene

Mehr

Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC.

Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC. Anleitung Konverter Letzte Aktualisierung dieses Dokumentes: 14.11.2013 Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC. Wichtiger Hinweis: Der Konverter

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

Umstellung News-System auf cms.sn.schule.de

Umstellung News-System auf cms.sn.schule.de Umstellung News-System auf cms.sn.schule.de Vorbemerkungen Hinweis: Sollten Sie bisher noch kein News-System verwendet haben, nutzen Sie die Anleitung unter http://cms.sn.schule.de/admin/handbuch/grundlagen/page/25/

Mehr

GRAF-SYTECO. Handbuch. Zeichensatzgenerator für AT-Geräte. Erstellt: November 2004. SYsteme TEchnischer COmmunikation

GRAF-SYTECO. Handbuch. Zeichensatzgenerator für AT-Geräte. Erstellt: November 2004. SYsteme TEchnischer COmmunikation GRAF-SYTECO Handbuch Zeichensatzgenerator für AT-Geräte Dokument: Status: H165A0 Freigegeben Erstellt: November 2004 SYsteme TEchnischer COmmunikation GRAF-SYTECO Gmbh & Co.KG * Kaiserstrasse 18 * D-78609

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr

Einheitlich für alle Notare bietet XNotar vor allem die folgenden Optionen:

Einheitlich für alle Notare bietet XNotar vor allem die folgenden Optionen: Individuelle Konfiguration der ELRV-Programme XNotar, SigNotar und EGVP bieten eine stetig wachsende Zahl von Optionen. Häufig lohnt es sich, die Einstellungen einmal systematisch durchzugehen, um die

Mehr

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense 2.0.6 Copyright 1993-2015 QlikTech International AB. Alle Rechte vorbehalten.

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense 2.0.6 Copyright 1993-2015 QlikTech International AB. Alle Rechte vorbehalten. Veröffentlichen von Apps, Arbeitsblättern und Storys Qlik Sense 2.0.6 Copyright 1993-2015 QlikTech International AB. Alle Rechte vorbehalten. Copyright 1993-2015 QlikTech International AB. Alle Rechte

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Fotos in Tobii Communicator verwenden

Fotos in Tobii Communicator verwenden Fotos in Tobii Communicator verwenden Hier wird beschrieben wie man Fotos in Tobii Communicator verwenden kann und was man zur Nutzung beachten sollte. Fotonutzung in Tobii Communicator In einigen Fällen

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr