Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation...

Preview:

Citation preview

Pro Ogre 3D Programming

Überblick1. Resource Management

2. Ogre Render Targets

3. Animation

4. Billboards and Particles

Resource Mangement

• Ressource: alles was Ogre zum rendern einer Szene benutzt

•Resource Management: organisatorische Strategie, die Ogre verwendet um das Laden und den Zugang zu Daten und Dateien zu verwalten

Resource Types1. Material: Material Definition

2. Mesh (das Netz): Vertex, Geometrie und einige Animationsdaten

3. Skeleton: Knochen Hierarchie

4. Font: Schrift Definition

5. GPU Program: GPU Programm Definitionen sind in der Datei .program festgehalten

6. Compositor scripts: Definitionen und Anweisungen für das Programmierer System

7. texture: 2D Bilder warden als Text Daten gerendert

Standard Ressourcen von Ogre

Resource Management System

viele gute Gründe für Resource Management System

1. Schnelligkeit

2. Effizient

3. Muss keine Ressourcen in den Speicher laden, die die Anwendung vielleicht irgendwann braucht

Resource Groups Ogre kann Ressourcen in zwei Ebenen verwalten

1. in den Bedingungen von den individuellen Ressourcen selbst

2. in „named groups“

Vorteil: kann Ressourcen einer Gruppe als Ganzes behandeln (gleichzeitig laden oder entladen)

Resource Group Management liegt allein bei dem Programmierer

Dient dem persönlichen organisieren

Resource Locations

• Speicherstellen in dem Ogre Ressourcen speichert

• Nach Namen gespeichert, damit man sie schnell findet

• kann Speicherstellen jederzeit hinzufügen oder entfernen

• Ressource Speicherstelle : Archive

• innerhalb einer einzelnen Datei befindet sich eine hierarchische Organisation von Dateien (Zip Archive)

• Ogre Archive werden nur gelesen

Resource Life Cycles

Logical Resource Management• jeder Ressource Typ bekommt seinen eigenen Ressource Manager:

Aufgabe= laden und entladen der Ressourcen

Resource Loading

Wenn eine Ressource nicht schon vorher geladen ist, wird sie geladen, wenn sie gebraucht wird

Wann eine bestimmte Ressource gebraucht wird ist in Ogre verankert

Resource Unloading

Ressource Daten bleiben im Speicher geladen bis die Anwendung es entläd

Ogre entfernt keine Ressource automatisch aus dem Speicher

Praktisch [Bootstrap] Zip=../../media/packs/OgreCore.zip [General] FileSystem=../../media FileSystem=../../media/fonts FileSystem=../../media/materials/programs FileSystem=../../media/materials/scripts FileSystem=../../media/materials/textures FileSystem=../../media/models FileSystem=../../media/overlays FileSystem=../../media/particle FileSystem=../../media/gui Zip=../../media/packs/cubemap.zip Zip=../../media/packs/cubemapsJS.zip Zip=../../media/packs/dragon.zip Zip=../../media/packs/fresneldemo.zip Zip=../../media/packs/ogretestmap.zip Zip=../../media/packs/skybox.zip

Ogre Render Targets

Speicherbereich in dem gerendert wird

Primäre Render Fenster ist das Hauptfenster der Anwendung

von vorneherein gegeben

Render-to-texture (RTT)

redert einen Teil der Szene in eine texture

Render Window

Minimale Ausstattung

Neben dem primär Fenster können zweit Fenster erstellt werden

Primär Fenster bleibt jedoch das wichtigster Fenster

man muss erst die sekundären Fenster schließen/zerstören, bevor man das primäre Fenster zerstören kann

Viewports

Render target beinhaltet ein oder mehrere Viewports

Viewports werden erstellt in Bezug auf eine bestimmte Kamera

man kann die Kamera jedoch jederzeit ändern

„Fenster zur Szene“: verhilft der Interaktion zwischen Kamera und Render Target

Render Texture Texture ist die interessanteste Form des Render Targets

simples Konzept: manches einer Szene wird in Texture gerendert

Animation Ogre Animation verglichen mit „Daumenkino“ Illusion von Bewegung 2 verschiedene Typen von Animation in Ogre keyframed animation via controller

