You are on page 1of 54

COMPUTER GRAPHICS

PROF. BAAGYERE Y. EDWARD


Lecture 1

3/13/2022
CSC 405:Computer Graphics

¨ Instructor: Prof. Edward Y. Baagyere


¨ Office Location: SCIS Dean’s Office
¨ Telephone: +233249990362
¨ Email: ebaagyere@cktutas.edu.gh
¨ Office Hours: Fridays, 12:00 – 17:00
¨ Lecture Days/Time: Thursday: 09:00 – 10:55 am
Friday: 05:00 – 5:55 pm
¨ Lecture room: NHA2
¨ Pre-requisites: Computer Science standing.
¨ Good background in C++, Linear Algebra is helpful. Must have self-
motivations in self learning and independent research

3/13/2022
References
¨ Some Referenced textbooks:
¤ Computer Graphics; Principles and practice; 2nd edn. in C; J. Foley, A. Van Dam,
Feiner and Hughes; Addison Wesley, 1997.
¤ Mathematical elements for Computer Graphics; 2nd edn.; D. F. Rogers and J. A.
Adams; McGraw-Hill International. Edn., 1990.
¤ Computer Graphics - C version; D. Hearn and M. P. Baker; Pearson Education,
2004.
¤ Computer Graphics using OpenGL; 2nd edn. F. S. Hill Jr.; Pearson Education, 2003.

¤ Procedural Elements for Computer Graphics; 2nd Edn., D. F. Rogers, Tata McGraw-
Hill, 2002.

3/13/2022
CSC 405: Introduction to Computer Graphics

3/13/2022
What is Computer Graphics? (1/2)
¨ Computer graphics generally means creation, display, manipulation
and storage of models, images and experimental data for proper
visualization using a computer.
¨ Such models come from diverse and expanding set of fields including
physical, biological, mathematical, artistic, and conceptual/abstract
structures
Frame from animation by William Latham, shown at
SIGGRAPH 1992. Latham creates his artwork using rules
that govern patterns of natural forms.

Our newest visual computing faculty member, Daniel


Ritchie’s Ph.D. thesis: Probabilistic Programming for
Procedural Modeling and Design 3/13/2022
What is Computer Graphics? (2/2)
¨ William Fetter coined term “computer graphics” in 1960 to
describe new design methods he was pursuing at Boeing for
cockpit ergonomics
¨ Created a series of widely reproduced images on “pen
plotter” exploring cockpit design, using 3D model of human
body.
“Perhaps the best way to define computer graphics is to find out what it is not. It is not a machine. It is not a
computer, nor a group of computer programs. It is not the know-how of a graphic designer, a programmer, a
writer, a motion picture specialist, or a reproduction specialist.
Computer graphics is all these – a consciously managed and documented technology directed toward
communicating information accurately and descriptively.”
Computer Graphics, by William A. Fetter, 1966
What is Computer Graphics?
v Computer Graphics is now-a-days, a significant component of almost
all systems and applications of computers in every field of life.

3/13/2022
What is Interactive* Computer Graphics? (1/2)
¨ User controls content, structure, and appearance of objects and their displayed
images via rapid visual feedback
¨ Basic components of an interactive graphics system
¤ input (e.g., mouse, stylus, multi-touch, in-air fingers…)
¤ processing (and storage of the underlying representation/model)

¤ display/output (e.g., screen, paper-based printer,


video recorder…)

¨ First truly interactive graphics system,


Sketchpad, pioneered by Ivan Sutherland 1963 Ph.D. thesis Note CRT monitor, light
Sketchpad, A Man-Machine Graphical Communication System pen, and function-key
panels – the “organ
¨ Used TX-2 transistorized “mainframe” console” showing bi-
at MIT Lincoln Lab manual operation

* Sometimes called real-time computer graphics, and in certain 3/13/2022


contexts, real-time rendering
What is Interactive* Computer Graphics? (2/2)
¨ Almost all key elements of interactive graphics system are expressed in first
paragraph of Sutherland’s 1963 Ph.D. thesis

