Räumliche Datenstrukturen Seminar Computerspiele

Größe: px
Ab Seite anzeigen:

Download "Räumliche Datenstrukturen Seminar Computerspiele"

Transkript

1 Räumliche Datenstrukturen Seminar Computerspiele Ralf Pramberger Kurzbeschreibung Diese Ausarbeitung stellt eine Einführung zum Thema Räumliche Datenstrukturen dar. Dazu werden zunächst einige Grundlagen der Computergrafik erklärt, sowie eine Übersicht über die Möglichkeiten von Culling. Des Weiteren werden BSP- Trees, Reguläre Gitter, Quadtrees sowie die Bounding Volume Hierarchie eingeführt. Im letzten Kapitel wird das schwierige Problem Occlusion Culling und mögliche Implementierungen zur effizienten Lösung betrachtet. 1 EINLEITUNG Beim Sichtbarkeitsproblem in der Computergrafik handelt es sich um die Frage welche Objekte auf dem Ausgabegerät sichtbar sind. Während es in den Anfängen der Computergrafik noch um die korrekte Berechnung der Sichtbarkeit ging, steht heute die Performance des Echtzeitrenderns im Fokus. Hierzu zählen die Forderung nach mehr frames per second (FPS), höhere Bildqualität im Sinne von Auflösung oder Abtastrate, detailliertere Texturen und präzisere Beleuchtung sowie die Möglichkeit, Szenen mit großen Mengen von Objekten anzuzeigen. Um diese, zum Teil konkurrierenden, Ziele zu erreichen gibt es diverse Optimierungsstrategien. Eine grundsätzliche Technik ist hierbei das Culling. Diese Gruppe von Algorithmen steht für frühzeitiges Entfernen von nicht sichtbaren oder irrelevanten Objekten aus der Grafikpipeline. Um einen Performancegewinn zu erzielen muss die Bestimmung dieser Objekte effizient zur Laufzeit geschehen. Dies lässt sich mit räumlichen Datenstrukturen bewerkstelligen. Dabei werden die Objekte der vorliegenden Szene, häufig im Preprocess, anhand ihrer räumlichen Anordnung in eine hierarchische Baumstruktur sortiert. Durch eine geschickte hierarchische Aufteilung lassen sich zur Laufzeit deutliche Performancegewinne beim Culling oder Verdeckungsberechnung erreichen. Weitere Anwendungsgebiete von räumlichen Datenstrukturen finden sich bei Nachbarschaftssuche in der digitalen Bildbearbeitung oder dem geometrischen Schnittproblem der Kollisionserkennung, wie zum Beispiel bei Crashtests. 2 GRUNDLAGEN In diesem Kapitel werden einige Begrifflichkeiten der Computergrafik erklärt, sowie der Frage nachgegangen wie ein Bild am Monitor Institut für Visualisierung und Interaktive Systeme, Universität Stuttgart. Wintersemester 2012/2013. entsteht. 2.1 Szene Unter einer Szene versteht man in der Computergrafik eine virtuelle Beschreibung des anzuzeigenden Modells. Dies beinhaltet alle Objekte mit den jeweiligen Positionen, eine Kameraposition mit Blickrichtung, Lichtquellen und Materialeigenschaften der Objekte. Aus dieser Beschreibung kann das anzuzeigende Bild berechnet (gerendert) werden. Für das korrekte und schöne berechnen von Bildern gilt es das Sichtbarkeitsproblem zu lösen, also die Fragestellung welche Objekte sichtbar sind. Des Weiteren ist es notwendig die Oberflächen von Objekten korrekt darzustellen. Dies geschieht mit sogenannten Shading Algorithmen. Ein weiterer Punkt betrifft die Beleuchtung der Szene. Sabei wird mit nicht notwendigerweise korrekten physikalischen Beleuchtungsquellen Licht und Schatten simuliert. 2.2 Computergrafik Das Bild auf einem Monitor ist in Pixel aufgeteilt, wobei jeder Pixel einem Punkt auf dem Monitor entspricht. Um ein Bild anzuzeigen, wird ein spezieller Speicher der Grafikkarte, der sogenannte Frontbuffer, mit einem Farbwert für jedes vorhandene Pixel gefüllt. Für die flickerfreie Darstellung von Bildern werden auf aktuellen Grafikkarten die Farbwerte der Pixel abwechselnd in mehreren Speichern berechnet. Dieses Verfahren bezeichnet man als Double- oder Tripple- Buffering, entsprechend der Anzahl von wechselnden Speichern. Um ein einfaches 2-Dimensionales Bild auf dem Monitor anzuzeigen, zum Beispiel eine Bitmap, würde das Bild mit den entsprechenden Farbwerten pro Pixel in den Grafikkartenspeicher geladen, und zur gewünschten Zeit in den Frontbuffer kopiert werden. Ein dreidimensionales Bild auf dem Computermonitor, zum Beispiel aus einem Computerspiel, ist nur scheinbar dreidimensional. Tat-

