Game Design and Dev Ogre3D Overview

Slides:



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

A Toolbox for Blackboard Tim Roberts
Autodesk Inventor 2010 Essentials Plus Mr Dalton.
Engine Overview A Programmer’s Glimpse at UE4 Gerke Max Preussner
Android: Hello World Frank Xu Gannon University. Steps Configuration ▫Android SDK ▫Android Development Tools (ADT)  Eclipse plug-in ▫Android SDK and.
Useful Tools for Making Video Games Part I An overview of Ogre.
Eclipse Introduction Dwight Deugo Nesa Matic
Creating Animation Pertemuan Matakuliah: L0182 / Web & Animation Design Tahun: 2008.
© 2006 ITT Educational Services Inc. CD230 Architectural Design & Drafting: Unit 1 Slide 1 The DesignCenter and VIZ Render in ADT.
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.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
SE 320 – Introduction to Game Development Lecture 11: Animations and GoKit Lecturer: Gazihan Alankuş Please look at the last slides for assignments (marked.
3rd Person Shooter Milestone 1. Timeplan & Progress table Timeplan Progress table Progress table.
Physically Based Animation and Modeling
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
WebGL for lazy dudes Janne Lautamäki 1 GLGE – Janne Lautamäki
Open-Source Graphics Development with the Delta3D Game Engine Chris Osborn Lead Software Engineer Delta3D, MOVES Institute
Adobe FlashProfessional CS5 – Illustrated
CSE 786 Game Presentation June 9, 2009 Game: “Little Robot’s Adventure” Team: OgreNoName Hiroshi Hayashi Bryan Linthicum Brett Kizer.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Keith Elder Microsoft MVP
Tutorial 2 Drawing Text, Adding Shapes, and Creating Symbols.
Publishing a Macromedia Flash Movie – Lesson 131 Publishing a Macromedia Flash Movie Lesson 13.
1 Lecture 2 Animation References: [1] Gregory Junker, Pro OGRE 3D Programming, Apress, 2006 [2] Ogre Tutorials – Ogre Wiki
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Game Engine Programming. Game Engine Game Engine Rendering Engine (OGRE) Rendering Engine (OGRE) Physics Engine (Bullet) Physics Engine (Bullet) Input/Output.
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
Advanced Game Design Prof. Roger Crawfis Computer Science & Engineering The Ohio State University.
Scalable Game Development William Roberts Senior Game Engineer
Lab1 – Part III CSE 581 Roger Crawfis. To Do We have the basic framework, but need to: 1.Add the ability to open and read an image. 2.Generate pseudo-random.
Games Games GAMES. About Me:  Ariel Nehmad.  I’m 31 years old.  Live in Buenos Aires, Argentina.  CTO and father of Flare3D, FLSL and Flare3D Phys…
Sage ACT! 2013 SDK Update Brian P. Mowka March 23, 2012 Template date: October 2010.
Introduce Grid Service Authoring Toolkit Shannon Hastings, Scott Oster, Stephen Langella, David Ervin Ohio State University Software Research Institute.
Frame, Timeline and Vector Animation. Purposes of Animation Capture viewers attention –exampleexample Explain a system or process –exampleexample Set.
Game Programming 08 OGRE3D Material in Action 2010 년 2 학기 디지털콘텐츠전공.
11 Lecture 3 Particle Effects References: [1] Gregory Junker, Pro OGRE 3D Programming, Apress, 2006 [2] Ogre Tutorials – Ogre Wiki
Useful Tools for Making Video Games Part II An overview of.
111 Introduction to OGRE3D Programming: Main Loop.
Game Programming 07 OGRE3D Mesh in Action 2010 년 2 학기 디지털콘텐츠전공.
FhSim Time domain simulation and visualization of dynamic systems.
RealXtend vs. Second Life RealXtend overview  Main ambition Promote the evolution.
Lab2 Procedural Content Lab2 CSE 788 Prof. Roger Crawfis.
Autodesk Inventor 2009 Essentials Plus Instructor’s Name.
1 OGRE Programming Intermediate Tutorial. 2Contents 2 1.Select any object on the screen using the mouse 2.Restrict what is selectable.
XP Tutorial 3 Creating Animations. XP New Perspectives on Macromedia Flash MX Elements of Animation Layers are used to organize the content of.
Input Zhaohui Ning Aaron Cardwell Boonthanome Nouanesengsy.
Autodesk Inventor 2011 Essentials Plus Instructor’s Name.
 Open  Open an existing Autodesk Inventor file  New  Template for a new part, assembly, presentation file, sheet metal part, or drawing.
Unbuffered Input Games generally use unbuffered Input Ogre provides FrameListeners – Ogre's main infinite loop → startRendering – Also called the render.
Yingcai Xiao Game Development with Unity3D Inside/Outside Unity3D.
Apache Cocoon – XML Publishing Framework 데이터베이스 연구실 박사 1 학기 이 세영.
#SummitNow Lessons Learnt From Share Extras Alfresco Summit 2013 Will Abson
Bootstrap Tutorial Overview Objective Learn how to use the bootstrap for configuring the system. Requirements Installed Version of.
Adobe Flash Professional CS5 – Illustrated Unit A: Getting Started with Adobe Flash Professional.
Adobe Flash Professional CS5 – Illustrated Unit C: Using Symbols and the Library Panel.
Game Development with Unity3D
Tutorial 3 Creating Animations.
Game Development with Unity3D Inside/Outside Unity3D
Dreamweaver MX Lesson 14: Using Find and Replace.
Tutorial 3 Creating Animations.
Ogre Overview Lecture 3.
Ogre Overview.
Blender API: Part 2: Game Engine
Cordova & Cordova Plugin Installation and Management
Installing and running the local check and grader projects in Eclipse
Web programming and advanced development techniques
Dreaming up a CMS in Go (golang)
Intermediate Tutorial
Presentation transcript:

Game Design and Dev Ogre3D Overview CSE 786 Prof. Roger Crawfis

Ogre 3D Base web site: www.ogre3d.org Download and install Notes Wiki The SDK just seems to unpack the files where they were, so move to you development area (Programming/SDKs?) The Environment variable (OGRE_HOME) was not set. Use this in you Project settings. Includes Boost and OIS. Does not include CEGUI. OIS name conflicts with Ogre (Vector3), so never have a: using namespace OIS; Wiki Tutorials API documentation …

What is Ogre3D? Object-Oriented Some Design Patterns used A little old school and the code is getting bloated. Not very well engineered now. Some Design Patterns used Singletons Managers Factory Methods

What is Ogre3D? Plug-In Architecture Rendering System Core Features Enhancements Dynamically loads dll’s at runtime. Copy the ones you need over to your repository. Default framework reads in a config file to determine which plug-ins to load. Not automatic.

Plug-In Framework Default Plugins.cfg # Defines plugins to load # Define plugin folder PluginFolder=. # Define plugins Plugin=RenderSystem_Direct3D9_d Plugin=RenderSystem_GL_d Plugin=Plugin_ParticleFX_d Plugin=Plugin_BSPSceneManager_d Plugin=Plugin_CgProgramManager_d Plugin=Plugin_PCZSceneManager_d.dll Plugin=Plugin_OctreeZone_d.dll Plugin=Plugin_OctreeSceneManager_d

Media Resources Default Resources.cfg file: # Resource locations to be added to the 'boostrap' path # This also contains the minimum you need to use the Ogre example framework [Bootstrap] Zip=../../media/packs/OgreCore.zip # Resource locations to be added to the default path [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 FileSystem=../../media/DeferredShadingMedia FileSystem=../../media/PCZAppMedia 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

Core Objects -The 'Root' object is the entry point to the OGRE system. This object MUST be the first one to be created, and the last one to be destroyed. -(ST_GENERIC, ST_INTERIOR , BSP_MANAGER)The intention is that specialisations will be created for each type of scene such that under the surface the subclass will optimise the scene organisation for best performance given assumptions which can be made for that scene type. An example is the BspSceneManager which optimises rendering for large indoor levels based on a Binary Space Partition (BSP) tree. -An entity is an instance of a movable object in the scene. -The Material object controls how objects in the scene are rendered. It specifies what basic surface properties objects have such as reflectance of colours, shininess etc, how many texture layers are present, what images are on them and how they are blended together, what special effects are applied such as environment mapping, what culling mode is used, how the textures are filtered etc. -Overlays allow you to render 2D and 3D elements on top of the normal scene contents to create effects like heads-up displays (HUDs), menu systems, status panels etc.

Startup Sequence ExampleApplication Go() Setup() Configure() setupResources() chooseSceneManager() createCamera() createViewport() createResourceListener() loadResources() createScene() frameStarted/Ended() createFrameListener() destroyScene()

Basic Scene Entity, SceneNode Camera, lights, shadows BSP map Integrated ODE physics Frame listeners Demo_BspCollision

Terrain, sky, fog Demo_Terrain Media\Terrain.cfg

CEGUI Window, panel, scrollbar, listbox, button, static text Media/gui/ogregui.layout CEGUI::Window* sheet = CEGUI::WindowManager::getSingleton().loadWindowLayout( (CEGUI::utf8*)"ogregui.layout"); mGUISystem->setGUISheet(sheet); Demo_Gui Can show Buffered input: OIS::KeyListener, OIS::MouseListener

Animation Node animation (camera, light sources) Skeletal Animation AnimationState *mAnimationState; mAnimationState = ent->getAnimationState("Idle"); mAnimationState->setLoop(true); mAnimationState->setEnabled(true); mAnimationState->addTime(evt.timeSinceLastFrame); mNode->rotate(quat); -Softimage XSI, Milkshape 3D, Blender, 3D Studio or Maya exporters Shadow_deneme Demo_SkeletalAnimation => CEGUI_MeshViewer -Morph animation works by storing snapshots of the absolute vertex positions in each keyframe, and interpolating between them. -Pose animation is about blending multiple discrete poses, expressed as offsets to the base vertex data, with different weights to provide a final result.

Animation Crowd (instancing vs single entity) Facial animation InstancedGeometry* batch = new InstancedGeometry(mCamera->getSceneManager(), "robots" ); batch->addEntity(ent, Vector3::ZERO); batch->build(); Facial animation VertexPoseKeyFrame* manualKeyFrame; manualKeyFrame->addPoseReference(); manualKeyFrame->updatePoseReference ( ushort poseIndex, Real influence)  Demo_Crowd Demo_FacialAnimation

Picking CEGUI::Point mousePos = CEGUI::MouseCursor::getSingleton().getPosition(); Ray mouseRay = mCamera->getCameraToViewportRay(mousePos.d_x/float(arg.state.width), mousePos.d_y/float(arg.state.height)); mRaySceneQuery->setRay(mouseRay); mRaySceneQuery->setSortByDistance(false); RaySceneQueryResult &result = mRaySceneQuery->execute(); RaySceneQueryResult::iterator mouseRayItr; Vector3 nodePos; for (mouseRayItr = result.begin(); mouseRayItr != result.end(); mouseRayItr++) { if (mouseRayItr->worldFragment) nodePos = mouseRayItr->worldFragment->singleIntersection; break; } // if } 3D desktop

Particle Effects mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject( mSceneMgr->createParticleSystem("sil", "Examples/sil")); Examples/sil { material Examples/Flare2 particle_width 75 particle_height 100 cull_each false quota 1000 billboard_type oriented_self // Area emitter emitter Point { angle 30 emission_rate 75 time_to_live 2 direction 0 1 0 velocity_min 250 velocity_max 300 colour_range_start 0 0 0 colour_range_end 1 1 1 } // Gravity affector LinearForce force_vector 0 -100 0 force_application add // Fader affector ColourFader red -0.5 green -0.5 blue -0.5 Demo_ParticleFX Media/particle/Example.particle

Particle Effects Particle system attributes quota material particle_width particle_height cull_each billboard_type billboard_origin billboard_rotation_type common_direction common_up_vector renderer sorted local_space point_rendering accurate_facing iteration_interval nonvisible_update_timeout Emitter attributes (point, box, clyinder, ellipsoid, hollow ellipsoid, ring) angle colour colour_range_start colour_range_end direction emission_rate position velocity velocity_min velocity_max time_to_live time_to_live_min time_to_live_max duration duration_min duration_max repeat_delay repeat_delay_min repeat_delay_max Affectors (LinearForce, ColorFader) Linear Force Affector ColourFader Affector ColourFader2 Affector Scaler Affector Rotator Affector ColourInterpolator Affector ColourImage Affector DeflectorPlane Affector DirectionRandomiser Affector

Fire and Smoke affector Rotator { rotation_range_start 0 rotation_range_end 360 rotation_speed_range_start -60 rotation_speed_range_end 200 } Demo_Smoke