The Sketchpad system uses drawing as a novel communication medium for


a computer. The system contains input, output, and computation programs
which enable it to interpret information drawn directly on a computer
display. Sketchpad has shown the most usefulness as an aid to the
understanding of processes, such as the motion of linkages, which can be
described with pictures. Sketchpad also makes it easy to draw highly
repetitive or highly accurate drawings and to change drawings previously
drawn with it…

3/13/2022
What is Batch Computer Graphics?
¨ Today, we still use non-interactive batch mode (aka offline rendering) for final production-
quality video and film (special effects – FX). Rendering a single frame of Finding Dory (2016,
a 24 fps movie) averaged 53 hours on a 30,000-core render farm!

Pixar’s Render Farm


Still from Finding Dory
Statistics from https://techcrunch.com/2016/07/16/finding-a-film/
Enabling Modern Computer Graphics (1/5)
¨ Hardware revolution
¤ Moore’s Law: every 12-18 months, computer power improves
by factor of 2 in price / performance as size shrinks
¤ Newest CPUs are 64-bit with 4, 8, 16, even up to 56 cores
¤ Intel Coffee Lake – consumer processor with up to 8 cores, 16
threads, and a fully featured graphics chip built in to the
processor
¤ Significant advances in commodity graphics chips every 6 months
vs. several years for general purpose CPUs
n NVIDIA GeForce RTX 2080 Ti… 4352 cores, 11GB memory, and
14+ teraflops of processing power in a single chip CPU Core Statistics 2019
3/13/2022
NVIDIA statistics from https://www.nvidia.com/en-us/geforce/graphics-cards/rtx-2080-ti/
Enabling Modern Computer Graphics (2/5)
¨ Graphic subsystems
¤ Offloads graphics processing from CPU to chip designed for doing graphics operations quickly
¤ NVIDIA GeForce™, AMD Vega™, and Intel HD and Iris Pro Graphics
¤ GPUs originally designed to handle special-purpose graphics computations
¤ Increasingly, GPUs used to parallelize other types of computation (known as GPGPU, or General-
Purpose Computing on the Graphics Processing Unit)
¨ Hardware show and tell: NVIDIA GeForce GTX 580 Ti (2010)
¤ 512 cores, 772 MHz clock, 1.5GB memory, 49.4 billion pixels/second fill rate
¨ NVIDIA GeForce GTX 970 (2014) – still VR capable
¤ 1664 cores, 1.05 GHz clock, 4GB memory, 75 billion pixels/second fill rate
¨ NVIDIA GeForce GTX 460 (2010)
¤ 336 cores, 1.35 GHz clock, 1GB memory, 37.8 billion pixels/second fill rate

3/13/2022
Enabling Modern Computer Graphics (3/5)
¨ Input Devices
¤ Mouse, tablet & stylus, multi-touch, force feedback, and other game controllers
(e.g., JoyCon for Nintendo Switch), scanner, digital camera (images, computer
vision), etc.
¤ Body as interaction device
n http://youtu.be/zXghYjh6Gro
¤ Kinect is not as relevant anymore commercially b/c VR is more immersive

Leap Motion:
Xbox Kinect:

3/13/2022
Enabling Modern Computer Graphics (4/5)
¨ Many form factors
¤ Smartphones/laptops/desktops/tablets
¤ Smart watches
Apple iPhone Android Phones
¤ Head-mounted displays (HMDs) Tablets

n HTC Vive
¤ Augmented Reality
¤ Virtual Reality
Microsoft’s first
n AR vs VR: Different experiences! Surface Apple Watch Android Wear

Microsoft Hololens Vive Focus Oculus Rift Google Cardboard


Brown’s old Cave
3/13/2022
Digression: Augmented Reality
¨ Easily accessible AR through smartphones

¨ Advanced AR through Microsoft Hololens 2


¤ https://youtu.be/tYPlodStLTc?t=16
¤ New Trailer
¤ Live Demo