2 sächlich ist nur das anzuzeigende Modell in dreidimensionaler Form im Speicher des Computers vorhanden. Das anzuzeigende Bild ist eine zweidimensionale Projektion dieses Modells auf das Ausgabegerät. Für diese Projektion gibt es verschiedene Verfahren, welche insgesamt unter dem Begriff Rendering zusammengefasst werden. 2.3 Rasterisierung In aktuellen Grafikkarten und Computerspielen ist die Rasterisation der de facto Standard. Dieses Verfahren wird als Objektbasiert bezeichnet. Dabei werden die Objekte des Modells, in diesem Kontext Szene genannt, ausgehend von der Betrachterposition auf die Bildfläche projiziert. Die einzelnen Objekte werden hierbei häufig als ein Netz aus Dreiecken dargestellt. Der Grund liegt in der Einfachheit der Berechnung sowie der Möglichkeit, Dreiecke in komplexeren Verfahren hinzuzufügen oder zu entfernen. Um Bilder wie in aktuellen Computerspielen zu generieren, können die Dreiecke nun mit Farben oder Texture Mapping gefüllt werden. Dabei muss darauf geachtet werden, dass Objekte, die nahe am Betrachter liegen, nicht durch weiter entfernte überschrieben werden. Das kann durch einen Z-Buffer bewerkstelligt werden. Hierzu wird ein 2D-Array mit Tiefeninformationen (z-werte) des Bildraums nebenher gepflegt. Falls ein Objekt gezeichnet werden soll, muss zunächst im Z-Buffer pixelweise geprüft werden ob es vor bereits gezeichneten Objekten liegt. Ist dies der Fall darf es gezeichnet werden und der Z-Buffer wird mit dem neuen Objekt aktualisiert. [6, 7] 2.4 Raytracing Eine andere Möglichkeit des Renderns bieten die bildbasierten Verfahren wie Raytracing. In der einfachsten Form wird hierbei ein Strahl durch jeden zu füllenden Pixel geschickt. Dabei wird ausgehend von der Betrachterposition jedes Objekt der Szene auf Schnitt mit dem Strahl getestet. Um direkte oder indirekte Beleuchtung zu erreichen, kann das auf diese Weise als sichtbar bestimmte Objekt in der Folge als Ausgangspunkt für weitere Strahlen dienen. Verfahren mit mehreren Strahlen per Pixel oder zufallsbasierte Monte Carlo Methoden existieren und bieten Verbesserungen der Qualität von Bildern oder Performancegewinne. Die Vorteile von Raytracing gegenüber der Rasterisierung liegen in der Möglichkeit des Verzichtes auf einen Z-Buffer der Grafikkarte sowie in der fotorealistischen Bildqualität. Ein deutlicher Nachteil ist die Berechnungsgeschwindigkeit. Diese liegt in vielen Fällen deutlich hinter den Rasterisierungsansätzen, weshalb Raytracing häufig nicht für Echtzeitanwendungen gewählt wird. Diverse Versuche das Raytracing für Echtzeitanwendungen bereitzustellen werden derzeit unternommen. [12] 2.5 Culling Abb. 1. Übersicht über Culling Methoden [3] Der Begriff Culling beschreibt die Verfahren zum Entfernen von nicht sichtbaren Objekten einer Szene. Damit soll verhindert werden, dass Rechenleistung beim Rendern an nicht sichtbaren Objekten verschwendet wird. Es wird zwischen verschiedenen Arten von Culling unterschieden: View Frustum Culling: Bei dieser Art von Culling wird versucht möglichst alle Objekte einer Szene außerhalb des View Frustums (Sichtbarkeitsvolumen) zu entfernen. Das View Frustum entspricht einer abgeschnittenen Pyramide in Richtung der virtuellen Kamera einer Szene. Dabei können Objekte, die links, rechts oder hinter der Kamera liegen, entfernt werden. Objekte, die das Frustum schneiden werden zunächst nicht entfernt. Backface Culling: Die Idee bei dieser Technik gründet auf die Feststellung das die Normale von Objekten einer Szene, zum Beispiel eines Polygons, eine Richtung aufweist. Dementsprechend ist es nicht notwendig die unsichtbare Rückseite von Objekten zu Rendern. Occlusion Culling: Bei dieser Technik werden verdeckte Objekte innerhalb des Sichtbereichs entfernt. Dieses Verfahren bietet die Möglichkeit für große Performancegewinne, da selbst kleine Änderungen in der Kameraposition bereits massive Änderungen in der Anzahl von sichtbaren Objekten bewirken können. Occlusion Culling korrekt zu berechnen ist im Allgemeinen schwieriger als Frustum oder Backface Culling. Portal Culling: Speziell für Szenen in Gebäuden eignet sich diese Technik. Dabei wird die Szene in Zellen unterteilt, welche durch Portale miteinander verknüpft sind. Beim Rendern wird die Zelle mit der Kamera komplett betrachtet. Desweitern wird überprüft ob innerhalb des View Frustums ein Portal existiert. Falls ein Portal sichtbar ist, wird ausgehend vom Portal ein weiteres View Frustum für die nächste Zelle erzeugt. Die Erstellung von Zellen und Portalen war in der Vergangenheit häufig vom Mapdesigner per Hand zu erledigen. Techniken zur automatischen Generierung von Portalen existieren zum Beispiel in der Umbra3 Engine. [8] Detail Culling: Zu kleine Objekte oder Objekte, die zu weit entfernt sind, werden nicht betrachtet. Culling muss im Allgemeinen kein korrektes Ergebnis liefern. Häufig reicht es ein Potentially Visible Set (PVS) zu errechnen. Das PVS besteht aus einer konservativen Schätzung der sichtbaren Objekte. Dies bedeutet, dass alle sichtbaren und ein möglichst kleiner Teil der unsichtbaren Objekte im PVS sind. Der Grund hierfür ist die meist einfachere Berechnung von angenäherten Lösungen im Vergleich zu korrekten Lösungen. Entsprechend müssen die Ergebnisse des PVS durch einen korrekten Hidden Surface Removal (HSR) Algorithmus gerendert werden. [3, 5] 3 RÄUMLICHE DATENSTRUKTUREN Unter Räumlichen Datenstrukturen versteht man die Aufteilung der Szene durch verschiedene Verfahren. Grundsätzlich kann man zwischen objekt- und raumzentrischen Verfahren unterscheiden. Zu den objektzentrischen Verfahren zählt die Bounding Volume Hierarchie (BVH). Hier werden die Objekte der Szene von immer größer werdenden Bounding Volumes umschlossen bis zu einer alles Umschließenden. Im Gegensatz hierzu stehen die raumzentrischen Verfahren wie zum Beispiel BSP-Tree oder Octree. Bei diesen Verfahren wird zunächst um die gesamte Szene, mit allen enthaltenen Objekten, eine umschließende Hülle gelegt. Daraufhin wird dieser Raum sukzessive in Unterräume unterteilt. Die Art der Unterteilung sowie das Stopp- Kriterium bestimmen die Charakteristika der verschiedenen Verfahren. Beide Typen von Verfahren können bei der Erstellung der Hierarchie einfache geometrische Formen wie Kugeln, Rechtecke oder achsenorientierte Rechtecke. Der Vorteil darin besteht in der Einfachheit bei der Berechnung von Schnitttest im Vergleich zu komplexen geometrischen Formen. Große Performancegewinne bieten die hierarchischen räumlichen Datenstrukturen für Anwendungszwecke, bei welchen es möglich ist, Teilbäume bzw. Unterräume als irrelevant zu identifizieren und zu verwerfen. Das legt eine enge Verwebung von 2

