1 / 56

CSE 307 COMPUTER GRAPHICS

CSE 307 COMPUTER GRAPHICS. OVERVIEW OF GRAPHICS SYSTEMS GRAPHICS OUTPUT PRIMITIVES GEOMETRICAL TRANSFORMATIONS TWO DIMENSIONAL VIEWING THREE DIMENSIONAL VIEWING PARAMETRIC CURVES VISIBLE SURFACE DETECTION METHODS ILLUMINATION MODELS COMPUTER ANIMATION. Text Book:

kesia
Download Presentation

CSE 307 COMPUTER GRAPHICS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 307 COMPUTER GRAPHICS • OVERVIEW OF GRAPHICS SYSTEMS • GRAPHICS OUTPUT PRIMITIVES • GEOMETRICAL TRANSFORMATIONS • TWO DIMENSIONAL VIEWING • THREE DIMENSIONAL VIEWING • PARAMETRIC CURVES • VISIBLE SURFACE DETECTION METHODS • ILLUMINATION MODELS • COMPUTER ANIMATION Narendra V G CSE MIT

  2. Text Book: Donald Hearn, Pauline Baker M., “Computer Graphics with OpenGL”, Pearson Education, 3rd Edition, (2010) References: Edward Angel, “Interactive Computer Graphics- A top down approach using OpenGL”, Pearson Education, 5th Edition. Foley J. D., VanDam A., Feiner S. K., Hughes J. F., “Computer Graphics, Principles and Practice” , Addision-Wesley, 2nd Edition. Malay Pakhira K., “Computer Graphics Multimedia and Animation”, PHI Learning, . 2nd Edition. Amarendra Sinha N., ArunUdai D., “Computer Graphics”, Tata McGraw Hill publishing. Er. Rajiv Chopra “Computer Graphics”, S. Chand & Company Ltd. 2nd Edition. Narendra V G CSE MIT

  3. Computer Graphics Applications Narendra V G CSE MIT

  4. Computer Graphics is about animation (films) Major driving force now Narendra V G CSE MIT

  5. Games are very important in Computer Graphics Narendra V G CSE MIT

  6. Medical Imaging is another driving force Much financial support Promotes linking of graphics with video, scans, etc. Narendra V G CSE MIT

  7. Computer Aided Design too Narendra V G CSE MIT

  8. Scientific Visualisation To view below and above our visual range Narendra V G CSE MIT

  9. Graphics Pipelines • Graphics processes generally execute sequentially • Typical ‘pipeline’ model • There are two ‘graphics’ pipelines • The Geometry or 3D pipeline • The Imaging or 2D pipeline Narendra V G CSE MIT

  10. Computer Graphics ? Narendra V G CSE MIT

  11. Computer Graphics • Computer graphics deals with all aspects of creating images with a computer • Hardware • Software • Applications Narendra V G CSE MIT

  12. Example • Where did this image come from? • What hardware/software did we need to produce it? Narendra V G CSE MIT

  13. Preliminary Answer • Application: The object is an artist’s rendition of the sun for an animation to be shown in a domed environment (planetarium) • Software: Maya for modeling and rendering but Maya is built on top of OpenGL • Hardware: PC with graphics card for modeling and rendering Narendra V G CSE MIT

  14. Basic Graphics System Output device Input devices Image formed in FB Narendra V G CSE MIT

  15. CRT Can be used either as a line-drawing device (calligraphic) or to display contents of frame buffer (raster mode) Narendra V G CSE MIT

  16. Computer Graphics: 1950-1960 • Computer graphics goes back to the earliest days of computing • Strip charts • Pen plotters • Simple displays using A/D converters to go from computer to calligraphic CRT • Cost of refresh for CRT too high • Computers slow, expensive, unreliable Narendra V G CSE MIT

  17. Computer Graphics: 1960-1970 • Wireframe graphics • Draw only lines • Sketchpad • Display Processors • Storage tube wireframe representation of sun object Narendra V G CSE MIT

  18. Sketchpad • Ivan Sutherland’s PhD thesis at MIT • Recognized the potential of man-machine interaction • Loop • Display something • User moves light pen • Computer generates new display • Sutherland also created many of the now common algorithms for computer graphics Narendra V G CSE MIT

  19. Display Processor • Rather than have the host computer try to refresh display use a special purpose computer called a display processor (DPU) • Graphics stored in display list (display file) on display processor • Host compiles display list and sends to DPU Narendra V G CSE MIT

  20. Direct View Storage Tube • Created by Tektronix • Did not require constant refresh • Standard interface to computers • Allowed for standard software • Plot3D in Fortran • Relatively inexpensive • Opened door to use of computer graphics for CAD community Narendra V G CSE MIT

  21. Computer Graphics: 1970-1980 • Raster Graphics • Beginning of graphics standards • IFIPS • GKS: European effort • Becomes ISO 2D standard • Core: North American effort • 3D but fails to become ISO standard • Workstations and PCs Narendra V G CSE MIT

  22. Raster Graphics • Image produced as an array (the raster) of picture elements (pixels) in the frame buffer Narendra V G CSE MIT

  23. Raster Graphics • Allows us to go from lines and wire frame images to filled polygons Narendra V G CSE MIT

  24. PCs and Workstations • Although we no longer make the distinction between workstations and PCs, historically they evolved from different roots • Early workstations characterized by • Networked connection: client-server model • High-level of interactivity • Early PCs included frame buffer as part of user memory • Easy to change contents and create images Narendra V G CSE MIT

  25. Computer Graphics: 1980-1990 Realism comes to computer graphics smooth shading environment mapping bump mapping Narendra V G CSE MIT

  26. Computer Graphics: 1980-1990 • Special purpose hardware • Silicon Graphics geometry engine • VLSI implementation of graphics pipeline • Industry-based standards • PHIGS • RenderMan • Networked graphics: X Window System • Human-Computer Interface (HCI) Narendra V G CSE MIT

  27. Computer Graphics: 1990-2000 • OpenGL API • Completely computer-generated feature-length movies (Toy Story) are successful • New hardware capabilities • Texture mapping • Blending • Accumulation, stencil buffers Narendra V G CSE MIT

  28. Computer Graphics: 2000- • Photorealism • Graphics cards for PCs dominate market • Nvidia, ATI • Game boxes and game players determine direction of market • Computer graphics routine in movie industry: Maya, Lightwave • Programmable pipelines Narendra V G CSE MIT

  29. Graphics Definitions • Point • a location in space, 2D or 3D • sometimes denotes one pixel • Line • straight path connecting two points • infinitesimal width, consistent density • beginning and end on points Narendra V G CSE MIT

  30. Graphics Definitions • Vertex • point in 3D • Edge • line in 3D connecting two vertices • Polygon/Face/Facet • arbitrary shape formed by connected vertices • fundamental unit of 3D computer graphics Narendra V G CSE MIT

  31. Graphics Definitions • Raster • derived from TV systems for a row of pixels • commonly referred to as a scanline • does influence algorithms – reducing memory requirements, parallelism, etc. • is the derivation of rasterization, scan-line algorithms Narendra V G CSE MIT

  32. Summary • The course is about algorithms, not applications • Graphics execution is a pipelined approach • Basic definitions presented Narendra V G CSE MIT

  33. Programming with OpenGL Basics

  34. Objectives • Development of the OpenGL API • OpenGL Architecture • OpenGL as a state machine • Functions • Types • Formats • Simple program Narendra V G CSE MIT

  35. Early History of APIs • IFIPS (1973) formed two committees to come up with a standard graphics API • Graphical Kernel System (GKS) • 2D but contained good workstation model • Core • Both 2D and 3D • GKS adopted as IS0 and later ANSI standard (1980s) • GKS not easily extended to 3D (GKS-3D) • Far behind hardware development Narendra V G CSE MIT

  36. PHIGS and X • Programmers Hierarchical Graphics System (PHIGS) • Arose from CAD community • Database model with retained graphics (structures) • X Window System • DEC/MIT effort • Client-server architecture with graphics • PEX combined the two • Not easy to use (all the defects of each) Narendra V G CSE MIT

  37. SGI and GL • Silicon Graphics (SGI) revolutionized the graphics workstation by implementing the pipeline in hardware (1982) • To access the system, application programmers used a library called GL • With GL, it was relatively simple to program three dimensional interactive applications Narendra V G CSE MIT

  38. OpenGL The success of GL lead to OpenGL (1992), a platform-independent API that was • Easy to use • Close enough to the hardware to get excellent performance • Focus on rendering • Omitted windowing and input to avoid window system dependencies Narendra V G CSE MIT

  39. OpenGL Evolution • Originally controlled by an Architectural Review Board (ARB) • Members included SGI, Microsoft, Nvidia, HP, 3DLabs, IBM,……. • Relatively stable (present version 2.1) • Evolution reflects new hardware capabilities • 3D texture mapping and texture objects • Vertex programs • Allows for platform specific features through extensions • ARB replaced by Kronos Narendra V G CSE MIT

  40. OpenGL Libraries • OpenGL core library • OpenGL32 on Windows • GL on most unix/linux systems (libGL.a) • OpenGL Utility Library (GLU) • Provides functionality in OpenGL core but avoids having to rewrite code • Links with window system • GLX for X window systems • WGL for Windows • AGL for Macintosh Narendra V G CSE MIT

  41. GLUT • OpenGL Utility Toolkit (GLUT) • Provides functionality common to all window systems • Open a window • Get input from mouse and keyboard • Menus • Event-driven • Code is portable but GLUT lacks the functionality of a good toolkit for a specific platform • No slide bars Narendra V G CSE MIT

  42. Software Organization application program OpenGL Motif widget or similar GLUT GLX, AGLor WGL GLU GL X, Win32, Mac O/S software and/or hardware Narendra V G CSE MIT

  43. OpenGL Architecture geometry pipeline Immediate Mode Per Vertex Operations & Primitive Assembly Polynomial Evaluator DisplayList Per Fragment Operations Frame Buffer CPU Rasterization Texture Memory Pixel Operations Narendra V G CSE MIT

  44. OpenGL Functions • Primitives • Points • Line Segments • Polygons • Attributes • Transformations • Viewing • Modeling • Control (GLUT) • Input (GLUT) • Query Narendra V G CSE MIT

  45. OpenGL State • OpenGL is a state machine • OpenGL functions are of two types • Primitive generating • Can cause output if primitive is visible • How vertices are processed and appearance of primitive are controlled by the state • State changing • Transformation functions • Attribute functions Narendra V G CSE MIT

  46. Lack of Object Orientation • OpenGL is not object oriented so that there are multiple functions for a given logical function • glVertex3f • glVertex2i • glVertex3dv • Underlying storage mode is the same • Easy to create overloaded functions in C++ but issue is efficiency Narendra V G CSE MIT

  47. OpenGL function format function name dimensions glVertex3f(x,y,z) x,y,zare floats belongs to GL library glVertex3fv(p) pis a pointer to an array Narendra V G CSE MIT

  48. OpenGL #defines • Most constants are defined in the include files gl.h, glu.h and glut.h • Note #include <GL/glut.h> should automatically include the others • Examples • glBegin(GL_POLYGON) • glClear(GL_COLOR_BUFFER_BIT) • include files also define OpenGL data types: GLfloat, GLdouble,…. Narendra V G CSE MIT

  49. A Simple Program Generate a square on a solid background Narendra V G CSE MIT

  50. simple.c #include <GL/glut.h> void mydisplay(){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); glFlush(); } int main(int argc, char** argv){ glutCreateWindow("simple"); glutDisplayFunc(mydisplay); glutMainLoop(); } Narendra V G CSE MIT

More Related