3/13/2022
Digression: Cave Redesign
¨ Old Cave:
¤4 1024 x 786 projectors on 8’ x 8’ walls (8-10 pixels per inch)
¤ Too low resolution and brightness for many applications, and got worse
(brightness, contrast deteriorated over time)
¨ New Cave:
¤ 69 projectors onto cylindrically
curved screen 8’ radius, floor, ceiling
¤ 140 million pixels
¤ Powered by a ~69 gpu cluster
¤ No right angles, up to 40 pixels per
inch (can’t see individual pixels at
normal viewing distance) Brown’s new Cave, the YURT
3/13/2022
Enabling Modern Computer Graphics (5/5)
¨ Software Improvements
¤ Algorithms and data structures
n Modeling of materials
n Rendering of natural phenomena
n “Acceleration data structures” for ray tracing and other renderers
¤ Parallelization
n Most operations are embarrassingly parallel: calculating value of one pixel
is often independent of other pixels
¤ Distributed and Cloud computing
n Send operations to the cloud, get back results, don’t care how
n Rendering even available as internet service!

3/13/2022
Environmental Evolution (1/5)
¨ Character Displays (1960s – now)
¨ Display: text plus alphamosaic pseudo-graphics (ASCII art)
¨ Object and command specification: command-line typing
¨ Control over appearance: coding for text formatting
(.p = paragraph, .i 5 = indent 5)
¨ Application control: single task

3/13/2022
Environmental Evolution (2/5)

¨ Vector (Calligraphic, Line Drawing)


¨ 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, distributed computing pioneered

3/13/2022
Environmental Evolution (3/5)
¨ 2D bitmap raster displays for PCs and workstations
(1972 at Xerox PARC - now)
¨ Display: windows, icons, legible text, “flat earth” graphics Above, a classic WIMP
¤ Note: late 60’s saw first use of raster graphics, especially for interface. The
flight simulators technology, at its core,
¨ Minimal typing via WIMP GUI (Windows, Icons, Menus, remains largely the
Pointer): point-and-click selection of menu items and objects, same today. Below, a
direct manipulation (e.g., drag and drop), “messy desktop”
metaphor modern WIMP
interface.
¨ Control over appearance: WYSIWYG (which is really
WYSIAYG, What You See Is All You Get – not pixel-accurate
or controllable)
¨ Application control: multi-tasking, networked client-server
computation and window management (even “X terminals”) 3/13/2022
Environmental Evolution (4/5)

¨ 3D graphics workstations (1984 at SGI – now)


¤ could cost up to $1M for high-end!
¨ Display: real-time, pseudo-realistic images of 3D scenes
¨ Object and command specification: 2D, 3D and N-D input
devices (controlling 3+ degrees of freedom) and force
feedback haptic devices for point-and-click, widgets, and
direct manipulation
Graphics workstations such as
¨ Control over appearance: WYSIWYG (still WYSIAYG) these have been replaced with
¨ Application control: multi-tasking, networked commodity hardware (CPU +
(client/server) computation and window management GPU),
e.g., our MaxBuilts + NVIDIA
cards
3/13/2022
Environmental Evolution (5/5)
¨ High-end PCs with hot graphics cards (NVIDIA GeForce™, AMD Vega™)
have supplanted graphics workstations
¨ Such PCs are clustered together over
high speed buses or LANs to provide
“scalable graphics” to drive tiled
PowerWalls, CAVEs, etc.
¨ Also build GPU-clusters as number crunchers,
e.g., protein folding, weather prediction, machine learning
¤ Now accessible to consumers via
technologies like NVIDIA’s
SLI (Scalable Link Interface) bridge
SLI Image from http://www.overclock.net/t/1606562/official-nvidia-titan-x-pascal-owners-thread/3410
3/13/2022
Graphics Display Hardware
Vector (calligraphic, stroke, random- Raster (TV, bitmap, pixmap) used in
scan) displays and laser printers
¨ Driven by display commands ¨ Driven by array of pixels (no semantics,
¤ (move (x, y), char(“A”) , line(x, y)…)
lowest form of representation)
¨ Note “jaggies” (aliasing errors) due to
¨ Survives as “scalable vector graphics” discrete sampling of continuous primitives