3 Culling-Verfahren und räumlichen Datenstrukturen nahe. Weitere Einsatzmöglichkeiten sind zum Beispiel die Nachbarschaftssuche sowie die Möglichkeit, direkt aus der Datenstruktur durch geschicktes traversieren des zugehörigen Baumes, das Sichtbarkeitsproblem zu lösen. Dies setzt jedoch eine spezielle Methodik beim Aufbau der Datenstrukturen voraus. Eine weitere Möglichkeit zur Aufteilung der Szene bieten reguläre Gitter. Hierbei wird der Raum nicht in einer rekursiven Art unterteilt, sondern es wird ein vorgegebenes Gitter fester Größe verwendet. Vorteile hierbei finden sich in der einfachen Art das Gitter zu konstruieren und der einfachen Traversierung. Nachteilig an diesem Verfahren ist die empirische Erkenntnis, dass häufig nur wenige Zellen tatsächlich belegt sind, während sehr viel Geometrie auf einige wenige Zellen konzentriert ist. 3.1 Bounding Volume Hierarchie Abb. 2. Szene mit Unterteilungsebenen (l.), zugehörige BVH (r.) Ein objektzentrischer Ansatz zur hierarchischen Sortierung von Szenen ist die Bounding Volume Hierarchie. Darunter versteht man eine Baumstruktur über die geometrischen Objekte einer Szene. Die geometrischen Objekte sind in Bounding Volumes (Hüllkörper) eingeschlossen und stellen die Blätter des Baumes dar. Die Elternknoten dieser Blätter sind ihrerseits Bounding Volumes, welche die Kindknoten einhüllen. Die Wurzel des Baumes stellt die Bounding Volume für die gesamte Szene dar und umschließt alle untergeordneten geometrischen Objekte, deren Bounding Volumes und die virtuellen Bounding Volumes der inneren Knoten. Eine spezielle Charakteristika für Bounding Volume Hierarchien ist die Tatsache, dass Objekte nicht zerschnitten werden müssen. Bei der Kollisionsberechnung ist die Laufzeit des bruteforce Ansatzes, alle Objekte paarweise auf Schnitt zu testen, O(n 2 ). Durch den Einsatz einer BVH kann man auf O(n) gelangen. [11] Raum umspannen oder die Vereinigung der Objekte als Bounding Volume aufgefasst werden. Im ersten Fall müsste bei einer Schnittanfrage der gesamte Baum traversiert werden, im Zweiten böte ein möglicher Schnitttest keine Verbesserung in der Komplexität. Die Wahl der richtigen Bounding Box ist somit eine Abwägung zwischen Passgenauigkeit und Geschwindigkeit bzw. Aufwand bei der Berechnung. Die Standard Bounding Volumes werden in Abbildung 3 dargestellt. Dabei findet Herman Haverkort [10], dass die am Häufigsten in der Praxis eingesetzte Form die Achsenparallele Bounding Box (AABB) ist. Der Grund liegt in der einfachen Berechnung einer minimalen Bounding Box für eine Menge von Objekten, geringem Speicherverbrauch sowie der einfachen und robusten Berechnung von Schnitttests View Frustum Culling mit BVH BVHs eignen sich gut für Frustum Culling, vorausgesetzt die Struktur beim Aufbau des Baums folgt gewissen Regeln. Die Verbesserung liegt in der Aufteilung der Szene, so können im Idealfall durch eine geschickt gewählte Hierarchie bereits sehr früh ganze Teilbäume vom weiteren Testen auf Schnitt mit dem View Frustum ausgeschlossen werden. Deshalb ist es wichtig, dass die BVH einer Szene eine räumliche Aufteilung aufweist. Daher sollten Objekte die in der Szene nah beieinander liegen auch in der BVH benachbart werden. Als Beispiel eignet sich die Szene einer Kleinstadt. Die Grundfläche kann hierbei in verschiedene Tiles unterteilt werden, welche die entsprechenden Bounding Volumes ergeben. Die Position der Objekte (Bäume, Häuser) ist somit automatisch an eine Tile-Bounding Volume gebunden und erfüllt die Bedingung der räumlichen Aufteilung. [3] Weitere Aspekte für effizienten View Frustum Culling sind die Forderung nach nicht zu flachen Hierarchien, da aus dem wegschneiden möglichst großer Teilbäume der größte Speedup erreicht werden kann. Zudem gilt die Forderung, keine zu tiefen Hierarchien zu erstellen, da diese nur zusätzliche Schnitttests ergeben. Als grobe Heuristik wird in [3] angegeben, dass die Anzahl der Hierarchiestufen etwa der Anzahl von Nachfolge-Knoten sein sollte. Der View Frustum Culling Algorithmus [3]: 1. Beginne mit Wurzel des Graphen 2. Teste Knoten auf Schnitt mit Blickpyramide Falls Schnitt nicht leer: traversiere rekursiv mit den Kindern Sonst: stelle Bearbeitung des Knoten ein 3.2 BSP-Tree Abb. 3. Standard Bounding Volumes [3] Bounding Volumes Die Wahl der Bounding Volumes lässt sich auf verschiedene Kriterien reduzieren. Zum einen ist es dienlich einfache Formen für Bounding Volumes zu nutzen. Der Grund hierfür liegt in den geringen Speicheranforderungen pro Bounding Volume und den einfach errechenbaren Schnitttests. Auf der anderen Seite sollten die Bounding Volumes möglichst eng um die zu umschließenden Objekte liegen, sodass bei möglichen Schnittanfragen möglichst früh abgebrochen werden kann. Als Extremfälle könnte die Bounding Volume den gesamten Abb. 4. Szene mit Unterteilungsebenen (l.), zugehöriger BSP-Baum (r.) [3] Binary Space Partitioning (BSP) [2] ist eine Methode, die Szene rekursiv in zwei Unterräume zu unterteilen. Dabei wird der Raum in jedem Schritt anhand einer ausgesuchten Ebene geteilt. Diese Ebene richtet sich nach der Orientierung eines Objektes. Die Rekursion stoppt wenn ein gewähltes Abbruchkriterum getroffen wurde. Das kann eine maximale Baumtiefe sein oder das Erreichen einer speziellen Anzahl von Objekten in den Blattknoten. Als Ergebnis der rekursiven Unterteilungen erhält man einen binären Baum (BSP-Tree). In diesem Baum bezeichnet die Position (links oder rechts) eines Kindknotes auf welcher Seite im Raum sich der Teilbaum befindet. Somit ist es 3

