CS 354R: Computer Game Technology
|
|
- Rosamond Shaw
- 6 years ago
- Views:
Transcription
1 CS 354R: Computer Game Technology Ogre Overview Fall 2017
2 Working with Ogre Ogre is a graphics engine not actually a game engine Things it has: Resource management Camera and animation support Input handling Rendering loop Things it doesn t have: Pre-existing game objects or object hierarchies Pre-existing game components Physics and simulation Networking support AI support 2
3 Resource Configurations resources.cfg contains directories of assets Scripts Meshes Textures GUI layouts Do not use environment variables Cannot search subdirectories 3
4 Resource and Scene Manager Resource Manager handles resource pool Index Look up Load Destroy Scene Manager handles scene geometry, objects and behaviors Spatial partitioning Culling Rendering 4
5 Initialize Configuration mroot = new Ogre::Root(mPluginsCfg); // Load resource paths from config file Ogre::ConfigFile cf; cf.load(mresourcescfg); // Parse all sections & settings in the file Ogre::ConfigFile::SectionIterator seci = cf.getsectioniterator(); Ogre::String secname, typename, archname; while (seci.hasmoreelements()) { secname = seci.peeknextkey(); Ogre::ConfigFile::SettingsMultiMap *settings = seci.getnext(); Ogre::ConfigFile::SettingsMultiMap::iterator i; for (i = settings->begin(); i!= settings->end(); ++i) { typename = i->first; archname = i->second; Ogre::ResourceGroupManager::getSingleton(). addresourcelocation(archname, typename, secname); // Show the configuration dialog and initialize the system if((mroot->restoreconfig() mroot->showconfigdialog())) { //If initialized, create a render window mwindow = mroot->initialise(true, Demo App"); else { return false; 5
6 Initialize Resource Mgr and Scene // Set default mipmap level (note: some APIs ignore this) Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5); // initialise all resource groups Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); // Create the SceneManager, in this case a generic one mscenemgr = mroot->createscenemanager("defaultscenemanager"); // Create a scene mscenemgr->setskybox(true, "Examples/MorningSkyBox", 5000, false); PlayingField* bcourt = new PlayingField(mSceneMgr); ball = new Ball(mSceneMgr); bcourt->addchild(ball->getnode()); ball->setplayingfield(bcourt); 6
7 What else do we need? 7
8 Camera Cameras have: Position LookAt Near plane Far plane Aspect ratio Cameras render out to a portion of the screen using a viewport (Silicon Graphics) 8
9 Setting up a Camera // Create the camera mcamera = mscenemgr->createcamera("playercam"); // Position it near front of the room mcamera->setposition(ogre::vector3(0.0f, 0.0f, 0.4f * bcourt->getlength())); // Look at the origin mcamera->lookat(ogre::vector3(0,0,0)); mcamera->setnearclipdistance(5); // create a default camera controller mcameraman = new OgreBites::SdkCameraMan(mCamera); // Create one viewport, entire window Ogre::Viewport* vp = mwindow->addviewport(mcamera); vp->setbackgroundcolour(ogre::colourvalue(0,0,0)); // Alter the camera aspect ratio to match the viewport mcamera->setaspectratio( Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight())); 9
10 Camera vs Camera Manager Cameras are tools for looking into the scene Provide mathematical information to OpenGL for drawing the scene Camera managers are tools for controlling camera position and orientation Handle mouse and keyboard input to camera Usually allow for first-person and orbital camera movements SdkCameraMan is part of the OgreBites sample framework Not natively available on the lab machines Other open source frameworks available Also possible to create your own! 10
11 Mouse and Keyboard Listeners OIS (Object-Oriented Input System) handles mouse and keyboard events Listener for each mouse, keyboard, joystick etc Listeners are protected functions Listeners take events as parameters One listener per device for performance reasons 11
12 Mouse and Keyboard Input #include <OISEvents.h> #include <OISInputManager.h> #include <OISKeyboard.h> #include <OISMouse.h> #include <OgreRenderWindow.h> #include <SdkTrays.h> #include <SdkCameraMan.h> class ControlListener : public OIS::KeyListener, public OIS::MouseListener { protected: OIS::InputManager* inputmanager; OIS::Mouse* mouse; OIS::Keyboard* keyboard; Ogre::RenderWindow* window; Ogre::Camera* camera; bool mshutdown; 12
13 Mouse and Keyboard Input cont d protected: // OIS::KeyListener virtual bool keypressed( const OIS::KeyEvent &arg ); virtual bool keyreleased( const OIS::KeyEvent &arg ); // OIS::MouseListener virtual bool mousemoved( const OIS::MouseEvent &arg ); virtual bool mousepressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id ); virtual bool mousereleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id ); public: BaseApplication(Ogre::RenderWindow* window); ~BaseApplication(); ; 13
14 Using Callbacks Events associated with a listener Buffer of events dispatched as callbacks Allow the programmer to react to changes in the system 14
15 Buffered Input Callbacks bool BaseApplication::keyPressed( const OIS::KeyEvent &arg ) { if (arg.key == OIS::KC_ESCAPE) { mshutdown = true; return true; bool BaseApplication::keyReleased(const OIS::KeyEvent &arg) { return true; bool BaseApplication::mouseMoved(const OIS::MouseEvent &arg) { return true; bool BaseApplication::mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id) { return true; bool BaseApplication::mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id) { return true; 15
16 Using Callbacks What if other frameworks need to know about events? Example: Camera manager should change camera position based on mouse or keyboard input Needs a method that can take events from one framework and use it in its own framework Controller/GUI manager uses inject calls to take device input from callback and pass it back to controller/ GUI manager 16
17 Buffered Input Callbacks bool ControlListener::keyReleased( const OIS::KeyEvent &arg ) { cameramanager->injectkeyup(arg); return true; bool ControlListener::mouseMoved( const OIS::MouseEvent &arg ) { cameramanager->injectmousemove(arg); return true; bool ControlListener::mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id ) { cameramanager->injectmousedown(arg, id); return true; bool ControlListener::mouseReleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id ) { cameramanager->injectmouseup(arg, id); return true; 17
18 Game Objects #include <Ogre.h> #include "PlayingField.h class Ball { protected: Ogre::SceneNode* rootnode; Ogre::Real bradius; Ogre::Vector3 bdirection; Ogre::Real bspeed; PlayingField* grounds; public: Ball(Ogre::SceneManager* scnmgr); ~Ball(); void move(const Ogre::FrameEvent& evt); Ogre::SceneNode* getnode() { return rootnode; void setplayingfield(playingfield * pf) { grounds = pf; ; 18
19 A Game Object #include <OgreEntity.h> #include <OgreSceneManager.h> #include "Ball.h Ball::Ball(Ogre::SceneManager* scnmgr) { Ogre::Entity* ball = scnmgr->createentity("sphere", "sphere.mesh"); ball->setmaterialname("ballcolor/cubemap"); ball->setcastshadows(true); rootnode = scnmgr->createscenenode("ball"); rootnode->attachobject(ball); rootnode->scale(0.1f,0.1f,0.1f); bradius = 10.0f; bdirection = Ogre::Vector3(1.0f, 2.0f, 3.0f); bdirection.normalise(); bspeed = 250.0f; void Ball::move(const Ogre::FrameEvent& evt) { Ogre::Vector3 bposition = rootnode->getposition(); if (bposition.y < -grounds->getheight()/2.0f + bradius && bdirection.y < 0.0f) bdirection.y = -bdirection.y; if (bposition.y > grounds->getheight()/2.0f - bradius && bdirection.y > 0.0f) bdirection.y = -bdirection.y; if (bposition.z < -grounds->getlength()/2.0f + bradius && bdirection.z < 0.0f) bdirection.z = -bdirection.z; if (bposition.z > grounds->getlength()/2.0f - bradius && bdirection.z > 0.0f) bdirection.z = -bdirection.z; if (bposition.x < -grounds->getwidth()/2.0f + bradius && bdirection.x < 0.0f) bdirection.x = -bdirection.x; if (bposition.x > grounds->getwidth()/2.0f - bradius && bdirection.x > 0.0f) bdirection.x = -bdirection.x; rootnode->translate(bspeed * evt.timesincelastframe * bdirection); 19
20 What s Missing? 20
21 Frame Listener Listener associated with frame events framestarted framerenderingqueued frameended Frame callbacks return true until rendering terminates Possible to register multiple FrameListeners framerenderingqueued called after rendering has been queued for GPU Good use of CPU cycles for changes in next frame 21
22 Rendering Loop class MyFrameListener : public Ogre::FrameListener { // Rendering loop mroot->startrendering(); bool MyFrameListener::frameRenderingQueued(const Ogre::FrameEvent& evt) { if(mwindow->isclosed()) return false; mcontrols->update(); if (mcontrols->exit()) return false; mgui->framerenderingqueued(evt); if (!mgui->isdialogvisible()) { // if dialog isn't up, then update the scene mcameraman->framerenderingqueued(evt); // Move the ball ball->move(evt); return true; 22
23 Unregistering OIS Should unregister OIS when the game program finishes How can we do this? WindowEventListener callbacks windowresized callback tracks window (screen) size windowclosed callback tracks window closing destroy OIS objects for window that created objects 23
24 Window Event Listener //Unattach OIS before window shutdown (very important under Linux) void MyWindowListener::windowClosed(Ogre::RenderWindow* rw) { //Only close for window that created OIS (the main window in these demos) if (rw == mwindow) { if (minputmanager) { minputmanager->destroyinputobject(mmouse); minputmanager->destroyinputobject(mkeyboard); OIS::InputManager::destroyInputSystem(mInputManager); minputmanager = 0; 24
CS 378: Computer Game Technology
CS 378: Computer Game Technology Collision Detection and More Physics Spring 2012 University of Texas at Austin CS 378 Game Technology Don Fussell Initialize Configuration mroot = new Ogre::Root(mPluginsCfg);
More informationTHE MATERIALS OF OTHER! LATE SUBMISSION WILL BE DEDUCTED BY
3D Game Programming: Programming Assignment One YOU WILL RECEIVE ZERO POINTS IF YOU COPY and PASTE THE MATERIALS OF OTHER! LATE SUBMISSION WILL BE DEDUCTED BY 30 points a day. In this assignment, you must
More informationUser Interaction. User Interaction. Input devices. Input devices. Input devices GUIs and GUI design Event-driven programming 3D interaction
User Interaction User Interaction Input devices GUIs and GUI design Event-driven programming 3D interaction CS 465 lecture 19 2003 Steve Marschner 1 2003 Steve Marschner 2 Input devices Input devices Discrete
More informationThe Application Stage. The Game Loop, Resource Management and Renderer Design
1 The Application Stage The Game Loop, Resource Management and Renderer Design Application Stage Responsibilities 2 Set up the rendering pipeline Resource Management 3D meshes Textures etc. Prepare data
More informationPrinciples of Computer Game Design and Implementation. Lecture 5
Principles of Computer Game Design and Implementation Lecture 5 We already knew Introduction to this module History of video High-level information of a game Designing information for a game Execution
More informationCISC 1600 Lecture 2.2 Interactivity&animation in Processing
CISC 1600 Lecture 2.2 Interactivity&animation in Processing Topics: Interactivity: keyboard and mouse variables Interactivity: keyboard and mouse listeners Animation: vector graphics Animation: bitmap
More information3. Creating a minimal ogre application, with explanations of each component don t skip the descriptions you ll regret it later!
Jason s Mostly-Useless Ogre-view Ogre 1.10 Cheat-Sheet Last Updated: 10/5/2017 I m putting this Ogre-view (aka Overview; reference: Trenton Daugherty) together in the hopes that tackling Ogre in ETGG3801/3802
More informationCISC 1600 Lecture 2.2 Interactivity&animation in Processing
CISC 1600 Lecture 2.2 Interactivity&animation in Processing Topics: Interactivity: keyboard and mouse variables Interactivity: keyboard and mouse listeners Animation: vector graphics Animation: bitmap
More informationComputer Graphics. Interaction
Computer Graphics Interaction Jordi Linares i Pellicer Escola Politècnica Superior d Alcoi Dep. de Sistemes Informàtics i Computació jlinares@dsic.upv.es http://www.dsic.upv.es/~jlinares processing allows
More informationUI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI)
UI Elements 1 2D Sprites If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) Change Sprite Mode based on how many images are contained in your texture If you are
More informationQt in Education. The Graphics View Canvas
Qt in Education The Graphics View Canvas. 2012 Digia Plc. The enclosed Qt Materials are provided under the Creative Commons Attribution-Share Alike 2.5 License Agreement. The full license text is available
More informationA B C D CS105 03a Interaction
Interaction Function Definition Events Built-in Variables CS105 03a Interaction 1 Which image is drawn by this code? strokeweight(10); stroke(0, 255, 0); // green line(99, 0, 0, 99); stroke(200, 0, 200);
More informationWebGL Seminar: O3D. Alexander Lokhman Tampere University of Technology
WebGL Seminar: O3D Alexander Lokhman Tampere University of Technology What is O3D? O3D is an open source JavaScript API for creating rich, interactive 3D applications in the browser Created by Google and
More informationGame Programming with. presented by Nathan Baur
Game Programming with presented by Nathan Baur What is libgdx? Free, open source cross-platform game library Supports Desktop, Android, HTML5, and experimental ios support available with MonoTouch license
More informationCSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation
CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013 Announcements Project 2 due Friday, October 11
More informationIntroduction to Unreal Engine Blueprints for Beginners. By Chaven R Yenketswamy
Introduction to Unreal Engine Blueprints for Beginners By Chaven R Yenketswamy Introduction My first two tutorials covered creating and painting 3D objects for inclusion in your Unreal Project. In this
More informationCS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions. The Midterm Exam was given in class on Thursday, October 23, 2008.
CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions The Midterm Exam was given in class on Thursday, October 23, 2008. 1. [4 pts] Drawing Where? Your instructor says that objects should always be
More informationthe gamedesigninitiative at cornell university Lecture 14 2D Sprite Graphics
Lecture 14 Drawing Images Graphics Lectures SpriteBatch interface Coordinates and Transforms Drawing Perspective Camera Projections Drawing Primitives Color and Textures Polygons 2 Drawing Images Graphics
More informationIntroduction to OpenGL. CS 4620 Balazs Kovacs, 2014 Daniel Schroeder, 2013 Pramook Khungurn, 2012
Introduction to OpenGL CS 4620 Balazs Kovacs, 2014 Daniel Schroeder, 2013 Pramook Khungurn, 2012 Introduction Show how to produce graphics using OpenGL Introduce our framework for OpenGL programming OpenGL
More informationLOD and Occlusion Christian Miller CS Fall 2011
LOD and Occlusion Christian Miller CS 354 - Fall 2011 Problem You want to render an enormous island covered in dense vegetation in realtime [Crysis] Scene complexity Many billions of triangles Many gigabytes
More informationViewport 2.0 API Porting Guide for Locators
Viewport 2.0 API Porting Guide for Locators Introduction This document analyzes the choices for porting plug-in locators (MPxLocatorNode) to Viewport 2.0 mostly based on the following factors. Portability:
More informationGraphics and Interaction Rendering pipeline & object modelling
433-324 Graphics and Interaction Rendering pipeline & object modelling Department of Computer Science and Software Engineering The Lecture outline Introduction to Modelling Polygonal geometry The rendering
More informationUser Guide. Vertex Texture Fetch Water
User Guide Vertex Texture Fetch Water Introduction What Is the Vertex Texture Fetch Water Sample? The sample demonstrates a technique to render small to medium bodies of water using Vertex Texture Fetch
More informationCSE 167: Lecture #4: Vertex Transformation. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012
CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Project 2 due Friday, October 12
More informationEvent Driven Programming
Event Driven Programming 1. Objectives... 2 2. Definitions... 2 3. Event-Driven Style of Programming... 2 4. Event Polling Model... 3 5. Java's Event Delegation Model... 5 6. How to Implement an Event
More informationThe Shadow Rendering Technique Based on Local Cubemaps
The Shadow Rendering Technique Based on Local Cubemaps Content 1. Importing the project package from the Asset Store 2. Building the project for Android platform 3. How does it work? 4. Runtime shadows
More informationGoogle SketchUp/Unity Tutorial Basics
Software used: Google SketchUp Unity Visual Studio Google SketchUp/Unity Tutorial Basics 1) In Google SketchUp, select and delete the man to create a blank scene. 2) Select the Lines tool and draw a square
More informationOptimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June
Optimizing and Profiling Unity Games for Mobile Platforms Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June 1 Agenda Introduction ARM and the presenter Preliminary knowledge
More informationCOMP3421 Computer Graphics
COMP3421 Computer Graphics Introduction Angela Finlayson Email: angf@cse.unsw.edu.au Computer Graphics Algorithms to automatically render images from models. Light Camera hi mum Objects model image Computer
More informationSpatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology
Spatial Data Structures and Speed-Up Techniques Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial data structures What is it? Data structure that organizes
More informationCISC 1600, Lab 2.2: Interactivity in Processing
CISC 1600, Lab 2.2: Interactivity in Processing Prof Michael Mandel 1 Getting set up For this lab, we will again be using Sketchpad, a site for building processing sketches online using processing.js.
More informationDemo Scene Quick Start
Demo Scene Quick Start 1. Import the Easy Input package into a new project. 2. Open the Sample scene. Assets\ootii\EasyInput\Demos\Scenes\Sample 3. Select the Input Source GameObject and press Reset Input
More informationPrinciples of Computer Game Design and Implementation. Lecture 11
Principles of Computer Game Design and Implementation Lecture 11 We already learned Vector operations Sum Subtraction Dot product Cross product A few others about jmonkey, eg. User input, camera, etc 2
More informationJava: Graphical User Interfaces (GUI)
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, and Bertrand Meyer Java: Graphical User Interfaces (GUI) With material from Christoph Angerer The essence of the Java Graphics API Application
More informationCreating the Tilt Game with Blender 2.49b
Creating the Tilt Game with Blender 2.49b Create a tilting platform. Start a new blend. Delete the default cube right click to select then press X and choose Erase Selected Object. Switch to Top view (NUM
More informationBuilding a Game with SceneKit
Graphics and Games #WWDC14 Building a Game with SceneKit Session 610 Amaury Balliet Software Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written
More informationGodot engine Documentation
Godot engine Documentation Release 1.1 authorname Apr 22, 2017 Contents i ii Godot engine Documentation, Release 1.1 Introduction Welcome to the Godot Engine documentation center. The aim of these pages
More informationGraphical User Interfaces (GUIs)
CMSC 132: Object-Oriented Programming II Graphical User Interfaces (GUIs) Department of Computer Science University of Maryland, College Park Model-View-Controller (MVC) Model for GUI programming (Xerox
More informationRendering Objects. Need to transform all geometry then
Intro to OpenGL Rendering Objects Object has internal geometry (Model) Object relative to other objects (World) Object relative to camera (View) Object relative to screen (Projection) Need to transform
More informationthe gamedesigninitiative at cornell university Lecture 6 Scene Graphs
Lecture 6 Structure of a CUGL Application Main Application Scene Scene Models Root Models Root 2 Structure of a CUGL Application Main App Configuration Application Memory policy (future lecture) Scene
More informationFinal Project. Houdini
Final Project Houdini Houdini (Apprentice Edition) Download from https://www.sidefx.com/download/ install run etc need to create account Loading OBJ Loading OBJ hover mouse and hit tab Loading OBJ Loading
More informationScene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development
Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Chap. 5 Scene Management Overview Scene Management vs Rendering This chapter is about rendering
More informationCreating and Triggering Animations
Creating and Triggering Animations 1. Download the zip file containing BraidGraphics and unzip. 2. Create a new Unity project names TestAnimation and set the 2D option. 3. Create the following folders
More informationUnity Game Development
Unity Game Development 1. Introduction to Unity Getting to Know the Unity Editor The Project Dialog The Unity Interface The Project View The Hierarchy View The Inspector View The Scene View The Game View
More informationReal-Time Graphics Architecture
Real-Time Graphics Architecture Kurt Akeley Pat Hanrahan http://www.graphics.stanford.edu/courses/cs448a-01-fall Geometry Outline Vertex and primitive operations System examples emphasis on clipping Primitive
More informationCS 4620 Program 3: Pipeline
CS 4620 Program 3: Pipeline out: Wednesday 14 October 2009 due: Friday 30 October 2009 1 Introduction In this assignment, you will implement several types of shading in a simple software graphics pipeline.
More informationProfiling and Debugging Games on Mobile Platforms
Profiling and Debugging Games on Mobile Platforms Lorenzo Dal Col Senior Software Engineer, Graphics Tools Gamelab 2013, Barcelona 26 th June 2013 Agenda Introduction to Performance Analysis with ARM DS-5
More informationArt-based Rendering with Graftals
: Interactive Computer Graphics Art-based Rendering with Graftals 1 Introduction Due: 3/13/10, 11:59 PM Between Ray in 123 and Photon Mapping that you just did, you ve now had a good deal of exposure to
More informationBlender - Python API #1
Blender - Python API #1 Serdar ARITAN Department of Computer Graphics Hacettepe University, Ankara, Turkey 1 Blender / Python API Blender is a free 3D graphics package 3D object modelling Materials and
More informationWorking with Metal Overview
Graphics and Games #WWDC14 Working with Metal Overview Session 603 Jeremy Sandmel GPU Software 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationPERFORMANCE OPTIMIZATIONS FOR AUTOMOTIVE SOFTWARE
April 4-7, 2016 Silicon Valley PERFORMANCE OPTIMIZATIONS FOR AUTOMOTIVE SOFTWARE Pradeep Chandrahasshenoy, Automotive Solutions Architect, NVIDIA Stefan Schoenefeld, ProViz DevTech, NVIDIA 4 th April 2016
More informationCCSI 3161 Project Flight Simulator
1/11 CCSI 3161 Project Flight Simulator Objectives: To develop a significant OpenGL animation application. Due date: Dec 3 rd, Dec 1st, 11:59pm. No late submission will be accepted since the grades need
More information3D Rendering Pipeline
3D Rendering Pipeline Reference: Real-Time Rendering 3 rd Edition Chapters 2 4 OpenGL SuperBible 6 th Edition Overview Rendering Pipeline Modern CG Inside a Desktop Architecture Shaders Tool Stage Asset
More informationWhat s New in Emulate3D. New Tag Grid
What s New in 2016 Emulate3D New Tag Grid The TagBrowser Tag Grid now appears in the main Demo3D properties pane, making it easier to see the tags bound to each component in the model, and to observe component
More informationif(input.getkey(keycode.rightarrow)) { this.transform.rotate(vector3.forward * 1);
1 Super Rubber Ball Step 1. Download and open the SuperRubberBall project from the website. Open the main scene. In it you will find a game track and a sphere as shown in Figure 1.1. The sphere has a Rigidbody
More informationEDAF80 Introduction to Computer Graphics. Seminar 1. Hierarchical Transformation. Michael Doggett. Some slides by Carl Johan Gribel,
EDAF80 Introduction to Computer Graphics Seminar 1 Hierarchical Transformation Michael Doggett 2017 Some slides by Carl Johan Gribel, 2010-13 Today Hierarchical Transformation and Scene Graphs TRS - Translation,
More informationEasy Decal Version Easy Decal. Operation Manual. &u - Assets
Easy Decal Operation Manual 1 All information provided in this document is subject to change without notice and does not represent a commitment on the part of &U ASSETS. The software described by this
More informationCSE 167: Introduction to Computer Graphics Lecture #9: Visibility. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018
CSE 167: Introduction to Computer Graphics Lecture #9: Visibility Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 Announcements Midterm Scores are on TritonEd Exams to be
More informationWidgets. Widgets Widget Toolkits. 2.3 Widgets 1
Widgets Widgets Widget Toolkits 2.3 Widgets 1 User Interface Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, drop-down menus, spinners, file dialog boxes,
More informationiplots extreme Next-generation interactive graphics for analysis of large data Simon Urbanek AT&T Labs Statistics Research
iplots extreme Next-generation interactive graphics for analysis of large data Simon Urbanek AT&T Labs Statistics Research Overview About interactive graphics iplots: next generation - why and how? New
More informationExploring Processing
Exploring Processing What is Processing? Easy-to-use programming environment Let s you edit, run, save, share all in one application Designed to support interactive, visual applications Something we ve
More informationCMSC427 Interac/ve programs in Processing: Polyline editor
CMSC427 Interac/ve programs in Processing: Polyline editor Interactive programming Example: PaperSnowFlake hbp://rectangleworld.com/papersnowflake/ Big ideas today Event driven programming Object list
More informationJohn Hsu Nate Koenig ROSCon 2012
John Hsu Nate Koenig ROSCon 2012 Outline What is Gazebo, and why should you use it Overview and architecture Environment modeling Robot modeling Interfaces Getting Help Simulation for Robots Towards accurate
More informationEE 4702 GPU Programming
fr 1 Final Exam Review When / Where EE 4702 GPU Programming fr 1 Tuesday, 4 December 2018, 12:30-14:30 (12:30 PM - 2:30 PM) CST Room 226 Tureaud Hall (Here) Conditions Closed Book, Closed Notes Bring one
More informationSpeeding up your game
Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers (adapted by Marc Levoy from a lecture by Tomas Möller, using material
More informationCS4621/5621 Fall Computer Graphics Practicum Intro to OpenGL/GLSL
CS4621/5621 Fall 2015 Computer Graphics Practicum Intro to OpenGL/GLSL Professor: Kavita Bala Instructor: Nicolas Savva with slides from Balazs Kovacs, Eston Schweickart, Daniel Schroeder, Jiang Huang
More informationToday. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing
Today Rendering Algorithms Course overview Organization Introduction to ray tracing Spring 2009 Matthias Zwicker Universität Bern Rendering algorithms Problem statement Given computer representation of
More information360 YouTube videos. Lab 04. Renato Mainetti Jacopo Essenziale.
360 YouTube videos Renato Mainetti Jacopo Essenziale renato.mainetti@unimi.it jacopo.essenziale@unimi.it Lab 04 today is a good day to create some 360 videos What we have learned until now? Several techniques
More information2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT
COMP27112 Computer Graphics and Image Processing 2: Introducing image synthesis Toby.Howard@manchester.ac.uk 1 Introduction In these notes we ll cover: Some orientation how did we get here? Graphics system
More informationCS Computer Graphics: Intro to OpenGL
CS 543 - Computer Graphics: Intro to OpenGL by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) OpenGL Basics Last time: What is Computer Graphics? What is a graphics library What to expect
More informationCS Computer Graphics: Intro to OpenGL
CS 543 - Computer Graphics: Intro to OpenGL by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) OpenGL Basics Last time: What is Computer Graphics? What is a graphics library What to expect
More informationVive Stereo Rendering Toolkit Developer s Guide
Vive Stereo Rendering Toolkit Developer s Guide vivesoftware@htc.com Introduction Vive Stereo Rendering Toolkit provides drag-and-drop components for developers to create stereoscopic rendering effects
More informationPick a number. Conditionals. Boolean Logic Relational Expressions Logical Operators Numerical Representation Binary. CS Conditionals 1
Conditionals Boolean Logic Relational Expressions Logical Operators Numerical Representation Binary CS105 04 Conditionals 1 Pick a number CS105 04 Conditionals 2 Boolean Expressions An expression that
More informationAnimation Essentially a question of flipping between many still images, fast enough
33(70) Information Coding / Computer Graphics, ISY, LiTH Animation Essentially a question of flipping between many still images, fast enough 33(70) Animation as a topic Page flipping, double-buffering
More informationCS148: Maya Lecture. October 9th, 2017 David Hyde
CS148: Maya Lecture October 9th, 2017 David Hyde Outline Rendering: A Bird s Eye View 3D Art Tools Maya Outline Demo Rendering: A Bird s Eye View AND WHERE DOES CS148 FIT IN? Image: CS148 2015 Scanline
More informationWidgets. Widgets Widget Toolkits. User Interface Widget
Widgets Widgets Widget Toolkits 2.3 Widgets 1 User Interface Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, drop-down menus, spinners, file dialog boxes,
More informationToday. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing
Today Rendering Algorithms Course overview Organization Introduction to ray tracing Spring 2010 Matthias Zwicker Universität Bern Rendering algorithms Problem statement Given computer representation of
More informationModel-view-controller View hierarchy Observer
-view-controller hierarchy Fall 2004 6831 UI Design and Implementation 1 Fall 2004 6831 UI Design and Implementation 2!"# Separation of responsibilities : application state Maintains application state
More informationCSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling
CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements Project 3 due Monday Nov 13 th at
More informationCISC 1600, Lab 3.2: Interactivity in Processing
CISC 1600, Lab 3.2: Interactivity in Processing Prof Michael Mandel 1 Getting set up For this lab, we will be using OpenProcessing, a site for building processing sketches online using processing.js. 1.1.
More informationCSE 167: Introduction to Computer Graphics Lecture 11: Scene Graph 2. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013
CSE 167: Introduction to Computer Graphics Lecture 11: Scene Graph 2 Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013 Announcements Homework project #5 due Nov. 8 th at 1:30pm
More informationLecture 08: Hierarchical Modeling with Scene Graphs
Lecture 08: Hierarchical Modeling with Scene Graphs CSE 40166 Computer Graphics Peter Bui University of Notre Dame, IN, USA November 2, 2010 Symbols and Instances Objects as Symbols Model world as a collection
More informationGame Design Unity Workshop
Game Design Unity Workshop Activity 2 Goals: - Creation of small world - Creation of character - Scripting of player movement and camera following Load up unity Build Object: Mini World and basic Chase
More informationExample Programs. COSC 3461 User Interfaces. GUI Program Organization. Outline. DemoHelloWorld.java DemoHelloWorld2.java DemoSwing.
COSC User Interfaces Module 3 Sequential vs. Event-driven Programming Example Programs DemoLargestConsole.java DemoLargestGUI.java Demo programs will be available on the course web page. GUI Program Organization
More informationGame Architecture Revisited
Lecture 8 Game Architecture Revisited Recall: The Game Loop 60 times/s = 16.7 ms Update Draw Receive player input Process player actions Process NPC actions Interactions (e.g. physics) Cull non-visible
More informationIntroduction to 2D Graphics
Introduction to 2D Graphics Using OpenGL 1/32 Why Learn About OpenGL? A well-known industry standard for real-time 2D and 3D computer graphics Available on most platforms Desktop operating systems, mobile
More informationLewis Weaver. Nell Waliczek. Software Engineering Lead. Program github.
Nell Waliczek Software Engineering Lead Lewis Weaver Program Manager @NellWaliczek github.com/nellwaliczek @lew_weav github.com/leweaver Mixed Reality on the web using WebVR Available October 17 th WebVR
More informationGraphics Programming. Computer Graphics, VT 2016 Lecture 2, Chapter 2. Fredrik Nysjö Centre for Image analysis Uppsala University
Graphics Programming Computer Graphics, VT 2016 Lecture 2, Chapter 2 Fredrik Nysjö Centre for Image analysis Uppsala University Graphics programming Typically deals with How to define a 3D scene with a
More informationMany rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.
1 2 Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. Crowd rendering in large environments presents a number of challenges,
More informationCS 251 Intermediate Programming GUIs: Event Listeners
CS 251 Intermediate Programming GUIs: Event Listeners Brooke Chenoweth University of New Mexico Fall 2017 What is an Event Listener? A small class that implements a particular listener interface. Listener
More informationCS 4204 Computer Graphics
CS 4204 Computer Graphics GLUT (Continue) More Interactions Yong Cao Virginia Tech References: Interactive Computer Graphics, Fourth Edition, Ed Angle Orthographical Projection Synthetic camera model View
More informationAbout the FBX Exporter package
About the FBX Exporter package Version : 1.3.0f1 The FBX Exporter package provides round-trip workflows between Unity and 3D modeling software. Use this workflow to send geometry, Lights, Cameras, and
More informationDr. House Developer Documentation
Dr. House Developer Documentation This application is a basic graphical user interface framework for experiments on architectural meshes. The meshes are displayed in the form of wires or polygons inside
More informationHardware Accelerated Graphics for High Performance JavaFX Mobile Applications
Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications Pavel Petroshenko, Sun Microsystems Jan Valenta, Sun Microsystems Jerry Evans, Sun Microsystems Goal of this Session Demonstrate
More informationOpenGL refresher. Advanced Computer Graphics 2012
Advanced Computer Graphics 2012 What you will see today Outline General OpenGL introduction Setting up: GLUT and GLEW Elementary rendering Transformations in OpenGL Texture mapping Programmable shading
More informationCHAPTER 1 Graphics Systems and Models 3
?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........
More informationEE , GPU Programming
EE 4702-1, GPU Programming When / Where Here (1218 Patrick F. Taylor Hall), MWF 11:30-12:20 Fall 2017 http://www.ece.lsu.edu/koppel/gpup/ Offered By David M. Koppelman Room 3316R Patrick F. Taylor Hall
More informationChapter 1- The Blender Interface
Chapter 1- The Blender Interface The Blender Screen Years ago, when I first looked at Blender and read some tutorials I thought that this looked easy and made sense. After taking the program for a test
More informationGame Design Report appendices
Lokaverkefni 2017 Háskólinn í Reykjavík SUPER-COLLOSAL TITAN WARFARE Game Design Report appendices Hermann Ingi Ragnarsson Jón Böðvarsson Örn Orri Ólafsson Appendix A - Assets & sounds 3D Assets Following
More informationCSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling
CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 4 due tomorrow Project
More information