Ideal Vector
Drawing Drawing Outline Filled
Typical Graphics System
Typical graphics system comprises of a host computer with support of
fast processor, large memory, frame buffer and
v Display devices (color monitors),

v Input devices (mouse, keyboard, joystick, touch screen, trackball)

v Output devices (LCD panels, laser printers, color printers. Plotters etc.)

v Interfacing devices such as, video I/O, TV interface etc.

3/13/2022
Conceptual Framework for Interactive Graphics
Software Hardware

Graphics
System/
Application Graphics GPU
Application
Model / database program Library
¨ Graphics library/package is intermediary between application and display
hardware (Graphics System)
¨ Application program maps application objects to views (images) of those
objects by calling on graphics library. Application model may contain lots of
non-graphical data (e.g., non-geometric object properties)
¨ User interaction results in modification of image and/or model
¨ This hardware and software framework is 5 decades old but is still useful
3/13/2022
Graphics Library
¨ Examples: OpenGL™, DirectX™, Windows Presentation Foundation™
(WPF) accessed via XAML, RenderMan™, HTML5 + WebGL™
¨ Primitives (characters, lines, polygons, meshes,…)
¨ Attributes
¤ Color, line style, material properties for 3D
¨ Lights
¨ Transformations
¨ Immediate mode vs. retained mode
¤ immediate mode: no stored representation, package holds only
attribute state, and application must completely draw each frame
¤ retained mode: library compiles and displays from scenegraph that it
maintains, a complex DAG. It is a display-centered extract of the
Application Model 3/13/2022
Typical Application Areas
¨ Typical applications areas of CG are
v GUI
v Plotting in business
v Office automation
v Desktop publishing
v Plotting in science and technology
v Web/business/commercial publishing and advertisements

3/13/2022
Typical Application Areas
v CAD/CAM design (VLSI, Construction, Circuits)
v Scientific Visualization
v Entertainment (movie, TV Advt., Games etc.)
v Simulation studies
v Simulators
v Cartography
v Multimedia
v Virtual reality

3/13/2022
Typical Application Areas
v Process Monitoring
v Digital Image Processing
v Education and Training

3/13/2022
Application packages and standards
v Various application packages and standards are available:
v Core graphics
v GKS

v SRGP

v PHIGS, SPHIGS and PEX 3D

v OpenGL (with ActiveX and Direct3D)

v X11-based systems.

3/13/2022
Platforms
o DOS, Windows,
o Linux, OS/2,
o SGI, SunOS,
o Solaris, HP-UX,
o Mac, DEC-OSF.

3/13/2022
Utilities and Tools
v Various utilities and tools available for web-based design include:
Java, XML, VRML and GIF animators.
v Certain compilers, such as, Visual C/C++, Visual Basic, Borland
C/C++, Borland Pascal, Turbo C, Turbo Pascal, Gnu C/C++, Java
provide their own graphical libraries, API, support and help for
programming 2-D/3-D graphics.
v Some these systems are
v device-independent (X11, OpenGL )
v device-dependent (Solaris, HP-AGP ).
3/13/2022
Basic output primitives
v Four basic output primitives (or elements) for drawing pictures:
v POLYLINE
v Filled POLYGONS (regions)

v ELLIPSE (ARC)

v TEXT

v Raster IMAGE

3/13/2022
Major areas of Computer Graphics
v Four major areas of Computer Graphics are:
v Display of information,
v Design/Modeling,

v Simulation and

v User Interface.

3/13/2022
Application Distinctions: Two Basic Paradigms
Sample-based graphics vs Geometry-based graphics