4 durch einfache Traversierung möglich eine back-to-front Sortierung der Objekte zu erhalten. Dies war ursprünglich zur Lösung des Sichtbarkeitsproblem sehr interessant, da der sogenannte Painters Algorithmus auf eine effiziente Berechnung der Reihenfolge angewiesen war. Der Bedarf einer Sortierung hat in heutiger Zeit durch den weit verbreiteten Einsatz des Z-Buffers abgenommen. BSP-Bäume sind sehr aufwendig in der Erstellung. Dies liegt an der Schwierigkeit eine optimale Unterteilungsebene zu finden. Ein weiteres Problem ist das teure Einfügen von Objekten in dynamischen Szenen. Die Zeitkomplexität zum Erstellen eines Baumes mit n Objekten wird von [Ranta- Eskola2001] mit O = (n 2 *log(n)) angegeben. Falls eine Unterteilungsebene Objekte schneidet, werden diese aufgeteilt und in den linken und rechten Teilbaum eingefügt (vor- und hinter dem Objekt). Das führt bei schlecht gewählten Teilungsebenen zu einer massiven Vermehrung von Objekten. BSP-Trees erlangten zum ersten Mal für die Spieleindustrie große Popularität durch die Game Engine id Tech 1, welche in Spielen wie Doom, DoomII und Hexen eingesetzt wurde. [4] kd-trees Der kd-tree stellt eine weitere Form eines Binärbaums dar und kann ebenfalls zum Unterteilen der Geometrie verwendet werden. Bei dieser Variante werden die Ebenen jeweils achsenparallel geschnitten. Hierfür kann die x-achse zunächst als Wurzelknoten ausgewählt werden. Als Kindknoten werden die weiteren Koordinatenachsen rekursiv bis zu Erreichen des Abbruchkriterums eingefügt. 3.3 Reguläres Gitter Ein reguläres Gitter unterteilt den Raum in ein vorgegebenes Gitter fester Größe. Die einzelnen Zellen werden Voxel genannt. Beim Aufbau der Datenstruktur wird in jedem Voxel ein Pointer auf schneidende Objekte gespeichert. Der kritische Punkt bei regulären Gittern ist die Maschenweite der einzelnen Voxel. Wird diese zu eng gewählt befindet sich ein einzelnes Objekt in vielen verschiedenen Voxeln, wird sie hingegen zu grob gewählt befinden sich viele Objekte im gleichen Voxel. Je stärker dieser Effekt auftritt, desto bedeutungsloser wird die Struktur. Ein Vorteil von regulären Gittern betrifft das Einfügen von Objekten. Dies ist durch den einfachen Aufbau sehr leicht möglich. [3] 3.4 Quadtree/Octree Abb. 5. Unterteilung 2D Szene durch Quadtree [3] Quadtrees[1] und Octrees sind hierarchische Unterteilungsstrukturen. Beim Aufbau der Struktur wird zunächst das Initiale Voxel gewählt, welches die gesamte Szenegeometrie umschließt. In den weiteren Schritten wird dieses Voxel rekursiv in vier (Quadtree) oder acht (Octree) gleich große Untervoxel geteilt bis ein Abbruchkriterium erreicht wird. [13] Dabei wird der Quadtree normalerweise für 2- dimensionale-, der Octree für 3-dimensionale Unterteilungen verwendet. Der Vorteil gegenüber regulären Gittern ist, dass beim Aufbau der Struktur auf die Geometrie der Szene eingegangen wird. So wird bei entsprechend gewähltem Abbruchkriterium ein wenig bestückter Bereich der Szene nicht oft unterteilt, ein dicht bestückter hingegen häufiger. [13] Octrees sind aufgrund ihrer einfachen und schnellen Struktur sehr beliebt in der Computergrafik. Ein Nachteil stellen dynamische Szenen dar. Dabei muss die unmodifizierte Variante des Octrees bei hinzufügen oder entfernen eines geometrischen Objektes neu aufgebaut werden. Aus diesem Grund wurden viele Erweiterungen des ursprünglichen Octrees entwickelt wie der Octree-R[14] oder Loose Octree[13]. Mit diesen Erweiterungen können Octrees auch dynamische Szenen gut bewältigen. 4 OCCLUSION CULLING Wie bereits in Kapitel 2.5 und Abbildung 2 erwähnt, versteht man unter Occlusion Culling das Entfernen von verdeckten Objekten aus der Szene um diese nicht unnötigerweise zu Rendern. Da beim Occlusion Culling die Beziehungen der einzelnen Objekte untereinander untersucht werden muss, stellt Occlusion Culling ein schwierigeres Problem dar als Frustum- oder Backface-Culling. Der einfache Ansatz jedes Objekte auf Verdeckung zu testen zu langsam ist, erzeugen sehr viele Algorithmen wieder eine Hierarchie für die gesamte Szene und testen die Verdeckung top-down auf dieser Hierarchie. [5] 4.1 Klassifizierung der Techniken Occlusion Culling Techniken können laut Cohen et al. [5] nach folgenden Kriterien und Funktionalitäten gruppiert und analysiert werden: Online vs. Offline und Punkt vs. Region Die Berechnung der Verdeckung kann zur Laufzeit (online) geschehen oder vorberechnet werden (offline). Diese Unterscheidung ist eng verwoben mit der Frage, ob die Verdeckungsberechnung für einen speziellen Kamerapunkt oder für eine Region gelten soll. Die Berechnung der Verdeckung einer gesamten Region braucht im Allgemeinen mehr Rechenleistung und ist deshalb prädestiniert zur offline- Vorberechnung. Nachteile der vorberechneten Verdeckung sind die hohen Speicherkosten der Verdeckungsinformationen sowie die schwierige Handhabbarkeit von dynamischen Szenen. [5] Bildraum vs. Objektraum Der Unterschied zwischen Bildraum und Objektraum geht auf Ivan Sutherland[15] zurück. Dabei wird die Verdeckungsberechnung von Objektraumverfahren direkt an den Objekten durchgeführt, ohne auf das Ausgabegerät zu achten. Im Gegensatz dazu steht das Bildraumverfahren für die Verdeckungsberechnung pro Pixel. Dabei gelten Bildraumverfahren als äußerst robust, in Bezug auf Problemquellen wie T-Junctions, degenerierten Primitiven oder Löchern in der Struktur. [16] Konservativ vs. Annähernd Occlusion Culling Algorithmen liefern im Vergleich zu Hidden Surface Removal Algorithmen keine exakten Ergebnisse. Konservative Occlusion Culling Algorithmen überschätzen daher die Menge von sichtbaren Objekten in dem Sinn, dass möglichst viele - aber nicht alle verdeckten Objekte geculled werden. Annähernde Algorithmen versuchen das Problem von der anderen Seite anzugehen, dabei versuchen Sie möglichst alle sichtbaren Objekte zu finden. Dies muss nicht immer gelingen, so können Objekte die keinen großen Einfluss auf das Bild haben, aber sichtbar sind, verworfen werden. [5] Einzelne vs. zusammengesetzte Occluder Von zusammengesetzten Occludern spricht man bei Objekten, die falls zusammen betrachtet, ein weiteres Objekt verdecken obwohl sie einzeln dazu nicht in der Lage wären Abb. 6. Objekte B und A verdecken zusammengesetzt Objekt C [16] Auswahl der Occluder Einige Algorithmen nutzen alle Objekte der Szene als mögliche Occluder, während andere durch Heuristiken nur eine Teilmenge der Objekte als mögliche Occluder untersuchen. Die Untersuchung aller Objekte kann das Ergebnis 4

5 verbessern - auf Kosten der Rechenleistung. Eine weitere Möglichkeit stellen Virtuelle Occluder dar. Dabei werden einzelne komplexe Objekte durch eine einfachere verdeckende Geometrie ausgetauscht. Als Beispiel dient hier ein Wald mit Sichtweite von 15 Metern. Anstatt die Bäume einzeln zu betrachten wird ein virtueller Occluder in 15Meter aufgestellt. [5, 17] Szenentypen Viele Occlusion Culling Techniken sind auf spezielle Szenentypen und Anwendungen begrenzt. Sichtbarkeiten die im Präprozess errechnet werden sind häufig nicht für dynamische Szenen geeignet. Portal-Culling Techniken eignen sich im speziellen für Innenräume und weniger für offene Außenwelten. [5, 17] Weitere Eigenschaften Eine geforderte Eigenschaft stellt die sogenannte Output sensitivity dar - die Laufzeit eines Culling Algorithmus sollte proportional zur sichtbaren Menge sein. Einige Algorithmen benötigen spezielle Hardware. Beispielweise einen Z-Buffer oder Hardware Occlusion Queries. [5] Für diverse Occlusion Culling Techniken ist es notwendig, die Szene in einer speziellen räumlichen Datenstruktur vorliegen zu haben. Dies liegt an der engen Verwebung und Ausnutzung der Vorteile einzelner Datenstrukturen. [17] 4.2 Hierarchisches Occlusion Culling Abb. 8. Beispiel für hierarchisches occlusion Culling an Octree-Szene [18] die Seite eines Kindknotens relevant. Das bedeutet im Occlusion Tree gibt es ein sichtbares und ein unsichtbares Kind. Beim tatsächlichen Occlusion Culling wird die räumliche Datenstruktur der Szene nun mit dem Occlusion Tree verglichen. Falls ein Knoten der Szene als vollständig sichtbar oder vollständig unsichtbar erkannt wird stoppt die Rekursion. Für alle Kindknoten wird die Sichtbarkeit entsprechend gesetzt. Zum schlussendlichen Rendern werden alle sichtbaren und teilweise sichtbaren Objekte durch einen exakten Sichtbarkeitstest, wie zum Beispiel den Hardware Z-Buffer, gerendert. Dieser Algorithmus ist konservativ und nicht für dynamische Szenen geeignet. Beim Hinzufügen und entfernen von Objekten muss die räumliche Datenstruktur der Szene geupdated werden sowie die Klassifizierung eines neuen Objektes vorgenommen werden. In Versuchen wurde in speziellen Konfigurationen (Anzahl Occluder, Modifizierungen am Occlusion Tree) und Szenen ein Speedup von 1,75 bis 3,75 im Vergleich zum Rendern ohne Occlusion Culling erreicht. [18] 4.3 Hierarchischer Z-Buffer Abb. 7. Ein Shadow-Tree funktioniert ähnlich wie der Occlusion Tree [18] Das Verfahren von Bittner et al. [18] benutzt neben der räumlichen Datenstruktur für die Szene eine Repräsentierung der Occluder in Form eines Binärbaums. Dazu werden zunächst im Preprocess alle Objekte auf die Fähigkeit zur Verdeckung überprüft. Dies geschieht durch Kenntnis über das Modell, zum Beispiel werden Polygone die zu detaillierten Objekten gehören (Stühle, Blumen..) als nicht verdeckungsfähig ignoriert. Die als Verdeckungsfähig erkannten Objekte sind häufig große Polygone wie Wände, Böden oder Decken von Gebäuden. Diese Information wird in der zu Grunde liegenden räumlichen Datenstruktur (zum Beispiel Octree) gespeichert. Zur Laufzeit werden dynamisch gute Occluder bestimmt. Dazu werden alle möglichen Occluder in einem definierten Radius zur Kameraposition auf die Verdeckfähigkeit für die aktuelle Situation getestet. Hierzu wird die sogenannte area-angle errechnet, also die Größe des verdeckten Raums durch den Occluder, ausgehend von der Kameraposition. Die gewählten Occluder werfen einen Verdeckungsraum ähnlich wie Schatten, aus welchen im gleichen Schritt der binäre Occlusion Tree gebildet wird. Ähnlich wie bei der Binary Space Partitioning (BSP) ist Abb. 9. Aufbau der Z-Pyramide [20] Abb. 10. Aufbau der Z-Pyramide mit Werten [20] Der hierarchische Z-Buffer ist ein weiterer Ansatz für occlusion Culling. Hierbei werden zwei Datenstrukturen benötigt. zum Einen 5

