Ogre Overview Lecture 3.

Slides:



Advertisements
Similar presentations
3D Mental Vision A teaching platform for Computer Graphics and Virtual Reality.
Advertisements

MVisio: a multi-device 2D/3D graphic engine for PDAs, PCs and CAVEs Achille Peternier, Ph. D. Student VRLab, EPFL, Switzerland 3D Mental Vision.
© Copyright Khronos Group, Page 1 COLLADA FX Update and FX Composer 2.0 Daniel Horowitz & Ignacio Castaño.
Graphics Pipeline.
Irrlicht Engine Overview By Eric Osugi. Irrlicht's development started in 2003 with only Nikolaus Gebhardt. Only after the 1.0 release of Irrlicht in.
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
Hierarchical Modeling I Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
Game Engines Non-game specific technology Game: – Engine – Assets (models, animations, sounds, AI, and physics) – Code (AI, Scripting, etc.)
Unity 3D game IDE 1.  Unity is a multi-platform, integrated IDE for scripting games, and working with 3D virtual worlds  Including:  Game engine ▪
AGD: 5. Game Arch.1 Objective o to discuss some of the main game architecture elements, rendering, and the game loop Animation and Games Development.
Hierarchical Transformations and Models CSE 3541 Matt Boggus.
Hierarchical Transformations Hierarchical Models Scene Graphs
Antigone Engine Kevin Kassing – Period
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Graphical Objects and Scene Graphs 1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009.
Week 2 - Wednesday CS361.
Computer Graphics World, View and Projection Matrices CO2409 Computer Graphics Week 8.
Game Engine Programming. Game Engine Game Engine Rendering Engine (OGRE) Rendering Engine (OGRE) Physics Engine (Bullet) Physics Engine (Bullet) Input/Output.
Data Structures for Scenes, The Basics of Scene Graphs Glenn G. Chappell U. of Alaska Fairbanks CS 481/681 Lecture Notes Friday,
Web Games Programming An Introduction to Unity 3D.
Game Engine Jian-Liang Lin ( 林建良 )
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
Computing & Information Sciences Kansas State University Lecture 19 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 19 of 42 William H. Hsu.
2008/9/24 Kim, HyungSeok. HyungSeok Kim, Konkuk University Part I: Framework – 1. Windows creation – 2. Renderer – 3. Lights and Objects/Model loading.
Useful Tools for Making Video Games Part II An overview of.
CSE 381 – Advanced Game Programming GLSL. Rendering Revisited.
Computer Graphics Matrix Hierarchies / Animation
ถ้าจะพูดถึง 3ds MAX  ทุกคนก็คงนึกถึงโปรแกรมทำ 3D อนิเมชั่น ซึ่งหลายๆคนคงรู้จักกัน  โดยปัจจุบันได้มีถึงเวอร์ชั่น 9 และล่าสุดคือ 2008 จึงจะมาบอกถึงความแตกต่างของเวอร์
Maths & Technologies for Games Graphics Optimisation - Batching CO3303 Week 5.
Antigone Engine. Introduction Antigone = “Counter Generation” Library of functions for simplifying 3D application development Written in C for speed (compatible.
UFCFSU-30-13D Technologies for the Web An Introduction to Unity 3D.
Computer Graphics I, Fall 2008 Hierarchical Modeling I.
REFERENCE: QUATERNIONS/ Ogre Transformations.
Object Animation CMT3317. Do you need to do animation? We consider ways of animating composite objects – that have a number of different parts e.g. a.
Game Engines Game: – Engine – Assets (models, animations, sounds, AI, and physics) – Code (Rules, AI, Scripting, etc.)
Institute for Computer Graphics and Vision Computer Graphics and Interactive Systems 1 Grabner HS i4, 2006/03/08 Web3D, VRVU, SGP Web3D ( ) VRVU.
Techniques for Improving Large World and Terrain Streaming Danie Conradie Trinigy Inc.
Introduction to Computer Graphics
EEC-693/793 Applied Computer Vision with Depth Cameras
Quick Intro to Unity Lecture 2.
Scene Manager Creates and places movable objects like lights and cameras so as to access them efficiently, e.g. for rendering. Loads and assembles world.
Week 2 - Monday CS361.
Antigone Engine.
Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1st edition CS 4455.
More (C#) Scripting Day 2, Lesson 1.
EEC-693/793 Applied Computer Vision with Depth Cameras
Graphical Objects and Scene Graphs
Advanced Graphics Algorithms Ying Zhu Georgia State University
Ogre Overview.
Ogre.
3D Graphics Rendering PPT By Ricardo Veguilla.
Chapter 6 GPU, Shaders, and Shading Languages
Understanding Theory and application of 3D
EEC-693/793 Applied Computer Vision with Depth Cameras
Hierarchical and Object-Oriented Graphics
Unit 20 Software Part 2.
Unit 20 Software Part 2.
3D applications in Delphi
Hierarchical and Object-Oriented Graphics
Game Engines Non-game specific technology Game: Engine
Fundaments of Game Design
Viewing/Projections I Week 3, Fri Jan 25
EEC-693/793 Applied Computer Vision with Depth Cameras
Lecture 3: G.O. architecture + Polymorphism
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Games Development 2 Tools Programming
Computer Graphics Matrix Hierarchies / Animation
Presentation transcript:

Ogre Overview Lecture 3

What is it? Object-Oriented Graphics Rendering Engine Not a game engine – we'll add that! Implements much of what your learned about in ETGG280x Shadows Hierarchical Transformations (with culling and material optimization) Optimized scene managers (tileable-terrain, BSP, etc). Billboards / overlays Shader support Skeletal (forward kinematics) animation particle systems … C++ oriented It's large, but well-designed. Cross-platform using DirectX / OpenGL Easy to integrate other libraries Python (scripting) Bullet (physics) irrklang (3d sound) SDL (windowing, input) MIT license

Is it perfect? NO!!! Large and complex Documentation is good, but… …scattered …much changes between minor versions Not a game engine Ogre 2.1 is very modern Vulkan, Metal, iOS, Android, AZDO …but 1.9 is DirectX-9 quality

Major ogre objects These are the first you’ll interact with: The root The RenderWindow The SceneManager Viewports and Cameras Resources Entities SceneNodes

The Root The root contains all of the top-level managers Plugins.cfg TextureManager, GPUProgramManager, … The render window (if any) The scene manager (if any) So…this is technically the only Ogre variable you need to store. Although, saving some convenience programs is usually desirable. Plugins.cfg [Look at it and describe it] Rendering (do a traversal of the scene graph) mRoot->renderOneFrame();

Render Window A…window. In our apps, we'll have two window objects (but only one window) Ogre Window: an actual window SDL Window: attached to the ogre window (detects input)

The Scene Manager The scene manager organizes / optimizes all the renderables Lights, camera, meshes (entities) [including the materials attached], particle emitters, etc. Hierarchical Each (scene) node must be a child of the scene manager's root node You can also have children nodes of those scene nodes as well. If you transform one node, everything below it is transformed [Example scene] Optimizes GL/DX calls: material swaps, rendering, occlusion-culling, etc. Several different types: Octree, BSP, Terrain, etc.

Viewports and Cameras They are separate objects, but closely related A rectangular portion of the window (with a z-value for layering) Created through the render window Camera: A 3d object created by the scene manager Must be attached to a viewport to render to it.

II.e Resources (e.g. Materials) Some important resources: [Each has its own manager] .material file. Contains settings and links to textures shader programs … .mesh file. A binary (optimized for reading quickly) mesh file. Has a link to a .material file.

Entities and Meshes Ogre has a generic class called Moveable. A number of classes are derived from it: Camera, Entity, Light, ParticleEmitter, … You create pointers to each of these through the scene manager (and then attach to a scene node) Ogre is managing the memory. You can either call a method (of the scene manager) to destroy it or wait until shutdown. Every Moveable object must have a unique name (across that type or globally?) An Entity is an instance of a mesh. The actual mesh data is loaded once (into a vertex/index buffer) It can be referenced with multiple entities, each with their own material (optional) Each Entity also can have independent "activations" of skeletal animations.

(Scene) Nodes The scene manager has a single root scene node. Only things attached to a scene node which is a child of the root will be rendered. Each scene node has a transformation matrix (3x4) that contains: rotation scale translation You can modify the matrix directly, or more commonly through a helper function: setPosition setOrientation(Quaternion q); setScale You can attached any instance of a class derived from Moveable using the attachObject method.

Where to start My thrilling OgreIntro document… …and the Lab specs We’ll explore more Ogre on an as-needed basis.