30
Pro Ogre 3D Programming

Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

Embed Size (px)

Citation preview

Page 1: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

Pro Ogre 3D Programming

Page 2: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

Überblick1. Resource Management

2. Ogre Render Targets

3. Animation

4. Billboards and Particles

Page 3: Pro Ogre 3D Programming. Überblick 1.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

Page 4: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 5: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 6: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 7: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 8: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

Resource Life Cycles

Page 9: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 10: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 11: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 12: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 13: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 14: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

Render Texture Texture ist die interessanteste Form des Render Targets

simples Konzept: manches einer Szene wird in Texture gerendert

Page 15: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 16: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 17: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

Eigenschaften der Animation

1. Length

2. Current Position

3. Animation name

4. Looping

5. Enabled

6. Weight

Page 18: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

Skeletal Animation

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

Page 19: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 20: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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.

Page 21: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

Vertex Animation Eckpunkte werden animiert

Zwei verschiedene Typen

1. Morph Animation

2. Pose Animation

Page 22: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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)

Page 23: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 24: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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)

Page 25: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 26: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 27: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 28: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

Particle System

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

Page 29: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

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

Page 30: Pro Ogre 3D Programming. Überblick 1.Resource Management 2.Ogre Render Targets 3.Animation 4.Billboards and Particles

Vielen Dank für Eure Aufmerksamkeit