3/13/2022
Sample-based Graphics (1/3)
¨ Sample-based graphics: Discrete samples
are used to describe visual information
¤ pixels can be created by digitizing images,
using a sample-based “painting” program,
etc.
¤ often some aspect of the physical world is
sampled for visualization, e.g., temperature
across a given country
¤ example programs: Adobe Photoshop™,
GIMP™ , Adobe AfterEffects™

3/13/2022
Sample-based Graphics (2/3)
¨ Pixels are point locations with associated sample values, usually of light
intensities/colors, transparency, and other control information
¨ When we sample an image, we sample the point location along the continuous
signal and we cannot treat the pixels as little circles or squares, though they may
be displayed as such
CRT* beam illumination pattern
light intensity

1 pixel
Visualization of a Can’t visually resolve
mathematical pixel grid LCD display adjacent pixels on CRT

* Cathode Ray Tube, like those really old TVs


Sample-based Graphics (3/3)

¨ Samples created directly in Paint-type program, or by sampling of continuous (analog) visual materials
(light intensity/color measured at regular intervals) with many devices including:
¤ flatbed and drum scanners
(e.g., https://luminous-landscape.com/drum-scans/ )

¤ digital still and motion (video) cameras

¨ Sample values can also be input numerically (e.g., with numbers from computed dataset)
¨ Once an image is defined as pixel-array, it can be manipulated
¤ Image editing: changes made by user, such as cutting and pasting sections, brush-type tools, and processing
selected areas
¤ Image processing: algorithmic operations that are performed on image (or pre-selected portion of image) without
user intervention. Blurring, sharpening, edge-detection, color balancing, rotating, warping. These are front-end
processes to Computer Vision, Computational Photography 3/13/2022
Sampling an Image
¨ Example of sampling of a building

3D scene
¨ A color value is measured at every grid point and used to color corresponding grid
square 0 = white, 5 = gray, 10 = black

¨ Crude sampling and image reconstruction method creates blocky image


3/13/2022
What’s the Advantage?
¨ Once image is defined in terms of colors at (x,
y) locations on grid, can change image easily
by altering location or color values
¨ E.g., if we reverse our mapping above and
make 10 = white and 0 = black, the image
would look like this:
¨ Pixel information from one image can be
copied and pasted into another, replacing or
combining with previously stored pixels

3/13/2022
What’s the Disadvantage?
¨ WYSIAYG (What You See Is All You Get): No additional
information
¤ No depth information; depth sensors can be used in conjunction
¤ Can’t examine scene from different point of view
¤ At most can play with the individual pixels or groups of pixels
to change colors, enhance contrast, find edges, etc.
¤ But increasingly great success in image-based rendering to
fake 3D scenes and arbitrary camera positions. New images
constructed by interpolation, composition, warping and other
operations.

“Scene Reconstruction from High Spatio-Angular Resolution


Light Fields” by Kim, Zimmer et al., 2013
Geometry-Based Graphics (1/2)
¨ Geometry-based graphics (also called scalable
vector graphics or object-oriented graphics):
geometrical model is created, along with various
appearance attributes, and is then sampled for
visualization (rendering, a.k.a image synthesis)
¤ often some aspect of physical world is visually
simulated, or “synthesized”
¤ examples of 2D apps: Adobe Illustrator™ and Corel
CorelDRAW™
¤ examples of 3D apps: Autodesk’s AutoCAD™,
Autodesk’s (formerly Alias|Wavefront’s) Maya™,
Autodesk’s 3D Studio Max™
3/13/2022
Geometry-Based Graphics (2/2)
¨ Geometry-based graphics applications
¤ Store mathematical descriptions, or “models,” of geometric elements (lines,
polygons, polyhedrons, polygonal meshes…) and associated attributes (e.g., color,
material properties).
¤ Geometric elements are called primitive shapes, primitives for short.
¤ Images are created via sampling of geometry for viewing, but not stored as part
of model.
¤ Users cannot usually work directly with individual pixels in geometry-based
programs; as user manipulates geometric elements, program resamples and
redisplays elements
¨ Increasingly, rendering combines geometry- and sample-based graphics,
both as performance hack and to increase quality of final product
¤ CG animated characters (geometry) on painted or filmed scene images (samples)
3/13/2022
What is Geometric Modeling?
¨ What is a model?
¨ Captures salient features (data, behavior) of object/phenomenon being modeled
¤ data includes geometry, appearance, attributes…
¤ note similarity to OOP ideas
¨ Modeling allows us to cope with complexity
¨ Our focus: modeling and viewing simple everyday objects
¨ Consider this:
¤ Through 3D computer graphics, we have abstract, easily changeable 3D forms, for the first
time in human history
n Has revolutionized working process of many fields – science, engineering, industrial design,
architecture, commerce, entertainment, etc. Profound implications for visual thinking and visual
literacy
n “Visual truth” is gone in the Photoshop and FX-saturated world (but consider painting and
photography…) – seeing no longer is believing…(or shouldn’t be!)
3/13/2022
Modeling vs. Rendering
} Rendering
¨ Modeling
¤ Create models Take “picture” with camera
¤ Apply materials to models } Both can be done with commercial software:
¤ Place models around scene
¤ Place lights in scene Autodesk MayaTM ,3D Studio MaxTM, BlenderTM, etc.
¤ Place the camera