Animation Kollektion von möglichen verbundenen tracks

Animation track= Reihe von Daten Werten, die als Funktion von Zeit gespeichert wird

3 Typen von Animations Tracks:

1. NumericAnimationTrack

2. NodeAnimationTrack

3. VertexAnimationTrack

Eigenschaften der Animation

1. Length

2. Current Position

3. Animation name

4. Looping

5. Enabled

6. Weight

Skeletal Animation

Geläufigste Typ von Animationen Punkte werden in einem Netz zu „Knochen“ verbunden Skelet entsteht „matrix palette skinning“

Skeleton

Definiert durch eine Eltern Hierarchie Alle Knochen haben „Eltern“ bis auf dem root Knochen Veränderungen an einem Knochen führen zu Positionsveränderungen von allen Kinder Knochen

Vertex Binding Wenn der Knochen sich bewegt müssen die Punkte/Vertex sich mit bewegen

Vertex müssen an das Skeleton gebunden werden

Vertex werden zu Knochen zugeordnet

Weight ist hier die Einwirkung, die der Knochen auf den Punkt hat

Beispiel: hat ein Knochen die Zuordnung den Eckpunkt mit 1.0 weigth zu beeinflussen, kontrolliert er diesen komplett

In Ogre können nur 4 Knochen einem Eckpunkt zu geordnet werden, jedoch kann ein Knochen zu beliebig vielen Eckpunkten zu geordnet werden.

Vertex Animation Eckpunkte werden animiert

Zwei verschiedene Typen

1. Morph Animation

2. Pose Animation

Blending Animation Kann meisten Animationstypen vermischen komplexere Animation in einer Szene

- man kann morph Animationen und pose Animationen nicht zusammen führen

Mischt man vertex & skeletal Animationen, werden zuerst die Vertex Animationen von Ogre beachtet und dann die zutreffenden Skeletal Umformungen der Vertex beachtet

Beispiel: Gesichts Vertex werden mit pose Animationen durchgeführt und der Rest mit dem Skeletal Animationen

zwei oder mehrer Skeletal Animationen zu blenden ist besonders sinnvoll bei Übergängen zwischen zwei Animationen (Rennen-Laufen)

Billboards Billboards= Plakatwände, die sich häufig neben Straßen befinden

kein Zufall

Billboards in Ogre sind Vierecke, die sich nach der Kamera orientieren

rotieren in Kamera Blickrichtung

Billboards werden oft bei Spezial Effekts wie Explosionen oder Rauch benutzt

Auch bei Wolken, Regen, Licht oder Gräser werden Billboards verwendet

Billboard Sets

Billboards können nicht alleine existieren Müssen zu Sets gehören Billboards Sets verwalten Gruppen von Billboards mit gleichen Dimensionen und Material

Ogre sieht Billboards eines Sets als eine Einheit an (zusammen gerendert)

Billboard Creation Standard Zustand: point Billboard

richten sich immer nach der Kamera

sind immer aufrecht

Ausgangspunkt ist im Zentrum

Oriented Billboard

rotiert um vorgegebene/eigene Y-Achse

Perpendicular Billboard

passt sich aufrecht einem Richtungsvektor an

Billboard Pools

Gibt in Ogre an wie viele Billboards man benötigt, wenn man ein Set erstellt

Ogre erstellt gewünschte Anzahl und stellt sie bereit

In aktive und freie Billboards aufgeteilt

Wenn man einen Billboard beanspruchen möchte, jedoch keiner mehr da ist, gibt Oger NULL zurück

kann mehr Billboards erstellen ist jedoch sehr aufwendig und nicht ratsam

Billboard Chains & Ribbon Trails Billboard „Ketten“ sind nützlich wenn man Effekte wie Licht, Strahlen, Steifen und Spuren erzeugen möchte

Billboards aus einem Set müssen verbunden werden

Particle System

http://de.wikipedia.org/wiki/Partikelsystem#mediaviewer/File:Particles.jpg

Literatur• Pro OGRE 3D Programming by Gregory Junker, 2006.

Vielen Dank für Eure Aufmerksamkeit

Recommended