Upload
ishild-zilles
View
117
Download
1
Embed Size (px)
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