Point Light
Spot
Light
Directional Light
Ambient
Light

3/13/2022
Decomposition of a Geometric Model
¨ Divide and Conquer
¨ Hierarchy of geometrical components
¨ Reduction to primitives (e.g., spheres, cubes, etc.)
¨ Simple vs. not-so-simple elements (nail vs. screw)

Head
Shaft
Point
composition decomposition

3/13/2022
Hierarchical (Tree) Diagram of Nail
¨ Object to be modeled is (visually) analyzed, and then decomposed into collections of
primitive shapes.
¨ Tree diagram provides visual method of expressing “composed of” relationships of model

Nail root node


Head Body
(cylinder)
Shaft Point leaf nodes
(cylinder) (cone)
tree diagram
¨ Such diagrams are part of 3D program interfaces (e.g., 3D Studio MAX, Maya)
¨ As a data structure to be rendered, it is called a scenegraph

3/13/2022
Composition of a Geometric Model
Translate
Scale and Translate

Rotate and Translate

Primitives Composition
in their own modeling in world (root)
coordinate system coordinate system

¨ Primitives created in decomposition process must be assembled to


create final object. Done with affine transformations, T, R, S (as in
above example). Order matters – these are not commutative!
3/13/2022
APPLICATION AREAS OF COMPUTER GRAPHICS

Computer-Aided Design (CAD or CADD, Computer-aided drafting and design)


v Computers have become a powerful tool
for the rapid and economical production of
pictures. There is virtually no undertaking in
which graphical displays cannot be used to
some advantage, and so it is not surprising
to find the use of computer graphics so
widespread.
APPLICATION AREAS OF COMPUTER GRAPHICS

CAM (Computer-Aided Manufacturing)


APPLICATION AREAS OF COMPUTER GRAPHICS

Virtual Reality Environments Data Visualization


APPLICATION AREAS OF COMPUTER GRAPHICS

Education and Training


Education and Training
APPLICATION AREAS OF COMPUTER GRAPHICS

Education and Training Entertainment


In Summary
¨ Computer graphics involves both real-time / interactive applications and batch / offline
applications
¤ Both equally important, but different use cases
¨ Photo-realism has really advanced
¤ But it still takes dozens of hours on fastest computers to mimic physics of photons interacting with physical
environments
¨ Hardware evolution from vector to raster graphics
¤ Vector graphics survives as Scalable Vector Graphics, which transforms without artifacts
¨ Geometry-based vs. image-based graphics
¤ Mathematical definition vs. pixel manipulation
¨ Pixels are discrete samples of continuous functions
¤ Causes artifacts (“jaggies”/ “aliases”) to appear (we will study fixes – “anti-aliasing” thru filtering)
¨ Geometric models typically constructed hierarchically
¤ Scene graph data structure

3/13/2022

You might also like