6 wird die Szene in einem Octree gespeichert und zum Anderen wird die Z-Pyramide als Verdeckungsspeicher aufgebaut. Die Konstruktion des Octrees geschieht nach dem in Kapitel 3.4 Quadtree/Octree beschriebenen Muster. Die Verwendung von Octrees bewirkt, dass der Hierarchische Z-Buffer für statische Szenen geeignet ist. Die Z-Pyramide besteht aus verschieden groben Z-Werten des bekannten Z-Buffers. Die unterste Ebene der Pyramide entspricht genau dem Z-Buffer, jede höhere Stufe fasst vier Z-Buffer Werte zusammen bis zur Spitze mit einem einzigen Z-Wert. Dabei wird jeweils der maximale Wert der feineren Pyramidenebenen als Wert für die höhere Stufe übernommen. Dies bedeuted, dass der Z-Wert welcher am weitesten vom Betrachter entfernt liegt, in der Pyramide nach oben wandert. Eine Änderung beim Rendern im Z-Buffer bewirkt ein Update der Z-Pyramide. Dabei wird der neue maximale Z-Wert nach oben propagiert bis sich der Wert in der Pyramidenstufe nicht mehr ändert. Der Algorithmus zum Cullen in Pseudocode 1: ProcessOctreeNode(OctreeNode N) 2: if(isoccluded(n.boundingvolume, ZPuffer)) then return; 3: for each primitive p in N 4: tileinto(p, ZPuffer) 5: end 6: for each child node C in N in front-to-back order 7: ProcessOctreeNode(C) 8: end Gestartet wird der der rekursive Algorithmus mit der Wurzel des Szene-Octrees. Der Test isoccluded(..) in Zeile 2 testet das Bounding Volume des Knoten N auf Verdeckung. Dabei wird jede Seite des Bounding Volumes gegen die Stufen der Z-Pyramide getestet, angefangen bei der höchsten (gröbsten) Stufe der Pyramide. Die Bounding Volume und damit der Knoten sowie alle Kinder wird als komplett verdeckt abgelehnt, falls die nächste Entfernung einer Seite der Bounding Volume weiter entfernt liegt als der entsprechende Z-Wert in der Pyramide. Die Funktion tileinto(..) fügt die Primitive des Knoten in den Z-Buffer ein, woraufhin die Werte der Z-Pyramide angepasst werden. Anschließend werden mit den Kindern des Knoten rekursiv in frontto-back Reihenfolge, also von vorne nach hinten, traversiert. Am Ende des Algorithmus ist in der untersten Stufe der Pyramide ein Standard Z-Buffer Bild der Szene. [5, 19, 20] Weitere Optimierungen des hierarchischen Z-Buffers existieren. Als Wichtigste ist die Hardwareimplementierung eines Z-Buffers zu nennen, es gibt jedoch auch Ansätze welche die Berechnungen der Z- Pyramide aus dem Z-Buffer des vorherigen Bildes übernehmen. [5] 4.4 Cell-and-Portal Occlusion Abb. 11. Vogelperspektive auf die Zellen mit Portalen (links), gerendertes Bild (rechts) [3] Beim Cell-and-Portal Ansatz wird die Szene in Zellen aufgeteilt die mit Portalen verbunden sind. In einer Computerspielwelt würden sich Räume oder verbundene Tunnelsysteme als Zellen anbieten, wobei Türen, Fenster oder schmale Durchgänge die Portale darstellen. Die Idee dahinter ist die Feststellung, dass in solchen Umgebungen viele Objekte der Szene durch die Spielwelt geculled werden können. Das Verfahren benutzt eine räumliche Datenstruktur für die Szene derart, dass Zellen die Knoten und Portale die Kanten des Baums darstellen. Vor dem Rendern werden nun ausgehend von dem aktuellen View Frustum der Kamera alle adjazenten Zellen auf Sichtbarkeit untersucht. In den so gefundenen Zellen müssen Portale zu weiteren Zellen auch auf Sichtbarkeit untersucht werden. Dieser konservative Algorithmus testet nicht auf Verdeckung von Objekten die sich innerhalb der Zellen befinden. Der Algorithmus bietet seine Vorteile vor allen in den speziellen Innenwelten, solange sich die Anordnung dieser Welten nicht ändert können dynamische Szenen relativ gut behandelt werden. [5] 5 CONCLUSION Räumliche Datenstrukturen bilden die Grundlage für derzeitiges und zukünftige Entwicklungen im Echtzeitrendern. Die verfügbare Rechenleistung wird in den nächsten Jahren noch weiter steigen, jedoch ist es nicht zu erwarten dass dieser Trend die Anforderungen der Bildsynthese überholen wird. Aktuelle Entwicklungen beschäftigen sich unter anderem mit den Möglichkeiten der automatischen Generierung von Portalen in Szenen, welche aktuell noch von menschlichen Mapdesignern fest in die Szene integriert werden müssen. [8] Weitere Arbeiten beschäftigen sich mit dem fotorealistischen Rendern komplexer Szenen auf leistungsschwächeren Consumer Computers oder Mobilen Geräten. Dabei werden die massiven parallelen Möglichkeiten welche durch die Architektur der Grafikkarten gegeben sind im Zusammenspiel mit Swapping-Mechanismen ausgenutzt, um selbst bei wenig verfügbaren Speicher sehr große Szenen in kurzer Zeit zu Rendern. [9] LITERATUR [1] Finkel, R.A.,Bentley, J.L. Quad Trees A Data Structure for Retrieval on Composite Keys, Acta Informatica (1974), [2] Henry Fuchs, Zvi M. Kedem, Bruce F. Naylor, On visible surface generation by a priori tree structures [3] Prof. D. Fellner,T. Kalbe, M. Bein, Vorlesung: Graphische Datenverarbeitung I WS2009/2010, [4] Doom Wiki, Online rendering_engine, Stand [5] Daniel Cohen-OR, Yiorgos Chrysanthou, Cláudio T. Silva, Frédo Durand, A Survey of Visibility for Walkthrough Applications, [6] Prof. Dr. Thomas Ertl, Vorlesung: Computergrafik WS11/12, [7] Marcus Frenkel, Computergrafik, von_bits_und_bytes/2012/06/22/, [8] Umbra3 Enginge, [9] Centileo, SIGGRAPH 2012, [10] Herman Johannes Haverkort, Results on geometric networks and data structures, 2004 [11] Tomas Moller and Eric Haines, Real-Time Rendering, A K Peters,2nd edition, [12] Theo Valich (June 12, 2008), Intel converts ET: Quake Wars to ray tracing, TG Daily, http: // intel-converts-et-quake-wars-to-ray-tracing [13] HELIN, V., Hierarchies for occlusion culling. [14] HAVRAN, V Heuristic Ray Shooting Algorithms. Ph.d. thesis, Department of Computer Science and Engineering, Faculty of Electrical Engineering, Czech Technical University in Prague., [15] Ivan Sutherland u.a.: A Characterization of Ten Hidden-Surface Algorithms. ACM Computing Surveys (CSUR) 6,1 (March 1974): 1-55, ISSN , [16] AILA, T SurRender Umbra: A Visibility Determination Framework for Dynamic Environments. Master thesis, Helsinki University of Technology. [17] HEY, H., AND PURGATHOFER, W Occlusion culling methods.in Proceedings of EUROGRAPHICS 2001, Eurographics Association, Eurographics Association. [18] J. Bittner, V. Havran, and P. Slavik. Hierarchical visibility culling with occlusion trees. In Proceedings of Computer Graphics International 98, [19] Gamasutra.com - Occlusion Culling Algorithms, Online occlusion_culling_algorithms.php?page=2 [20] Matthias Fischer, Universität Paderborn, Vorlesung Algorithmen für hochkomplexe Virtuelle Systeme, Sommersemester

