Useful Tools for Making Video Games Part I An overview of Ogre.

Slides:



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

BY AHROORAN & CHRIS 3D Software. Blender Blender is a free open source software that is compatible with most operating systems for example GNU/Linux,
Game Programming 09 OGRE3D Lighting/shadow in Action
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
UFCFX5-15-3Mobile Device Development Particle Systems.
SE 313 – Computer Graphics Lecture 13: Lighting and Materials Practice Lecturer: Gazihan Alankuş 1.
Realistic Images Using Photon Mapping Under Supervision of : DR.Zaki Taha Project Team Ahmed IsmaielMahmoud Mostafa Assistants Amr GamgomSalma Hamdy.
Working with 3Ds Max. 3Ds Max.
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.
(conventional Cartesian reference system)
Overview Introduction Constructing a scene Rendering Frustum culling OpenGL Performer.
Game Engines Non-game specific technology Game: – Engine – Assets (models, animations, sounds, AI, and physics) – Code (AI, Scripting, etc.)
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.
Master Project Preparation Murtaza Hussain. Unity (also called Unity3D) is a cross-platform game engine with a built-in IDE developed by Unity Technologies.
Physically Based Animation and Modeling
WebGL for lazy dudes Janne Lautamäki 1 GLGE – Janne Lautamäki
David Runyon Lauren Stana Kelsey Vaughn Molly Shelestak.
Antigone Engine Kevin Kassing – Period
Matte Painting 2.5D Environment Milestone 3 March 2009 Øyvind Lien.
Virtual reality. Tasks 3D digital model from planes 3D digital model of existing objects Office work Field observations Solid modeling Photogrammetry.
 Develop PC-based FPS (first-person- shooter)  Model weapons and aliens  Animate weapons and aliens  Use simple game and character models  Object.
CSE 786 Game Presentation June 9, 2009 Game: “Little Robot’s Adventure” Team: OgreNoName Hiroshi Hayashi Bryan Linthicum Brett Kizer.
1 Lecture 2 Animation References: [1] Gregory Junker, Pro OGRE 3D Programming, Apress, 2006 [2] Ogre Tutorials – Ogre Wiki
Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures Vision, Modeling, Visualization Erlangen, Germany November 16-18,
Game Engine Programming. Game Engine Game Engine Rendering Engine (OGRE) Rendering Engine (OGRE) Physics Engine (Bullet) Physics Engine (Bullet) Input/Output.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
TERRAIN SET09115 Intro to Graphics Programming. Breakdown  Basics  What do we mean by terrain?  How terrain rendering works  Generating terrain 
Advanced Game Design Prof. Roger Crawfis Computer Science & Engineering The Ohio State University.
Microsoft Robotics Studio Simulation Kyle Johns Software Development Engineer Microsoft Corporation.
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…
Game Engine Jian-Liang Lin ( 林建良 )
Macromedia Studio 8 Step-by-Step MACROMEDIA FIREWORKS 8 Project 2: Experience Bank Logo.
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
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Useful Tools for Making Video Games Part II An overview of.
111 Introduction to OGRE3D Programming: Main Loop.
Room and Area Revit® Architecture C H A P T E R OBJECTIVES Understand and create Rooms and Room Volumes. Understand and create Gross Building and.
Game Design and Dev Ogre3D Overview
Point Sprites Course Information CVG: Programming 4 My Name: Mark Walsh Website: Recommended.
Game Programming 07 OGRE3D Mesh in Action 2010 년 2 학기 디지털콘텐츠전공.
Fundamentals of Level Editor Design and Implementation.
3D Engine II December 17, computer graphics -dpi.
Environment Design by Stefanie Kristiansson. Project Recap  Jungle scene  Frapped walk through video  Simplicity Low poly environment modeling Textures.
1 OGRE Programming Intermediate Tutorial. 2Contents 2 1.Select any object on the screen using the mouse 2.Restrict what is selectable.
CgFX Sébastien Dominé, NVIDIA. Overview What is CgFX? CgFX runtime Production pipeline with CgFX CgFX Tools set Demo.
Rendering an Animation James Martin High School Computer Multimedia and Animation Instructor: G. Patton From: CHAPTER 15 – 3DS MAX AND ITS APPLICATIONS.
Making Movies CS 445/645 Fall Assignment 4, part 2 n How is this done in hardware? –Interpolate reflection vectors across polygon surface –Compute.
Advanced Materials Using Shaders. Show demo advanced_ogre.
Game Engines Game: – Engine – Assets (models, animations, sounds, AI, and physics) – Code (Rules, AI, Scripting, etc.)
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
Unity 3D Rolfe Bozier 24-Apr-2017
Three-Dimensional Computer Animation
Games Development Practices 3D Modelling
Introduction to Computer Graphics with WebGL
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.
Rendering tools in 3DMax
Antigone Engine.
Introducing Blender.
Ogre Overview Lecture 3.
Ogre Overview.
The Graphics Rendering Pipeline
Working with 3Ds Max. 3Ds Max.
Blender API: Part 2: Game Engine
Game Engines Non-game specific technology Game: Engine
Computer Graphics Lecture 15.
Games Development 2 Tools Programming
Intermediate Tutorial
Unity Game Development
Presentation transcript:

Useful Tools for Making Video Games Part I An overview of Ogre

Sample Games  Thunder Wheels Thunder Wheels  Kong Kong  Masterplan Masterplan  Pacific Storm Pacific Storm  Trampoline Trampoline

Features  Graphics API independent 3D implementation  Platform independence  Material & Shader support Well known texture formats: png, jpeg, tga, bmp, dds, dxt  Mesh support: Milkshape3D, 3D Studio Max, Maya, Blender  Scene features BSP, Octree plugins, hierarchical scene graph  Special effects Particle systems, skyboxes, billboarding, HUD, cube mapping, bump mapping, post-processing effects  Easy integration with physics libraries ODE, Tokamak, Newton, OPCODE  Open source!

Core Objects

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  BSP map  Frame listeners

Terrain, sky, fog

CEGUI  Window, panel, scrollbar, listbox, button, static text  Media/gui/ogregui.layout CEGUI::Window* sheet = CEGUI::WindowManager::getSingleton().load WindowLayout( (CEGUI::utf8*)"ogregui.layout"); mGUISystem->setGUISheet(sheet);

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);

Animation  Crowd (instancing vs single entity) 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) ushortReal

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 }

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 velocity_min 250 velocity_max 300 colour_range_start colour_range_end } // Gravity affector LinearForce { force_vector force_application add } // Fader affector ColourFader { red -0.5 green -0.5 blue -0.5 }

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 }

Cel Shading vertex_program Ogre/CelShadingVP cg { source Example_CelShading.cg entry_point main_vp … default_params { … } material Examples/CelShading { … vertex_program_ref Ogre/CelShadingVP {} fragment_program_ref Ogre/CelShadingFP {} }

Cube Mapping  With Perlin noise to distort vertices void morningcubemap_fp ( float3 uv : TEXCOORD0, out float4 colour : COLOR, uniform samplerCUBE tex : register(s0) ) { colour = texCUBE(tex, uv); // blow out the light a bit colour *= 1.7; }

Bump Mapping + =

Reflections & Refractions // Noise texture_unit { // Perlin noise volume texture waves2.dds // min / mag filtering, no mip filtering linear linear none } // Reflection texture_unit { // Will be filled in at runtime texture Reflection tex_address_mode clamp // needed by ps.1.4 tex_coord_set 1 } // Refraction texture_unit { // Will be filled in at runtime texture Refraction tex_address_mode clamp // needed by ps.1.4 tex_coord_set 2 }

Reflections & Refractions

Grass Each grass section is 3 planes at 60 degrees to each other Normals point straight up to simulate correct lighting

Post-Processing Effects

Supporting tools (add-ons)  Blender, Autodesk 3DS, Milkshape3D, Softimage XSI importers/exporters  Particle editors, mesh viewers  GUI editors  Physics bindings  Scene exporters and lots more Add-on site

References 