Andy Wilson - GLUT and GLVU - 9/99 - Slide 1 GLUT and GLVU Andy Wilson September 22, 1999.

Slides:



Advertisements
Similar presentations
Computer Graphics CSCE 441
Advertisements

CS0004: Introduction to Programming Visual Studio 2010 and Controls.
1 Computer Graphics Chapter 2 Input Devices. RM[2]-2 Input Devices Logical Input Devices  Categorized based on functional characteristics.  Each device.
CS 4731 Lecture 2: Intro to 2D, 3D, OpenGL and GLUT (Part I) Emmanuel Agu.
What is OpenGL? Low level 2D and 3D Graphics Library Competitor to Direct3D (the rendering part of DirectX) Used in: CAD, virtual reality, scientific.
1 3D modelling with OpenGL Brian Farrimond Robina Hetherington.
Painterly Rendering CMPS Assignment 2. OpenGL OpenGL is a cross-language, cross- platform specification defining and API for 2D and 3D graphics.
InteractionHofstra University1 Graphics Programming Input and Interaction.
Based on slides created by Edward Angel
1 Introduction to the Visual Studio.NET IDE Powerpoint slides modified from Deitel & Deitel.
OpenGL Help Session CS248 Fall 2008 Derek Chan. OpenGL needs a windowing system OpenGL by itself does not talk to the windowing system/manager by itself.
CS 480/680 Computer Graphics Programming with Open GL Part 8: Working with Callbacks Dr. Frederick C Harris, Jr. Fall 2011.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Programming in OpenGL Ryan Holmes CSE 570 February 12 th, 2003.
CAP4730: Computational Structures in Computer Graphics Introduction to OpenGL.
INTRO TO COMPUTER GRAPHICS TEXT EDWARD ANGEL: EDITION 5 CS770/870
DEVSView: A DEVS Visualization Tool Wilson Venhola.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
GLWidget Description Jason Goffeney 3/8/2006. GLWidget The GLWidget class extends the Qt QGLWidget. The QGLWidget is a Qt Widget that happens to have.
Introduction to OpenGL and GLUT GLUT. What is OpenGL? An application programming interface (API) A (low-level) Graphics rendering API Generate high-quality.
Buffers Textures and more Rendering Paul Taylor & Barry La Trobe University 2009.
Lecture 5: Interaction 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 711,  ex 2271 
OpenGl Graphics Programming. Introduction OpenGL is a low-level graphics library specification. It makes available to the programmer a small set of geomteric.
1Computer Graphics Input and Interaction Lecture 8 John Shearer Culture Lab – space 2
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
(c) University of Washington08-1 CSC 143 Models and Views Reading: Ch. 18.
FLTK Help Session By Richard Yu Gu CS 638 -Graphics Fall, 1999.
Lecture 3 OpenGL.
1 Input and Interaction. 2 Input Devices Physical input devices Keyboard devices and pointing devices Logical input devices.
Computer Graphics I, Fall 2010 Input and Interaction.
Computer Graphics, KKU. Lecture 101 Introduction to OpenGL.
Ch 2 Graphics Programming page 1 CSC 367 Coordinate Systems (2.1.2) Device coordinates, or screen coordinates (pixels) put limitations on programmers and.
ROOT Team Meeting October 1 st 2010 GUI thinking and testing ideas OpenGL GUI Root Team meeting 01/10/2010.
CS 480/680 Computer Graphics Programming with Open GL Part 7: Input and Interaction Dr. Frederick C Harris, Jr. Fall 2011.
NEWTON’S CRADLE CADENAS QUIJANO, PATRICIA COTRINA FERNÁNDEZ, MANUEL GARCÍA TOMILLO, JAVIER HIJARRUBIA BERNAL, LUIS An OpenGL Application.
Lecture 6: 3D graphics Concepts 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271 
Lecture 11: Exam Revision 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271  Coursework.
Computing & Information Sciences Kansas State University Lecture 19 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 19 of 42 William H. Hsu.
Learning Unity. Getting Unity
Spring 2010Topics in Computer Graphics FLTK and OpenGL Jyun-Ming Chen.
As you look at an iMac you will notice that there are no buttons on the front of the machine as shown in figure 1.
The Abstract Window Toolkit (AWT) supports Graphical User Interface (GUI) programming. AWT features include: a rich set of user interface components; a.
Program 2 due 02/01  Be sure to document your program  program level doc  your name  what the program does  each function  describe the arguments.
1 Input and Interaction. 2 Objectives Introduce the basic input devices ­Physical Devices ­Logical Devices ­Input Modes Event-driven input Introduce double.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
University of New Mexico
“RINGS” PES Institute of Technology and Management Presented by Under the Guidance of Mr. ABHISHEK S A 4PM12CS002 Mr. ASHWIN K KASHYAP 4PM12CS015 Mr. DEVARAJ.
Lecture 7 Midterm Review. OpenGL Libraries gl: Basic OpenGL library, e.g. primitives. glu: OpenGL Utility library, a set of functions to create texture.
Visualization Recreate the ping pong scene in 3D using ball and racket coordinates.
Design Visualization Software Introduction / Review.
 2002 Prentice Hall. All rights reserved. 1 Introduction to the Visual Studio.NET IDE Outline Introduction Visual Studio.NET Integrated Development Environment.