Algorithmen und Datenstrukturen Bereichsbäume

Algorithmen und Datenstrukturen Bereichsbäume Algorithmen und Datenstrukturen Bereichsbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung k-d Baum BSP Baum R Baum Motivation

Mehr

Binary Space Partitioning Trees: Konzepte und Anwendungen

Binary Space Partitioning Trees: Konzepte und Anwendungen Binary Space Partitioning Trees: Konzepte und Anwendungen Bastian Rieck Gliederung 1 Motivation 2 BSP Trees: Der klassische Ansatz Grundlagen Maleralgorithmus Probleme und Erweiterungen 3 BSP Trees: Anwendungen

Mehr

Überblick Echtzeit-Rendering. Uwe Domaratius dou@hrz.tu-chemnitz.de

Überblick Echtzeit-Rendering. Uwe Domaratius dou@hrz.tu-chemnitz.de Überblick Echtzeit-Rendering Uwe Domaratius dou@hrz.tu-chemnitz.de Gliederung 1. Einleitung 2. geometriebasierende Verbesserungen 3. Level-of-Detail 4. Culling 5. Texturen 6. bildbasiertes Rendering Was

Mehr

:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese

:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese Geometrisches Modell bestehend aus Datenstrukturen zur Verknüpfung geometrischer Primitive, welche eine Gesamtszene beschreiben Bildsynthese := Modellabbildung Pixelbasiertes Modell zur Darstellung eines

Mehr

Martin Fiedler. Occlusion Culling

Martin Fiedler. Occlusion Culling Martin Fiedler Occlusion Culling Seminar Computergrafik Professur Grafische Datenverarbeitung und Visualisierung Fakultät für Informatik Technische Universität Chemnitz Inhalt Übersicht 2 Teil 1: Übersicht

Mehr

Seminar Game Development Game Computer Graphics. Einleitung

Seminar Game Development Game Computer Graphics. Einleitung Einleitung Gliederung OpenGL Realismus Material Beleuchtung Schatten Echtzeit Daten verringern Grafik Hardware Beispiel CryEngine 2 Kristian Keßler OpenGL Was ist OpenGL? Grafik API plattform- und programmiersprachenunabhängig

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

"rendern" = ein abstraktes geometrisches Modell sichtbar machen

rendern = ein abstraktes geometrisches Modell sichtbar machen 3. Grundlagen des Rendering "rendern" = ein abstraktes geometrisches Modell sichtbar machen Mehrere Schritte: Sichtbarkeitsberechnung Beleuchtungsrechnung Projektion Clipping (Abschneiden am Bildrand)

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

Graphische Datenverarbeitung und Bildverarbeitung

Graphische Datenverarbeitung und Bildverarbeitung Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Clippen in 2D und 3D Graphische DV und BV, Regina Pohle, 19. Clippen in 2D und 3D 1 Einordnung in die Inhalte der Vorlesung Einführung

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Grundlegende Algorithmen

Grundlegende Algorithmen 3D Spieleprogrammierung Grundlegende Algorithmen Übersicht Game Loop Spielarchitektur Aufäumen von Strukturen Vorbereiten für spätere Aufgaben Bewegungen Zeitmessung Zeitunabhängigkeit GameLoop Game Engine

Mehr

Unterscheidung: Workflowsystem vs. Informationssystem

Unterscheidung: Workflowsystem vs. Informationssystem 1. Vorwort 1.1. Gemeinsamkeiten Unterscheidung: Workflowsystem vs. Die Überschneidungsfläche zwischen Workflowsystem und ist die Domäne, also dass es darum geht, Varianten eines Dokuments schrittweise

Mehr

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

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

Mehr

Billboard Clouds for Extreme Model Simplification

Billboard Clouds for Extreme Model Simplification Fakultät für Elektrotechnik, Informatik und Mathematik Arbeitsgruppe Algorithmen und Komplexität Prof. Friedhelm Meyer auf der Heide Billboard Clouds for Extreme Model Simplification Seminararbeit im Rahmen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

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

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

Mehr

Modellierung in der Computergraphik

Modellierung in der Computergraphik Modellierung in der Computergraphik Heidrun Schumann Ziel der Computergraphik ist es, aus der Beschreibung von künstlichen Szenen Bilder zu generieren. Diese Beschreibungen werden durch einen Modellierungsprozess

Mehr

Texture Based Direct Volume Rendering

