School of Computer Science University of Seoul. 1. Interaction 2. Input Devices 3. Clients and Servers 4. Display Lists 5. Programming Event-Driven Input.

Slides:



Advertisements
Similar presentations
Programming with OpenGL - Getting started - Hanyang University Han Jae-Hyek.
Advertisements

OpenGL CMSC340 3D Character Design & Animation. What is OpenGL? A low-level graphics library specification designed for use with the C and C++ provides…
Better Interactive Programs
Animation and Input CSCI Day Six. Animation Basic Steps to Draw Something: var vertices = [ … ]; var BufferId = gl.CreateBuffer(); gl.bindBuffer.
1 Computer Graphics Chapter 2 Input Devices. RM[2]-2 Input Devices Logical Input Devices  Categorized based on functional characteristics.  Each device.
Chapter 3: Input and Interaction Instructor: Shih-Shinh Huang 1.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Better Interactive Programs Ed Angel Professor of Computer Science, Electrical and Computer.
InteractionHofstra University1 Graphics Programming Input and Interaction.
31/1/2006Based on: Angel (4th Edition) & Akeine-Möller & Haines (2nd Edition)1 CSC345: Advanced Graphics & Virtual Environments Lecture 3: Introduction.
InteractionHofstra University1 Graphics Programming Input and Interaction.
1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 GLUT Callback Functions.
Based on slides created by Edward Angel
Informationsteknologi Tuesday, November 6, 2007Computer Graphics - Class 41 Today’s class Input and interaction.
Suriyong L., Computer Multimedia1 Input and Interaction Interactive program is something make CG look interesting.
Computer Graphics Bing-Yu Chen National Taiwan University.
19/4/ :32 Graphics II Syllabus Selection and Picking Session 1.
Interactive Input Methods & Graphical User Input
CSC461 Lecture 11: Interactive Programs Contents and Objectives Picking Writing modes – XOR/Copy Rubberbanding Display list.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
CGMB214: Introduction to Computer Graphics
Introduction to OpenGL and GLUT GLUT. What is OpenGL? An application programming interface (API) A (low-level) Graphics rendering API Generate high-quality.
COMPUTER GRAPHICS Hochiminh city University of Technology Faculty of Computer Science and Engineering CHAPTER 03: Input & Interaction.
Fundamentals of Computer Graphics Part 3 prof.ing.Václav Skala, CSc. University of West Bohemia Plzeň, Czech Republic ©2002 Prepared with Angel,E.: Interactive.
Interaction with Graphics System
Input and Interaction Chapter 3. CS 480/680 2Chapter 3 -- Input and Interaction Introduction: Introduction: We now turn to the development of interactive.
1Computer Graphics Input and Interaction Lecture 8 John Shearer Culture Lab – space 2
CAP 4703 Computer Graphic Methods Prof. Roy Levow Lecture 3.
Input and Interaction Lecture No. 4.
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.
Institute for Visualization and Perception Research 1 © Copyright 2000 Haim Levkowitz Introduction (Foley & Van Dam Ch 1) Uses of computer graphics … Some.
ROOT Team Meeting October 1 st 2010 GUI thinking and testing ideas OpenGL GUI Root Team meeting 01/10/2010.
Computing & Information Sciences Kansas State University Lecture 20 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 21 of 42 William H. Hsu.
CS 480/680 Computer Graphics Programming with Open GL Part 7: Input and Interaction Dr. Frederick C Harris, Jr. Fall 2011.
1 Better Interactive Programs. 2 Objectives Learn to build more sophisticated interactive programs using ­Picking Select objects from the display Three.
Interactive Computer Graphics CS 418 MP1: Dancing I TA: Zhicheng Yan Sushma S Kini Mary Pietrowicz Slides Taken from: “An Interactive Introduction to OpenGL.
Introduction to OpenGL and GLUT. What’s OpenGL? An Application Programming Interface (API) A low-level graphics programming API – Contains over 250 functions.
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.
1 Graphics CSCI 343, Fall 2015 Lecture 6 Viewing, Animation, User Interface.
University of New Mexico
GLUT functions glutInit allows application to get command line arguments and initializes system gluInitDisplayMode requests properties for the window.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
OpenGL Basic Drawing 2003 Spring Keng Shih-Ling
Lecture 7 Midterm Review. OpenGL Libraries gl: Basic OpenGL library, e.g. primitives. glu: OpenGL Utility library, a set of functions to create texture.
12/22/ :38 1 Comp 175C - Computer Graphics Dan Hebert Computer Graphics Comp 175 Chapter 3 Instructor: Dan Hebert.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Input and Interaction Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
31/1/2006Based on: Angel (4th Edition) & Akeine-Möller & Haines (2nd Edition)1 CSC345: Advanced Graphics & Virtual Environments Lecture 2: Introduction.
Introduction to Input/Interaction Glenn G. Chappell U. of Alaska Fairbanks CS 381 Lecture Notes Friday, September 19, 2003.
OpenGL Basic Drawing Jian-Liang Lin A Smidgen of OpenGL Code #include main() { InitializeAWindowPlease(); glClearColor (0.0, 0.0, 0.0, 0.0); glClear.
Graphics Programming. Graphics Functions We can think of the graphics system as a black box whose inputs are function calls from an application program;
CSC Graphics Programming Budditha Hettige Department of Statistics and Computer Science.
Better Interactive Programs
Computer Graphics Lecture 33
CSC461 Lecture 8: Input Devices
Introduction to Computer Graphics with WebGL
Advanced Menuing, Introduction to Picking
Input and Interactions
Interactive Input Methods & Graphical User Input
Better Interactive Programs
Isaac Gang University of Mary Hardin-Baylor
Fundamentals of Computer Graphics Part 3
Input and Interaction Ed Angel
Interactive Input Methods & Graphical User Input
University of New Mexico
Input and Interaction Ed Angel
Lecture #5 Interactive Input Methods
Input and Interaction Ed Angel Professor Emeritus of Computer Science,
Presentation transcript:

School of Computer Science University of Seoul

1. Interaction 2. Input Devices 3. Clients and Servers 4. Display Lists 5. Programming Event-Driven Input 6. Menus 7. Picking 8. A Simple Paint Program 9. Building Interactive Models 10. Animating Interactive Programs 11. Design of Interactive Programs 12. Logic Operations

Developed by Ivan Sutherland as part of his Ph.D thesis at MIT (1963).Ivan Sutherland Received the Turing Award in Ancestor of…  CAD  GUI  OOP  HCI Adopted lightpen as input devicelightpen DemoDemo on YouTube

Keyboard Mouse, trackball, touchpad, pointing stick Data tablet Lightpen Joystick Spaceball Data glove Haptic device Wiimote

String  Keyboard Locator  Mouse Pick  OpenGL “selection” Choice  Discrete  Widgets (menu) Valuators  Analog  Widgets (slidebar) Stroke  Mouse motion

Measure & trigger Input modes  Request mode  Sample mode  Event mode  Event queue  Callback

Again, no user interface features in OpenGL. UI should be implemented using other libraries, such as GLUT. GLUT supports (  Multiple windows for OpenGL rendering  Callback driven event processing  Sophisticated input devices  An ‘idle’ routine and timers  A simple, cascading pop-up menu facility  Utility routines to generate various solid and wire frame objects  Support for bitmap and stroke fonts  Miscellaneous window management functions

Groups multiple instructions into one to reduce the traffic between client & server. Memory required on server side. Useful for text rendering. Care needed not to mess up the states. (transformation, projection, attributes, etc.)  Can be saved/restored by push/pop. Deprecated in OpenGL 3.0  Complex geometry can be stored in VBO (vertex buffer object).

Notable GLUT events ( pec3/node45.html) pec3/node45.html  glutDisplayFunc  glutReshapeFunc  glutKeyboardFunc  glutMouseFunc  glutMotionFunc  glutSpecialFunc  glutIdleFunc  glutPostRedisplay  glutTimeFunc

Supported by GLUT Hierarchical menu supported

Can be implemented using selection mode (GL_SELECT)  Deprecated in OpenGL 3.0 Can be implemented using occlusion query ( B/occlusion_query.txt) B/occlusion_query.txt

Selection  By adjusting the clipping region and viewport Using bounding boxes  AABB (Axis-aligned bounding box) Back buffer + glReadPixels()

Instancing  To keep the objects in the scene  Using structures or classes Display list  For efficient rendering  No edition allowed

To avoid flickering during animation Created using GLUT_DOUBLE in glutInitDisplayMode() Front/back buffers keep being switched using glutSwapBuffers() When to change the parameters?  Idle event callback  Timer event callback

Logic operations can be applied to each pixel (source and destination) XOR for erasable objects