This action might not be possible to undo. Are you sure you want to continue?
, History, Context
Angel, Chapter 1
Computer Graphics, Fall 2010
Angel, page 1: ± Perhaps the dominant characteristic of this new millennium is how computer and communication technologies have become dominant forces in our lives.
Computer Graphics, Fall 2010
Angel, page 1:
±Perhaps the dominant characteristic of this new millennium is how computer and communication technologies have become dominant forces in our lives.
Not a bad place to be « sometimes we forget
Fall 2010 Angel.´ « all aspects « ± Hardware ± Software ± Applications . page 1: ± Perhaps the dominant characteristic of this new millennium is how computer and communication technologies have become dominant forces in our lives. ± ³Computer graphics is concerned with all aspects of producing pictures or images using a computer.Computer Graphics.
Applications: Movies .
Applications: Games .
Applications: Visualization .
Apps: Computer Aided Design .
App: Virtual and Augmented Reality .
Applications: Mobile Media .
Apps: New Information Spaces .
Applications: Art .
term) . (Foley et al.. Human ³Interaction´ ³Perception´ ³Information´ Closed System Display Programming systems -windows -graphics Elements of Computer Graphics Lights Rendering An illusion: analog world represented digitally Programming is a craft Hardware and graphics engines Drawing Algorithms 3-D Viewing Transformation UTPA: Computer Graphics Visualization Interactive Systems Human Computer Interaction Representation of curves and surfaces ³Models´. i.Open System User.e.
mathematical.Computer Graphics Angel. and conceptual (abstract) structures. p. artistic. not so much anymore . ³creation. storage and manipulation of models and images´ Models come from a diverse and expanding set of fields including physical. 1 ± ³Computer graphics is concerned with all aspects of producing pictures or images using a computer. Historically.´ All aspects « ± Hardware ± Software ± Applications Foley et al. biological. there was a ³hard line´..
early 1960¶s. graphic designer ± Created a series of widely reproduced images on a plotter exploring cockpit design using a 3D model of a human body ³Boeing man´ .Origins William Fetter coined term ³computer graphics´ ± New design methods pursuing at Boeing.
It is not the know-how of a graphic designer. graphic designer ± Created a series of widely reproduced images on a plotter exploring cockpit design using a 3D model of a human body ³Boeing man´ ³Perhaps the best way to define computer graphics is to find out what it is not. early 1960¶s. 1966 .Origins William Fetter coined term ³computer graphics´ ± New design methods pursuing at Boeing. William A.´ ³Computer graphics is all these -a consciously managed and documented technology directed toward communicating information accurately and descriptively. a writer. It is not a computer. It is not a machine. or a reproduction specialist. a motion picture specialist. Fetter. a programmer.´ Computer Graphics. nor a group of computer programs.
not numbers´ « and a lot of people got it. computer graphics are fun ± 1962. heck. Numerical Methods for Scientists and Engineers.Even More Fundamentally « ³Computing is about insight.. right away Hamming.W. 1962 Goals of insight: Discovery Decision making Explanation And. PDP-1. Spacewar . R.
Where did this image come from? 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 What hardware/software to produce it? Hardware: ± PC with graphics card for modeling and rendering . Angel Ex.Computer Graphics.
Interactive Computer Graphics Interactive computer graphics ± Where computation. structure. and machine come together ± User controls contents. human. graphics mode (ever heard of something called DOS. or Unix command line?) ± Dominant display and interaction paradigm for interaction ± Direct manipulation interfaces require graphics The two contrasts of a) text with graphics and b) batch with interactive describe the context of interactive computer graphics ± Sutherland¶s landmark work described the ideas . and appearance of objects and their displayed images via rapid visual feedback Graphics is/are pervasive: ± Text (character) mode vs.
paperbased printer.g.Interactive Computer Graphics Basic components of an interactive graphics system: ± ± ± ± Input (e. force feedback device. scanner. tablet and stylus.g. screen.....) Processing (and storage) Frame buffer (raster) more next time Display/output (e. mouse..) Output devices Input devices Image formed in FB . video recorder..
Raster Architecture (next time) Early systems ± Used part of system memory (system address space) for frame buffer ± Single CPU set frame buffer and performed ³graphics system´ commands Current systems ± Separate processor gets cmds from CPU Graphics Processing Unit (GPU) ± ³In hardware (firmware):´ Scan conversion Texturing Dedicated texture memory Lighting calculations 3D transformation calculations GPU more power than CPU ± Interesting implications! .
Cg Software Architecture. APIs Window system API MS windows X tools Graphics API OpenGl (no win sys func) DirectX CPU GPU Graphics Processing Unit .
MFC. etc..g. Window System ³Application Progs´ E.Software Arch. Swing.. Qt (widget toolkit and more) Window system API MS windows X tools Graphics API OpenGl (no win sys func) DirectX CPU GPU Graphics Processing Unit . Tools: UI Program. student programs MS Excel.
. Graphics ³Application Progs´ E. VTK s3s Window system API MS windows X tools GLUT OpenGL Utility Toolkit Graphics API OpenGl (no win sys func) DirectX CPU GPU Graphics Processing Unit .g. student programs MS Excel.Software Arch. Program. etc. Tools: Vis..
All ³Application Progs´ E.Software Architecture. MFC.g. etc. Qt (widget toolkit and more) Tools: Vis.. Swing. Program. Tools: UI Program. VTK s3s Tools: Graphic Maya 3ds Window system API MS windows X tools GLUT OpenGL Utility Toolkit Graphics API OpenGl (no win sys func) DirectX CPU GPU Graphics Processing Unit . student programs MS Excel.
Tools: UI Program.Software Architecture (save) ³Application Progs´ E.. student programs MS Excel.g. etc. Program. Qt (widget toolkit and more) Tools: Vis. MFC. Swing. VTK s3s Tools: Graphic Maya 3ds Window system API MS windows X tools GLUT OpenGL Utility Toolkit Graphics API OpenGl (no win sys func) DirectX CPU GPU Graphics Processing Unit .
Xbox. e. Nintendo GameCube. Sony Playstation 2. nVidia GeForce 3 .g.. scientific visualization.Context of Computer Graphics Graphics is key enabling technology in evolution of computing environments: ± Graphical user interfaces ± Visual computing. information visualization Hardware revolution drives everything ± ~ every 18 months. computer power improves by factor of 2 in price/performance ± Moore's Law ± « and exponential growth generally ± things are different « Graphics memory and network speeds are on even faster exponentials ± graphics chips in particular have major improvements every six to nine months e.g. desktop publishing.
Moore¶s Law . computer power improves by factor of 2 in price/performance ± Moore's Law .CPUs Hardware revolution drives everything ± ~ every 18 months.
software and « .On Exponential Growth « Some ³technology´ is exponential in advancement Other things are not « ± E.g..
Taking Advantage of Exp. Growth .
Taking Advantage of Exp. Growth? .
Moore¶s Law Dead? ? .
architectures is not a new question Cf. here. Nvidia gpu programming language . gpu processing power > cpu processing power in commodity pc¶s! How to use parallel. gpu.Parallelism and Moore¶s Law Moore¶s law is alive and well for graphics ± Because lends itself to parallelization ± Pipeline architecture works well with current approach to cg ~ Now.
presentations. about the course ± Student background Impacts programming assignments. Fall 2010 Syllabus. « . «. pace.CSCI 4360 and 6360.
and other things throughout Geometric objects and transformations ± Nuts. bits. and math Viewing ± Pixels and ³looking at´ things Lighting and shading ± Illumination models ± ³good (and fast) enough´ ³From vertices to fragments´ ± Getting lines and points on the screen ± and just the right ones Discrete techniques ± Buffers. and textures Project demonstrations .Schedule of Topics Graphics systems and models ± Thinking and speaking optically and computer-graphically Graphics programming ± today.Course . OpenGL « programming first! ± Input and interaction. bolts and coordinate systems« or numbers. pixels.
Autocad ± Use for graphics creation. GPU > CPU Paper & oscilloscope..Computer Graphics History Computer graphics « ³all aspects´ ± Hardware. 80¶s and 90¶s starts. lcd/led « commodity 3d ± Display Software ± ³Graphics package´.g. Maya . standardization of OpenGL Applications ± Use of graphics in application. applications Hardware ± Graphics processing SAS and processor. graphics api Custom.g. raster based. e. separate processor in commodity.. separate processing in workstation. e. software. vector based.
pdf Video: ± www. light pen and function-key panel Among most important works in computer science .uk/techreports/ UCAM-CL-TR-574.cl. Ivan Sutherland¶s 1963 Ph. Sketchpad ± A fairly sophisticated ³paint´ (or drawing) program MIT.com/watch?v=m OZqRJzE8xg Ivan Sutherland using Sketchpad in 1963 CRT monitor. thesis ± ³Sketchpad.cam.Origins: Sutherland¶s Sketchpad. 1/2 First truly interactive graphics system. A Man-Machine Graphical Communication System´ Available: ± www.ac.D.youtube.
´ (Sutherland. The system contains input. 2/2 Almost all the key elements of an interactive graphics system are expressed in the first paragraph of Sutherland's thesis!: ± ³The Sketchpad system uses drawing as a novel communication medium for a computer. Sketchpad has shown the most usefulness as an aid to the understanding of processes. output. Sketchpad also makes it easy to draw highly repetitive or highly accurate drawings and to change drawings previously drawn with it.. such as the motion of linkages. which can be described with pictures.Origins: Sutherland¶s Sketchpad. and computation programs which enable it to interpret information drawn directly on a computer display.. 1963) .
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 ± Even line printers «
Cost of refresh for CRT too high
± Computers slow, expensive, unreliable Just didn¶t have the cycles Single processor per computer, vs. cpu-gpu architecture of today¶s systems
Early displays based on osciloscopes
± DEC 340 display, at right
Computer Graphics: 1950-1960
Character Displays (1960s - now)
± ± ± ± ± Display: text plus alphamosaic pseudo graphics Object and command specification: command line typing Control over appearance: coding for text formatting, e.g., .p =paragraph, .i 5 =indent 5 Application control: single task
Vector Displays (1963 - 1980s)
± ± ± ± Display: line drawings and stroke text; 2D and 3D transformation hardware Object and command specification: command line typing, function keys, menus Control over appearance: pseudo WYSIWYG Application control: single or multitasked, host satellite distributed computing
Computer Graphics: 1960-1970
± ± ± ± ± ± Draw only lines Sketchpad Display Processors Storage tube DEC PDP-1, below Early CRT displays based on oscilloscopes
Primitive (custom) software But, beginning of advances in cg algorithms Interactive cg possible at high end
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 . but some terminology remains..FYI . e. ³display list´ Rather than have the host computer try to refresh display.g.Display Processor Really old school technology.
Direct View Storage Tube First real cg capable display ± 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 .
clear distinctions. not uncommon Beginning of graphics standards ± IFIPS GKS: European effort ± Becomes ISO 2D standard Core: North American effort ± 3D but fails to become ISO standard ± ³It was a real mess ± at least compared to now´ (Scientific) Workstations and PCs ± Strong. vector display list) ³bitmap´ ± really ³bytemap´ or ³wordmap´ or « ± Memory cost allowed Back then. that have at least blurred now .Computer Graphics: 1970-1980 Raster graphics ± today¶s display paradigm ± Map pixel to memory location (vs. 64k words total.
Phong shading . vector display list) Can now go from lines and wire frame images to filled polygons ± Many fundamental algorithms developed ± E..Raster Graphics. 1970-1980 Image produced as an array (the raster) of picture elements (pixels) in the frame buffer ± Map pixel to memory location (vs.g.
for speed.PCs and Workstations Although we no longer make a (clear) distinction between workstations and PCs. such as OGL . often programmed directly into frame buffer from application Vs. 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 ± And. using a software layer.
icons. the messy desktop metaphor Control over appearance: ± WYSIWYG (which is really WYSIAYG. ± late 60's saw first use of raster graphics. drag and drop).Computer Graphics: 1970-1980 2D bitmap raster displays for PCs and workstations (1972 Xerox PARC . legible text and ``flat earth'' graphics.now) Display: ± windows. especially for flight simulators. Menus.. Icons. Object and command specification: ± minimal typing via WIMP (Windows. widgets and direct manipulation (e. networked clientserver computation and window management (even X terminals) . What You See Is All You Get) Application control: ± multitasking.g. Pointer) ± GUI (Graphical User Interface): point and click selection of menu items and objects.
ray tracing ± and other computationally expensive techniques smooth shading environment mapping bump mapping .Computer Graphics: 1980-1990 Photorealism feasible E.g..
and see what goes to viewer Somewhat more computationally feasible (though still expensive) is to ³run things backward´ from cop to objects to illumination source . to the objects.Ray Tracing Consider how light from a source might be modeled « ± Follow every ray from the source.
Computer Graphics: 1980-1990 Special purpose hardware ± Silicon Graphics geometry engine VLSI implementation of graphics pipeline SGI Onyx and 512 mb at right Industry-based standards ± PHIGS ± RenderMan Networked graphics: X Window System Human computer interface advances ± « graphic user interfaces not possible without graphics .
Computer Graphics: 1990-2000 OpenGL API ± Has revolutionized graphics programming productivity Completely computer-generated feature-length movies (Toy Story) New hardware capabilities ± Texture mapping ± Blending ± Accumulation.g. hardware depth buffer. shading routines in hard/firmware ± « Moore¶s law ± Everything is cg . stencil buffers Commodity computers have significant graphics capabilities! ± E.. 24+ bit frame buffers.
widgets. 3DLabs See these web sites for state of the art « High-end PC¶s with fast graphics cards are supplanting graphics workstations Game boxes and game players determine direction of market Computer graphics routine in movie industry: Maya. ATI. 3D and nD input devices (controlling 3+ degrees of freedom) force feedback haptic devices for pointandclick.Computer Graphics: 2000 Photorealism Graphics cards for PCs dominate market ± ± ± Nvidia. and direct manipulation Application control: ± multitasking. networked (client/server) computation and window management . Lightwave Programmable pipelines Object and command specification: ± ± 2D.
Computing ± and Graphics . for Interactive TV. VideoOnDemand) The Internet and Internet appliances ± Radio. Personal Digital Assistants ± aka telephones Ubiquitous/pervasive/invisible computing. consumer electronics: settop computers (e.. 100's of devices/person Social computing Chips are key in graphics: powerful. inexpensive processing ± Again.Now ³Digital Convergence´: ± Merging of digital television and distributed computing. advances driven by Moore's Law . movies.g. « Embedded computing ± Information appliances. active badges.
Adobe Photoshop 2. and is then sampled for visualization (this process is called rendering) ± Often some aspect of the physical world is visually simulated. Sampled-based graphics: ± Discrete samples are used to describe visual information ± Pixels can be created by digitizing images.Application Distinctions Two basic paradigms for computer graphics: 1. Corel CorelDRAW!.g.. Autodesys FormZ . Avid's SoftImage 3D. using a samplebased `´painting´ program. e. etc. Autodesk's AutoCAD and 3D StudioMax. or ``synthesized'' ± Example 2D programs: Adobe Illustrator. along with various attributes. Macromedia Freehand. Microsoft PhotoDraw ± Example 3D programs: Alias/Wavefront Studio and Maya. Geometry-based graphics: ± A geometrical model is created. temperature across the US ± Example programs: MS Paint. ± Often some aspect of the physical world is sampled for visualization.
transparency.Sampled-based Graphics. and other control information . 1 Images are made up of a grid of discrete pixels for 2D ``picture elements'' Pixels are point locations with associated sample values ± usually of light intensities/ colors.
g.Sample-based Graphics. can be sampled (light intensity/color measured at regular intervals) with many devices including: flatbed and drum scanners digital still and motion (video) cameras addon boards such as frame grabbers Sample values can also be input numerically ± e. such as a photograph. ± image processing describes algorithmic operations that are performed on an image (or preselected portion of an image) without user intervention. rotating. ± e. color balancing. . or as a result of sampling continuous (analog) visual materials. such as cutting and pasting sections. using brushtype tools.g. and warping. edgedetection. and processing selected areas.. sharpening. with numbers from a computed dataset) Once an image is defined as a pixelarray. it can be manipulated ± image editing describes changes made by a user to an image. a continuous image.. include such operations as blurring. 2 Samples can be created directly in a paint-type program.
. e.Example of Sampling In a continuous/analog. photographic image ± Color value is measured at every grid point and used to color a corresponding grid square ± E. at right: 0 = white. 5 = gray.g. poor (low resolution) sampling and image reconstruction method creates a ³blocky´ image .g. 10 = black Here.
. if we reverse our mapping above and make 10 = white and 0 = black 2. Once image is defined in terms of colors at (x. find edges.Advantages Disadvantages of Sampling Advantages: 1..g. can change image easily by altering location or color values e. y) locations on grid. etc. enhance contrast. Pixel information from one image can be copied and pasted into another. replacing or combining with previously stored pixels Disadvantage: ± WYSIWYG (What You See Is What You Get): ± There is no additional information: no depth information can't examine scene from a different point of view at most can play with the individual pixels or groups of pixels to change colors.
± Images of many different views can be generated from the same model.Geometry-Based Graphics. polyhedrons. Defined Geometry-based graphics applications ± Use mathematical descriptions. then resampled and redisplayed.g.. polygons..) ± And associated attributes (e. but are not stored as part of the model.. color. material properties). ± Cannot usually work directly with the individual pixels in a geometry-based program ± Manipulate geometric elements. Images ± Created as pixel arrays (via sampling of the geometry) for viewing. . primitives for short. These elements are primitive geometric shapes. or ³models´ of geometric elements (lines.
chart) quantitative (e.g. given some model. from equation of sphere compute points Through 3D computer graphics.g. graph of stock market data) information visualization Modeling. the Model A model captures the salient features (data.. easily changeable 3D forms ± Revolutionized working process of many fields science. etc. appearance attributes.g. engineering. you may recall from other cs courses.g. behavior) of thing/phenomenon being modeled ± ± data includes geometry. industrial design. actual object such as a pump) nonphysical (e. reconstruct in graphics the visual representation ± E. for first time have abstract.. (this may be important) .. is coping with complexity Then. but for visualization ± ± ± organizational (e. similarity to OOP notions Real: some geometry inherent ± ± ± physical (e. architecture.. company org..Geometry-Based Graphics.g. commerce. entertainment. mathematical function.. weather data) scientific visualization Abstract: no inherent geometry..