Texture Based Direct Volume Rendering Texture Based Direct Volume Rendering Vorlesung: "Advanced Topics in Computer Graphics" cbrak@upb.de 1 Agenda 1. Einleitung Volume Rendering 1.1. Volumendatensatz 1.2. Volumenintegral 1.3. Image order

Mehr

Inhalt. Seite 4... Am Anfang: Fotos, Fotos, Fotos-Referenzmaterial. Seite 4... Modellieren, texturieren und beleuchten

Inhalt. Seite 4... Am Anfang: Fotos, Fotos, Fotos-Referenzmaterial. Seite 4... Modellieren, texturieren und beleuchten Inhalt Seite 3... Die Idee Seite 4... Am Anfang: Fotos, Fotos, Fotos-Referenzmaterial Seite 4... Modellieren, texturieren und beleuchten Seite 7... Renderelemente: Wie die Bilder aufgebaut sind Seite 9...

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

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

Tutorium Algorithmen & Datenstrukturen

Tutorium Algorithmen & Datenstrukturen June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Kapitel 0. Einführung. 0.1 Was ist Computergrafik? 0.2 Anwendungsgebiete

Kapitel 0. Einführung. 0.1 Was ist Computergrafik? 0.2 Anwendungsgebiete Kapitel 0 Einführung 0.1 Was ist Computergrafik? Software, die einen Computer dazu bringt, eine grafische Ausgabe (oder kurz gesagt: Bilder) zu produzieren. Bilder können sein: Fotos, Schaltpläne, Veranschaulichung

Mehr

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte] UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Bernoullistrasse 16 CH 4056 Basel Assistenten Bernhard Egger Andreas Forster Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Computer-Graphik 2 Visibility Computations II Culling

Computer-Graphik 2 Visibility Computations II Culling lausthal omputer-raphik 2 Visibility omputations II ulling lausthal University, ermany zach@in.tu-clausthal.de Klassifikation (Erinnerung) Problemklassen innerhalb des Bereichs "Visibility omputations":

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html

Mehr

Volumen Visualisierung

Volumen Visualisierung Volumen Visualisierung Seminar Interaktive Visualisierung (WS 06/07) Fabian Spiegel und Christian Meß Fabian Spiegel und Christian Meß 1 Übersicht Anwendungsbeispiele Volumendaten Entstehung Repräsentation

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

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

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

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

Mehr

P2P-Netzwerke für dynamische 3D-Szenen

P2P-Netzwerke für dynamische 3D-Szenen P2P-Netzwerke für dynamische 3D-Szenen Projektgruppe im WS 2003/2004 High Performance = Innovative Computer Systems + Efficient Algorithms Jens Krokowski 1 Problemstellung hochdynamische 3D-Szene Spieler/Objekte

Mehr

6. Algorithmen der Computer-Geometrie

6. Algorithmen der Computer-Geometrie 6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie

Mehr

Non-Photorealistic Rendering

Non-Photorealistic Rendering Übersicht 1. Motivation und Anwendungen 2. Techniken - Cel Shading - Konturlinien - Hatching Einführung Traditionelle Computergraphik Ziel: Fotorealismus Einführung Motivation Bewusste Vermeidung von

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

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

3 Quellencodierung. 3.1 Einleitung

3 Quellencodierung. 3.1 Einleitung Source coding is what Alice uses to save money on her telephone bills. It is usually used for data compression, in other words, to make messages shorter. John Gordon 3 Quellencodierung 3. Einleitung Im

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der

Mehr

Computer-Graphik 2 SS 10 Real-time rendering

Computer-Graphik 2 SS 10 Real-time rendering lausthal omputer-raphik 2 Real-time Rendering by Advanced Visibility omputations lausthal University, ermany zach@in.tu-clausthal.de Klassifikation (Erinnerung) Problemklassen innerhalb des Bereichs "Visibility

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

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

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

Mehr

Computergraphik Grundlagen

Computergraphik Grundlagen Computergraphik Grundlagen VII. Clipping und Culling Prof. Stefan Schlechtweg Hochschule Anhalt Fachbereich Informatik Inhalt Lernziele 1. Definition und Anwendung von Clipping 2. Sichtbarleitsbestimmung

Mehr

4. Kapitel 3D Engine Geometry

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

Mehr

Modellierungsmethoden

Modellierungsmethoden Modellierungsmethoden Definition (smethoden) smethoden fassen verschiedene Beschreibungsmittel, insbesondere Datenstrukturen und Operationen, für geometrische Objekte zusammen. Äquivalente Begriffe: Geometrische

Mehr

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10 Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

DATENSTRUKTUREN UND ZAHLENSYSTEME

DATENSTRUKTUREN UND ZAHLENSYSTEME DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner

Mehr

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

Das Falten-und-Schneiden Problem

Das Falten-und-Schneiden Problem Das Falten-und-Schneiden Problem Kristian Bredies Uttendorf, 14. Februar 2005 Inhalt Einleitung Origami Das Falten-und-Schneiden Problem Mathematische Analyse Flaches Origami Lokale Eigenschaften Faltbarkeit

Mehr

AutoSPARQL. Let Users Query Your Knowledge Base

AutoSPARQL. Let Users Query Your Knowledge Base AutoSPARQL Let Users Query Your Knowledge Base Christian Olczak Seminar aus maschinellem Lernen WS 11/12 Fachgebiet Knowledge Engineering Dr. Heiko Paulheim / Frederik Janssen 07.02.2012 Fachbereich Informatik

Mehr

3D rendering. Introduction and interesting algorithms. PHP Usergroup Dortmund, Dortmund, 2006-12-14. Kore Nordmann <kore@php.net>

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

Mehr

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

3D Rasterization. Unifying Rasterization and Ray Casting. Simon Christoph Stein. 20 Dez 2011. Georg-August-Universität Göttingen

3D Rasterization. Unifying Rasterization and Ray Casting. Simon Christoph Stein. 20 Dez 2011. Georg-August-Universität Göttingen Unifying Rasterization and Ray Casting Georg-August-Universität Göttingen 20 Dez 2011 Inhaltsverzeichnis Traditionelle Renderverfahren Rasterung Raytracing 3D-Rasterung Algorithmus Vergleich 2D/3D-Rasterung

Mehr

www.uni-erfurt.de/target/ringvorlesungen

www.uni-erfurt.de/target/ringvorlesungen www.uni-erfurt.de/target/ringvorlesungen Digitale Spiele als Ab-Bild der realen Welt Die Sicht eines Computergraphikers Paul Grimm Computer Graphics Applied Computer Science Erfurt University of Applied

Mehr

2. Lernen von Entscheidungsbäumen

2. Lernen von Entscheidungsbäumen 2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

Heute. Motivation. Diskretisierung. Medizinische Bildverarbeitung. Volumenrepräsentationen. Volumenrepräsentationen. Thomas Jung

Heute. Motivation. Diskretisierung. Medizinische Bildverarbeitung. Volumenrepräsentationen. Volumenrepräsentationen. Thomas Jung t.jung@fhtw-berlin.de Heute Volumenrepräsentationen Thomas Jung Generierung von Volumenrepräsentationen Rendering von Volumenrepräsentationen Konvertierung in Oberflächenrepräsentationen Weitere Geometrische

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Zeitkritisches Rendering mittels perspektivischer Suche