1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Working with Callbacks.
Visualization of Three-Dimensional Geometric Models in a Stereoscopic System Rositsa Radoeva Assistant professor at St. Cyril and St. Methodius University.
Introducing Scratch Learning resources for the implementation of the scenario
OpenGL: The Open Graphics Language Technology and Historical Overview By Ricardo Veguilla.
INTRODUCTION TO OPENGL
Computer Graphics (Fall 2003) COMS 4160, Lecture 5: OpenGL 1 Ravi Ramamoorthi Many slides courtesy Greg Humphreys.
Institute for Computer Graphics and Vision Computer Graphics and Interactive Systems 1 Grabner HS i4, 2006/03/08 Web3D, VRVU, SGP Web3D ( ) VRVU.
School of Computer Science
Introducing Blender.
Computer Graphics Lecture 33
CSC461 Lecture 8: Input Devices
Lesson 1: Buttons and Events – 12/18
TerraForm3D Plasma Works 3D Engine & USGS Terrain Modeler
The User Interface Lecture 2 Mon, Aug 27, 2007.
Introduction to OpenGL
Input and Interaction Ed Angel
University of New Mexico
Input and Interaction Ed Angel
Presentation transcript:

Andy Wilson - GLUT and GLVU - 9/99 - Slide 1 GLUT and GLVU Andy Wilson September 22, 1999

Andy Wilson - GLUT and GLVU - 9/99 - Slide 2 Outline IntroductionIntroduction GLUTGLUT GLVUGLVU Where to learn moreWhere to learn more Questions and AnswersQuestions and Answers

Andy Wilson - GLUT and GLVU - 9/99 - Slide 3 Introduction: Motivation So you want to use OpenGL?So you want to use OpenGL? –Low-level commands »Manage rendering state »Render primitives The windowing system is in your wayThe windowing system is in your way No “world management” availableNo “world management” available

Andy Wilson - GLUT and GLVU - 9/99 - Slide 4 Introduction: GLUT GLUT: simple interface to window systemGLUT: simple interface to window system –User functions handle window events »mouse, keyboard, resize, expose… –Simple pop-up menus –A few simple shapes (sphere, cone, teapot) No concept of world or camera managementNo concept of world or camera management –You reinvent the wheel a lot.

Andy Wilson - GLUT and GLVU - 9/99 - Slide 5 Introduction: GLVU GLVU: object and camera managementGLVU: object and camera management –Several different model formats –Renderable objects –Easily extensible »Several modules available or under development - IBR, tracking, large models, LOD...

Andy Wilson - GLUT and GLVU - 9/99 - Slide 6 Outline IntroductionIntroduction GLUTGLUT GLVUGLVU Where to learn moreWhere to learn more Questions and AnswersQuestions and Answers

Andy Wilson - GLUT and GLVU - 9/99 - Slide 7 GLUT: System Overview User Callbacks (Display, Idle, Keyboard, Mouse, Resize, …) GLUT Window System Events (Mouse, Keyboard, Window Expose/Hide/Resize/Destroy)

Andy Wilson - GLUT and GLVU - 9/99 - Slide 8 GLUT: Program Structure Initialization and window/menu setupInitialization and window/menu setup Interface callbacksInterface callbacks –Handle mouse, keyboard input Display functionDisplay function –Draw world (including camera management) Idle functionIdle function –Runs when no events pending

Andy Wilson - GLUT and GLVU - 9/99 - Slide 9 GLUT: Interface Callbacks KeyboardKeyboard –Key press, key release, window location MouseMouse –Enter/leave window, button down/up, drag MenuMenu –Item select

