SE Team 9 3D Flyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach Matt Cook.

Slides:



Advertisements
Similar presentations
Instruction: Use mouses left button. Use mouses left button. If mouse buttons dont work, use arrow keys of keyboard for slide show. If mouse buttons dont.
Advertisements

Instruction: Use mouses left button. Use mouses left button. If mouse buttons dont work, use arrow keys of keyboard for slide show. If mouse buttons dont.
Window Movie Maker Presented by Mr. Bran.
Jestek Web Site SITE DELUX Making Web Site Changes: Basic Tutorial
Events Chapter 7. Interactivity The real world is interactive User determines order of actions instead of programmer.
Events Chapter 7. Interactive Real world is interactive User determines order of actions instead of programmer.
Objectives Define photo editing software
2003: Featuring what is important for a new site: “Trust” certificate, featured mentions, etc.
Scripts and Flow Control. Scripts So far we have been entering commands directly into the command line But there is a better way Script files (and functions)
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Tutorial 4 – Introducing Algorithms, Pseudocode and.
1 3D modelling with OpenGL Brian Farrimond Robina Hetherington.
Game Design and Programming. Objectives Classify the games How games are design How games are implemented What are the main components of a game engine.
1 of 6 Parts of Your Notebook Below is a graphic overview of the different parts of a OneNote 2007 notebook. Microsoft ® OneNote ® 2007 notebooks are digital.
Computer-Based Animation. ● To animate something – to bring it to life ● Animation covers all changes that have visual effects – Positon (motion dynamic)
Window Movie Maker PRESENTED BY MARTIN SEBERA What is Windows Movie Maker?  Windows Movie Maker is a fun and easy to use video editing program that.
Exploring Microsoft Excel 2002 Chapter 8 Chapter 8 Automating Repetitive Tasks: Macros and Visual Basic for Applications By Robert T. Grauer Maryann Barber.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
UML Sequence Diagrams Reading: UML Distilled Ch. 4, by M. Fowler
Sequence Diagram Tutorial
Game Programming 04 The Game Loop and Real-time Simulation 2010 년 2 학기 디지털콘텐츠전공.
Chapter 5 Java Script And Forms JavaScript, Third Edition.
Designing 3D Interfaces Examples of 3D interfaces Pros and cons of 3D interfaces Overview of 3D software and hardware Four key design issues: system performance,
SE Team 9 3D Flyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach Matt Cook.
EEC-693/793 Applied Computer Vision with Depth Cameras Lecture 13 Wenbing Zhao
SE Team 9 3D Flyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach Matt Cook.
Interaction: Events and Event Handling
UML S EQUENCE D IAGRAMS 1 Dr. Hoang Huu Hanh, OST – Hue University hanh-at-hueuni.edu.vn.
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Tutorial 4 – Wage Calculator Application: Introducing.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Tutorial 27 - Phone Book Application Introducing Multimedia.
Game Programming 05 3D math for Games 2010 년 2 학기 디지털콘텐츠전공.
ES305 Virtual Tools in Engineering Design Cameras & Paths in Virtools Prof. Searleman
UML January 26, 2011 CSE 403, Winter 2011, Brun UML Sequence Diagrams.
Learning Unity. Getting Unity
111 Introduction to OGRE3D Programming: Main Loop.
Guide to Programming with Python Chapter Twelve Sound, Animation, and Program Development: The Astrocrash Game.
Project Deliverables CEN Engineering of Software 2.
Guide to Programming with Python Week 15 Chapter Twelve Sound, Animation, and Program Development: The Astrocrash Game.
Adobe Photoshop CS5 – Illustrated Unit A: Getting Started with Photoshop CS5.
Fundamentals of Level Editor Design and Implementation.
Graphics Final Project: TANK! Zak Andree Kevin Pang Ed Kim.
1 OGRE Programming Intermediate Tutorial: Volume Selection.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4: Events Programming with Alice and Java First Edition by John Lewis.
Geometric Objects and Transformations. Graphics Pipeline How can we render a triangle? High-level description: – Represent the 3D geometry – Transform.
Software 3 See Edmodo for images Group name: topcat Group code: i4qf9a 11/03/11.
FLASH!!!!!!!!!!!!!!!!!!!!!!!!! A TUTORIAL BY BRITTANY HESS AND MARGARET DENTON.
5 Event Handling Interactive Programming Suggested Reading Interaction: Events and Event Handling, Supplemental Text for CPSC 203 Distributed this term.
SE Team 9 GlobalFlyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach.
CSE 403 Lecture 8 UML Sequence Diagrams Reading: UML Distilled, Ch. 4, M. Fowler slides created by Marty Stepp
Virtual Pointing Device Using Stereo Camera The 6th International Conference on Applications and Principles of Information Science Jan , 2007, Kuala.
SE Team 9 GlobalFlyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach.
SE Team 9 GlobalFlyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach.
ICT/COMPUTING RULES Only use software allowed by the teacher
Unbuffered Input Games generally use unbuffered Input Ogre provides FrameListeners – Ogre's main infinite loop → startRendering – Also called the render.
Adobe Photoshop CS4 – Illustrated Unit A: Getting Started with Photoshop CS4.
REFERENCE: QUATERNIONS/ Ogre Transformations.
Game Maker Tutorials Introduction Clickball IntroductionClickball Where is it? Shooting Where is it?Shooting.
(Unit 17, Task 8a). Definition: Evaluate Bring together all information and review it to form a conclusion. Give evidence for each view or statement.
EEC-693/793 Applied Computer Vision with Depth Cameras
EEC-693/793 Applied Computer Vision with Depth Cameras
Ogre Overview Lecture 3.
UML UML Sequence Diagrams CSE 403
Chapter Lessons Understand the Macromedia Flash workspace
Ogre.
Understand Windows Forms Applications and Console-based Applications
EEC-693/793 Applied Computer Vision with Depth Cameras
Software Programming J. Holvikivi 2014.
Chapter 9: Sequence Diagrams Chapter 5 in Software Engineering Book
EEC-693/793 Applied Computer Vision with Depth Cameras
Chapter 9: Sequence Diagrams Chapter 5 in Software Engineering Book
Presentation transcript:

SE Team 9 3D Flyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach Matt Cook

Project Statement GlobalFlyer allows a player to fly a Wright brothers-style airplane in 3D space using the OGRE graphic rendering engine and the FMOD sound system.

Presentation Outline I.Introduction II.Review of web page (including goals) III.Overview of OGRE IV.GlobalFlyer software design V.Project plan evaluation VI.Conclusion

GlobalFlyer Web Site

Overview of OGRE

Common Function/Classes in Ogre root sceneManager sceneNode Entity Camera/viewPort light frameListener eventProcessor

root Constructor –Root(pluginFileName, configFileName, logFileName) Some Functions –SceneManager* getCurrentSceneManager(void) –void addFrameListener(FrameListener *) –void startRendering(void) –void shutdown(void) –RenderWindow* initialise(bool, “OGRE Render Window””)

sceneManager Constructor –SceneManager(“[nstance name”) Some Functions –Camera* createCamera(“name”) –Light* createLight(“name”) –SceneNode* getRootSceneNode(void) –SceneNode* createSceneNode(“name”) –Entity* createEntity(“name”) –void setAmbientLight(ColourValue) –void setWorldGeogmetry(“filename”) –void setSkyPlane(bool, Plane, “materialName”, scale,…) –void showBoundingBoxes(bool) –void setShadowTechnique(ShadowTechnique) –Viewport* getCurrentViewport(void)

sceneNode Constructor –SceneNode(SceneManager, “name”) »Only called by creator SceneManager Some Functions –void attachObject(MovableObject) –SceneNode* createChildSceneNode(Vector3, Quatrernion) –void setOrientation(w,x,y,z) –void setDirection(x,y,z, TransformSpace, Vector3) –void lookAt(Vector3, TransformSpace, Vector3) –void scale(Vector3) –void addChild(Node*) –void setListener(Listener*)

Entity Inherits from MovableObject –ShadowCaster –AnimableObject Constructor Entity(“Name”, MeshPtr) Some Functions –sceneManager _getManager(void) –void setCastShadows(bool) –sceneNode getParentSceneNode(void)

Camera/viewPort Camera(“Name”, SceneManager) –void setPosition(Vector3) –void lookAt(Vector3) –setFocalLength(Real) Viewport(Camera, RenderTarget, Real…) –RenderTarget* getTarget(void) –Camera* getCamera(void) –void setDimensions(real, real, real, real) –void setBackGroundColour(ColourValue) –void setShadowsEnabled(bool) –void setSkiesEnabled(bool)

Light Inherits from MovableObject Constructor –Light (“name”) someMethods –void setType(LightTypes) Spotlight, Point, Directional –void setDiffuseColour(real, real, real) –void setSpecularColour(real, real, real) –void setAttenuation(real, real, real, real)

frameListener Detailed Description Later Has 2 public Methods –Bool frameStarted(FrameEvent) –Bool FrameEnded(FrameEvent)

eventProcessor void startProcessingEvents(bool) bool frameStarted(FrameEvent) void addEventTarget(EventTarget*) void addMouseListener(MouseListener*) void addKeyListener(KeyListener*) void processKeyEvent(KeyEvent*)

Ogre FrameListeners Not just for kids anymore! Featuring code examples from –OgreWiki –OgreAPI

Root::startRendering Calls the frameStarted method on all registered FrameListeners Renders one frame Calls the frameEnded method on all registered FrameListeners –This continues until one of these methods returns False

FrameListener Class struct FrameEvent –timeSinceLastEvent –timeSinceLastFrame frameStarted frameEnded

Safety Notice Ogre chooses the order in which it executes frameStarted and frameEnded User cannot dictate this order Nesting FrameListener’s is one way to get around this

Example class TutorialFrameListener : public ExampleFrameListener { public: TutorialFrameListener( RenderWindow* win, Camera* cam, SceneManager *sceneMgr ) : ExampleFrameListener(win, cam, false, false) { } bool frameStarted(const FrameEvent &evt) //This function is where you place actions { return ExampleFrameListener::frameStarted( evt ); } bool frameEnded(const FrameEvent &evt) //This function is where you place actions { return ExampleFrameListener::frameEnded( evt ); } protected: bool mMouseDown; // Whether or not the left mouse button was down last frame Real mToggle; // The time left until next toggle Real mRotate; // The rotate constant Real mMove; // The movement constant SceneManager *mSceneMgr; // The current SceneManager SceneNode *mCamNode; // The SceneNode the camera is currently attached to };

There Can be only One! Code can be placed in either: –frameStarted –frameEnded But, there is only ONE render-cycle per frame –Changes don’t render between frameEnded and frameStarted So, if frameEnded has a movement that frameStarted negates, the movement will not show

Creating a FrameListener Example: : ExampleFrameListener(win, cam, false, false) //Window, Camera, buffered key input, buffered mouse input Example: // Create the FrameListener mFrameListener = new TutorialFrameListener(mWindow, mCamera, mSceneMgr); mRoot->addFrameListener(mFrameListener);

User Interaction Arrow keys Spacebar F1, F2, F3 Adding mouse support for camera rotation

GlobalFlyer software design

FrameStarted Sequence Diag

Project Plan

Physics Lighting Sky Testing Presentation 3 Tutorials

Tasks up to present

Task estimation vs. actual time Task Minutes

Upcoming Tasks

Conclusion Goals for next presentation –Make physics engine –Improve lighting –Fix sky

Who has Questions? -Images from texasbestgrok.mu.nu/images/GF2.jpg