MAE 152 Computer Graphics for Scientists and Engineers Fall 2003 Dr. Prashant V. Mahajan Senior Research Scientist AValonRF, Inc., El Cajon, CA
Jan 12, 2016
MAE 152Computer Graphics for
Scientists and Engineers
Fall 2003
Dr. Prashant V. MahajanSenior Research Scientist
AValonRF, Inc., El Cajon, CA
What is Computer Graphics
• Computer technology used to create, manipulate and communicate visual information
ChangeImage
Reactto
Change
Graphics System User
InputDevice
Display
History of Computer Graphics• Whirlwind computer at MIT (1950s)• Sketchpad (Ivan Sutherland, MIT 1963)• Computer aided design (CAD) 1965 -• Simulators (c.1975-)• Bitmap graphical user interfaces (late 70s)• Interactive raster graphics (80s)• Virtual reality (late 80s - )• Computer animation• Visualization• Computer art• Web/internet based graphics
GC “Processes”
• Modeling
• Storing
• Manipulating
• Rendering
• Viewing
Major areas of application …
If you can imagine it, it can be done.
Major areas…entertainment
Games are okay here!
Animation
Tools for teaching and diagnosis, all the way to treatment.
Image processing
“Solid model is worth 1000 drawings !”
CAD
Scientific Visualization
Data plotting and visualization
GUI
Business Graphics
Goals of CG
• Interactivity
• Real-time
• Realism
“Distinctiveness” of CG
• Dynamic environment
• Interactive environment
• Simulation environment
• Visualizing large quantities of data
Graphics: Conceptual Model
Real Object
Human Eye
Real Light
Real Object
Human Eye
DisplayDevice
Graphics System
SyntheticModel
SyntheticCamera
SyntheticLight Source
Graphics Pipeline
z = znear
z = zfar
y
x
z
COP
y
x
zx
z
z = -1
z = 1
y
x
y
Model Coordinates Eye Coordinates Normalized Coordinates
Window CoordinatesProjectedNormalized Coordinates
ModelviewTransform
ProjectionTransform
ViewportTransform
(-1,-1)
(1,1)
glScalef() glRotatef()glTranslatef()
glFrustrum()gluPerspective()
glViewport()
How Does Application ProgramCommunicate With Graphics System?
ApplicationProgram Graphics
System
InputDevices
???2D Output Image
(3D) Model
Components of a Graphics API
• Primitive functions (What to draw)• Primitive attributes (How to draw it)• Transformation functions (Rotate, scale, translate
objects (where, how big?))• Synthetic camera Viewing functions (how to look at
it?)• Input functions (Handle interactivity)• Control functions
(Communicate with underlying window system/OS)
(Initialization, error handling, etc)
What is in this course?• OpenGL system and sample code • simple geometric modeling and GL/GLUT primitives • transformations • managing transformation stacks and composing
transformations • animation, double buffering of images • color models and representation • lights and shading models • display lists • event models and event-driven programming • standard OpenGL callbacks
What is covered …
• Matrix operations• Representations, linear functions and
interpolations, polynomials, splines, bezier functions
• ProENGINEER solid modeling• DXF (between ProE and external programs)• description of course projects and operations
Administrative
Class-hours: Wed-Fri, 5-6.20 p.m.Instructor: Dr Prashant V Mahajan
Contact: [email protected] hours: Wed-Fri, 3.45-4.45 p.m.
TAs: Alex SeguritenAlex Simpkins
Textbook/Reference(1) OpenGL Programming Guide, by Neider, Davis, & Woo(2) Computer Graphics for Design, by Daniel B. Olfe(3) Handouts
Administrative …
Lab HoursAssignment / Project turn-in methodFinal QuizGrading
Assignment 1: C Programming• Learning objectives
– Review programming in C
– loops
– Variables
– Functions
– Arrays
– commenting and more
• Microsoft Visual C++ or the compiler of your choice • Basic concept of a user interface
C Programming Assignment
• Plate of heat-conductive material
• Uniform temperature for t<0
• At t=0, “point heat sources” applied at two arbitrary points on the plate
• Output the temperature distribution on the plate after 25 time steps
• Due Fri, Oct 3