Andy Wilson - GLUT and GLVU - 9/99 - Slide 10 GLUT: Display Callback Responsible for entire display processResponsible for entire display process –Clear buffers –Set up camera, GL matrix stacks –Draw objects (including multipass rendering) –Swap front/back buffer Good place to put per-frame world updatesGood place to put per-frame world updates –physics, collision, trackers

Andy Wilson - GLUT and GLVU - 9/99 - Slide 11 GLUT: Idle Callback Invoked when events not being received from window systemInvoked when events not being received from window system Typical uses:Typical uses: –request redraw (continuous update) –update simulation clock No guarantee on when it’ll be called!No guarantee on when it’ll be called!

Andy Wilson - GLUT and GLVU - 9/99 - Slide 12 What GLUT Doesn’t Do World and model managementWorld and model management –Load and place and render models yourself Camera managementCamera management –Manage GL projection stack yourself Motion controlMotion control –Arcball? Drive? Strafe? Look around? Multipipe anythingMultipipe anything

Andy Wilson - GLUT and GLVU - 9/99 - Slide 13 Outline IntroductionIntroduction GLUTGLUT GLVUGLVU Where to learn moreWhere to learn more Questions and AnswersQuestions and Answers

Andy Wilson - GLUT and GLVU - 9/99 - Slide 14 GLVU: Overview Object managementObject management –Several polygonal file formats supported –Objects can render themselves Camera and simple navigationCamera and simple navigation –Walk, translate, examine, look around Easily extensibleEasily extensible Sits on top of GLUTSits on top of GLUT

Andy Wilson - GLUT and GLVU - 9/99 - Slide 15 GLVU: System Diagram GLUT GLVU Input Handlers User Idle Func User Display Func User Input Handlers GLVU Model Formats

Andy Wilson - GLUT and GLVU - 9/99 - Slide 16 GLVU: System Architecture Everything is object-oriented C++Everything is object-oriented C++ Components all inherit from base classesComponents all inherit from base classes –Camera, Object Default GLUT keyboard and mouse handlers providedDefault GLUT keyboard and mouse handlers provided –User typically extends rather than replaces GLVU divided into Core and ModulesGLVU divided into Core and Modules

Andy Wilson - GLUT and GLVU - 9/99 - Slide 17 GLVU: Writing a Program Just like writing a GLUT program, except…Just like writing a GLUT program, except… –Load models by instantiating objects –Call Display() methods instead of rendering by hand –Motion handlers already provided

Andy Wilson - GLUT and GLVU - 9/99 - Slide 18 GLVU Core Perspective CameraPerspective Camera VRML, BFF, OBJ, TRI, WFF model formatsVRML, BFF, OBJ, TRI, WFF model formats Bounding boxesBounding boxes PPM images (for texture maps)PPM images (for texture maps) Vector, Matrix math libraryVector, Matrix math library Walk, Examine, Look, Translate movement modesWalk, Examine, Look, Translate movement modes

Andy Wilson - GLUT and GLVU - 9/99 - Slide 19 GLVU Modules IBR far-field representationsIBR far-field representations –Textured depth mesh, environment-mapped cubes, layered depth images, … Light Cameras (place lights by moving viewpoint)Light Cameras (place lights by moving viewpoint) Large Model utilities (cells, memory management)Large Model utilities (cells, memory management) See Bill Baxter for latest list and ownersSee Bill Baxter for latest list and owners

Andy Wilson - GLUT and GLVU - 9/99 - Slide 20 Extending GLVU New model formatsNew model formats –Just write a loader and a display method Image-based renderingImage-based rendering –Most work goes into display method –Almost anything can be cast as an Object Can always override default GLVU input handlersCan always override default GLVU input handlers –Trackers, button boxes, joysticks...

Andy Wilson - GLUT and GLVU - 9/99 - Slide 21 User Interface Toolkits Many available; choose your favoriteMany available; choose your favorite TCL/TkTCL/Tk – GLUIGLUI – FLTKFLTK –

Andy Wilson - GLUT and GLVU - 9/99 - Slide 22 Outline IntroductionIntroduction GLUTGLUT GLVUGLVU Where to learn moreWhere to learn more Questions and AnswersQuestions and Answers

Andy Wilson - GLUT and GLVU - 9/99 - Slide 23 Where to Learn More Read the example code!Read the example code! GLUTGLUT – GLVUGLVU –Bill Baxter can tell you how to get the source

Andy Wilson - GLUT and GLVU - 9/99 - Slide 24 Outline IntroductionIntroduction GLUTGLUT GLVUGLVU Where to learn moreWhere to learn more Questions and AnswersQuestions and Answers