Zeitkritisches Rendering mittels perspektivischer Suche Zeitkritisches Rendering mittels perspektivischer Suche Autor: Jochen Darley Betreuer: Dr. Martin Ziegler und Dr. Matthias Fischer Zweitkorrektor: Dr. Teuber Zusammenfassung Virtuelle Szenen haben heute

Mehr

12. Modelle für 3D-Objekte und -Szenen

12. Modelle für 3D-Objekte und -Szenen 12. Modelle für 3D-Objekte und -Szenen Modell: Abbild der Realität, welches bestimmte Aspekte der Realität repräsentiert (und andere ausblendet) mathematische Modelle symbolische Modelle Datenmodelle Experimentalmodelle

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

NÜTZLICHE TIPPS FÜR OPTIMALE SCANS

NÜTZLICHE TIPPS FÜR OPTIMALE SCANS Bedingungen, um gute Scans zu erhalten Die Faktoren, von denen das Ergebnis eines Scans abhängt, sind einerseits die Umgebung sowie die Konfiguration und Kalibrierung des Scanners, aber auch das zu scannende

Mehr

Systemdokumentation - Rückprojektion mit mehreren Spiegeln

Systemdokumentation - Rückprojektion mit mehreren Spiegeln Systemdokumentation - Rückprojektion mit mehreren Spiegeln Robert Priewasser dm05022 Semesterprojekt Betreuer: DI(FH) Peter Brandl WS 05/06 Digitale Medien in Hagenberg Inhaltsverzeichnis 1 Umsetzung 1

Mehr

Seminar aus maschinellem Lernen MCTS und UCT

Seminar aus maschinellem Lernen MCTS und UCT Seminar aus maschinellem Lernen MCTS und UCT 26. November 2014 TU Darmstadt FB 20 Patrick Bitz 1 Übersicht Historisches zu MCTS MCTS UCT Eigenschaften von MCTS Zusammenfassung 26. November 2014 TU Darmstadt

Mehr

Informationssystemanalyse Use Cases 11 1

Informationssystemanalyse Use Cases 11 1 Informationssystemanalyse Use Cases 11 1 Use Cases Slide 1 Als ein populäres Mittel um Anforderungen zu erfassen und Systeme zu beschreiben, werden Use Cases benutzt. Sie bilden die Basis für eine umfassendere

Mehr

Rendering: Lighting & Shading

Rendering: Lighting & Shading Hauptseminar How to make a Pixar Movie WS 2010 / 2011 Rendering: Lighting & Shading von Manuel Schmidt Gliederung: 1 Einführung 1.1 Rendering 1.2 Reflektionsmodelle 1.2.1. Diffuse Reflektion 1.2.2. Spieglende

Mehr

Stereoskopisches 3D Gaming

Stereoskopisches 3D Gaming PRIME Symposium 17.02.2011 BERLIN Stereoskopisches 3D Gaming Jonas Schild Lehrstuhl für Medieninformatik und Entertainment Computing Universität Duisburg Essen Lehrstuhl Medieninformatik Entertainment

Mehr

Seminar Komplexe Objekte in Datenbanken

Seminar Komplexe Objekte in Datenbanken Seminar Komplexe Objekte in Datenbanken OPTICS: Ordering Points To Identify the Clustering Structure Lehrstuhl für Informatik IX - Univ.-Prof. Dr. Thomas Seidl, RWTH-Aachen http://www-i9.informatik.rwth-aachen.de

Mehr

Kurzanleitung Zeichnungsmodul ACD Chemsketch 11.0 Freeware

Kurzanleitung Zeichnungsmodul ACD Chemsketch 11.0 Freeware U. Schütz Seite 1 von 7 Kurzanleitung Zeichnungsmodul ACD Chemsketch 11.0 Freeware Draw Durch Anklicken der Schaltfläche Draw wechselt das Programm in den Zeichnungsmodus. Optionen Show Grid Raster anzeigen

Mehr

Projekt AGB-10 Fremdprojektanalyse

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

Mehr

Distributed Space Partitioning Trees

Distributed Space Partitioning Trees Distributed Space Partitioning Trees Management von ortsbezogenen Diensten Fachbereich Informatik FernUniversität Hagen Ortsbezogene Dienste Ein ortsbezogener Dienst ist eine Anwendung, die: - auf geographischen

Mehr

Fakultät Wirtschaftswissenschaft

Fakultät Wirtschaftswissenschaft Fakultät Wirtschaftswissenschaft Matrikelnr. Name Vorname KLAUSUR: Entwurf und Implementierung von Informationssystemen (32561) TERMIN: 11.09.2013, 14.00 16.00 Uhr PRÜFER: Univ.-Prof. Dr. Stefan Strecker

Mehr

Nachtrag zu binären Suchbäumen

Nachtrag zu binären Suchbäumen Nachtrag zu binären Suchbäumen (nicht notwendigerweise zu AVL Bäumen) Löschen 1 3 2 10 4 12 1. Fall: Der zu löschende Knoten ist ein Blatt: einfach löschen 2. Fall: Der zu löschende Knoten hat ein Nachfolgeelement

Mehr

Methoden der Datenanalyse AI-basierte Decision Support Systeme WS 2006/07

Methoden der Datenanalyse AI-basierte Decision Support Systeme WS 2006/07 Regression Trees Methoden der Datenanalyse AI-basierte Decision Support Systeme WS 2006/07 Ao.Univ.Prof. Dr. Marcus Hudec marcus.hudec@univie.ac.at Institut für Scientific Computing, Universität Wien 2

Mehr

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen 9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

C# Programm: Raytracer (3D Renderer)

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

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

Mehr

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung 1 Kapitel III Skalierbare Peer to Peer-Netzwerke Tapestry von Zhao, Kubiatowicz und Joseph (2001) Netzw erke 2 Tapestry

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

Mehr

1. Arbeiten mit dem Touchscreen

1. Arbeiten mit dem Touchscreen 1. Arbeiten mit dem Touchscreen 1.1. Einleitung Als weitere Buchungsart steht bei DirectCASH ein Touchscreen zur Verfügung. Dieser kann zwar normal via Maus bedient werden, vorzugsweise jedoch durch einen

Mehr

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume

Mehr

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

THREEDEE Visual FX, Echtzeit 3D-Applikation & Virtual Reality

THREEDEE Visual FX, Echtzeit 3D-Applikation & Virtual Reality 1 THREEDEE Visual FX, Echtzeit 3D-Applikation & Virtual Reality UNTERNEHMENSPRÄSENTATION Eine Idee drei Säulen Die ThreeDee GmbH 2 UNSERE IDEE Die ThreeDee GmbH bietet Ihnen drei aufeinander aufbauenende

Mehr

Jeder Flächentyp erfordert seine eigenen Modellierungstechniken, die als Set zu diesen Typen gruppiert sind.

Jeder Flächentyp erfordert seine eigenen Modellierungstechniken, die als Set zu diesen Typen gruppiert sind. Modellierung mittels Maya-Software Es werden dafür drei verschiedene Modellflächentypen (modeling surfaces) verwendet : 1. Polygone 2. NURBS verallgemeinerte B-Splines 3. Subdivision surfaces (unterteilte

Mehr