Anda di halaman 1dari 40

Fundamentals of Computer Graphics

Part 1
prof.ing.Vclav Skala, CSc.
University of West Bohemia
Plze, Czech Republic
2002
Prepared with Angel,E.: Interactive Computer
Graphics A Top Down Approach with OpenGL,
Addison Wesley, 2001

Graphics Systems
Five major elements - processor, memory,
frame buffer, output devices, input devices

Fundamentals of Com

Pixels and Frame Buffer


Most graphics systems are pixel based need of rasterization or
scan conversion; pixel = picture element
8 bits deep frame 256 colors; 24 or 32 bits for RGB colors

picture detail
Fundamentals of Com

Output Devices
The cathode-ray tube CRT

Fundamentals of Com

Output Devices
RGB shadow mask

Fundamentals of Com

Output Devices
Refresh rate: 50 85 Hz, for stereovision 120Hz (2 x60 Hz)
Mode: interlaced versus non-interlaced
Masks: DELTA versus INLINE
LCD Displays raster based
Raster devices
sequential access - plotters etc.
direct access displays etc.
mixed inkjet printers printed sequentially, accessed directly

Fundamentals of Com

Fundamentals of Computer Graphics


Images Physical versus Synthetic
Computer graphics generates pictures with the aim of:
to create realistic images
to create images very close to traditional imaging methods

Fundamentals of Com

Objects and Viewers


Two basic entities (one object seen from two different positions) :
object(s) exists in space independent of any image-formation process
or viewer
viewer(s)

Fundamentals of Com

Objects, Viewers & Camera


Camera system
object and viewer exist in E3
image is formed
in the Human Visual system
(HSV) on the retina
In the film plane if a camera
is used

Object(s) & Viewer(s) in E3


Pictures in E2

Transformation from E3 to E2
projection
Fundamentals of Com

Lights & Images


Others attributes:
light sources
position
monochromatic / color

if not used scene would be


very dark and flat
shadows and reflections - very
important for realistic
perception
geometric optics used for light
modeling

Fundamentals of Com

10

Colours
Light is a form of
electromagnetic radiation
Visible spectrum 350 780 nm

Fundamentals of Com

11

Ray Tracing
Ray tracing
building an imaging model by
following light from a source
a ray is a semi-infinite line
that emanates from a point
and travels to infinity in a
particular direction
portion of these infinite rays
contributes to the image on
the film plane of the camera

surfaces:
diffusing
reflecting
refracting

Fundamentals of Com

12

Ray Tracing
A different approach must be used:
for each pixel intensity must be
computed
all contributions must be taken
into account
a ray is followed in the
opposite direction, when
intersect a surface it is split into
two rays
contribution from light sources
and reflection from other
resources are counted

Fundamentals of Com

13

Human Visual System

- HVS

rods and cones (tyinky a pky) excited by electromagnetic


energy in the range 350-780 nm
sizes of rods and cones determines the resolution of HVS our
visual acuity
the sensors in the human eye do not react uniformly to the light
energy at different wavelengths
Fundamentals of Com
14

Human Visual System - HVS

Courtesy of http://www.webvision.med.utah.edu/into.html

Fundamentals of Com

15

Human Visual System


different HVS response for single
frequency light red/green/blue
relative brightness response at
different frequencies
this curve is known as
Commision Internationale de
LEclairage (CIE) standard
observer curve
the curve matches the sensitivity
of the monochromatic sensors used in
black&white films and video camera
most sensitive to GREEN colors
Fundamentals of Com

16

Human Visual System


three different cones in HVS
blue, green & yellow often
reported as red for compatibility
with camera & film

Fundamentals of Com

17

Pinhole Camera
Box with a small hole
film plane z = - d
y
yp
z
d
x
xp
z
d
!!!yp,-d

Fundamentals of Com

18

Pinhole Camera
point (xp,yp,-d)
projection of the
point (x,y,z)
angle of view or field
of the camera
angle
ideal camera
infinite depth of
field

h
2 arctan
2d

Fundamentals of Com

19

Synthetic Camera Model


computer-generated image based
on an optical system
Synthetic Camera Model
viewer behind the camera can
move the back of the camera
change of the distance d
i.e. additional flexibility
objects and viewer specifications
are independent different
functions within a graphics
library
Fundamentals of Com

Imaging system

20

Synthetic Camera Model

a situation with a camera


b mathematical model image plane moved in front of the camera
center of projection center of the lens
projection plane film plane (prmtna)
Fundamentals of Com

21

Synthetic Camera Model


Imaging with the Synthetic Camera
Model
film plane position in a camera
projected scene to the projection
plane

Fundamentals of Com

22

Synthetic Camera Model


Not all objects can be seen
limit due to viewing angle
Solution:
Clipping rectangle or clipping
window placed inn front of
the camera
ad b shows the case when the
clipping rectangle is shifted
aside only part of the the
scene is projected

Fundamentals of Com

23

Programmers Interface
Numerous ways for user
interaction with a graphics
system using input devices
- pads, mouse, keyboards
etc.
different orientation of
coordinate systems
canvas versus OpenGL etc.

Fundamentals of Com

24

Application Programmers Interface

API functionality should


Functionality needed in the
match the conceptual
API to specify:
model
Objects
Synthetic Camera Model
Viewers
used for APIs like
Light sources
OpenGL, PHIGS, Direct
Material properties
3D, Java3D, VRML etc.
Fundamentals of Com
25

Application Programmers Interface


Objects are defined by
points or vertices, line
segments, polygons etc. to
represent complex objects
API primitives are
displayed rapidly on the
hardware
usual API primitives:

points
line segments
polygons
text

Fundamentals of Com

26

Application Programmers Interface


OpenGL defines primitives through list of vertices triangular
polygon is drawn by:
glBegin(GL_POLYGON);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(0.0, 1.0, 0.0);
glVertex3f(0.0, 0.0, 1.0);
glEnd( );
attribute GL_POLYGON actually defines the primitive to be
drawn others
GL_LINE_STRIP - draws a strip
n+1 points define n triangles
GL_POINTS draws only points

Fundamentals of Com

27

Application Programmers Interface


Some APIs :
work with frame buffer read/write pixel level
provides curves & surfaces / approximated by a
series of simpler primitives
OpenGL provides frame buffer, curves and surfaces

Fundamentals of Com

28

Application Programmers Interface


Camera specification in APIs:
position usually center of lens
orientation camera coordinate
system in center of lens
camera can rotate around those
three axis
focal length of lens determines
the size of the image on the film
actually viewing angle
film plane - camera has a height
and a width

Fundamentals of Com

29

Application Programmers Interface

Two coordinate systems are used:


world coordinates, where the object is defined
camera coordinates, where the image is to be produced
Transformation for conversion between coordinate systems or
gluLookAt(cam_x, cam_y,cam_z, look_at_x, look_at_y, look_at_z,)
glPerspective( field_of_view)
Lights location, strength, color, directionality
Material properties are attributes of objects
Observed visual properties of objects are given by material and light properties

Fundamentals of Com

30

Modeling - Rendering Paradigm

In many applications the modeling is separated from production


of an image rendering (CAD systems, animations etc.)
In this case the modeling SW/HW might be different from the
renderer
the connection between both parts can be simple or highly
complex using distributed environments
Fundamentals of Com

31

Graphics Architectures

Early graphics systems CRT had just basic capability to


generate line segments connecting two points
vector based with refreshing length of line segments limited
light pen often used for manipulation
systems with memory CRT the whole picture redrawn if
changed
Fundamentals of Com

32

Graphics Architectures

Display processors
standard architecture with capabilities to display primitives
composition made at the host
memory display list contains primitives to be displayed.
Fundamentals of Com

33

Pipeline Architectures

VLSI circuits enabled major advances in graphics architectures


- simple arithmetic pipeline a + b * c
- when addition of (b * c) and a is performing new b * c is
computed in parallel pipelining enabled significant speed up
- similar approach can be used for processing of geometric
primitives as well
Fundamentals of Com

34

Pipeline Architectures

There are 4 major steps in the geometric pipeline:


transformations like scaling, rotations, translation, mirroring,
sheering etc.
clipping removal of those parts that are out of the viewing
field
projection
rasterization
homogeneous coordinates and matrix operations geometric
transformations are used
Fundamentals of Com

35

Clipping, Projection & Rasterization


Clipping is used to remove those parts of the world that cannot
be seen.
Objects representation is kept in 3D as long as possible.
After transformation and clipping must be projected to 2D
somehow
projected objects or their parts must be displayed and
therefore rasterized.
All those steps are performed on your graphics cards in haerware
nowadays.

Fundamentals of Com

36

Conclusion
Consider a standard camera with 36x24 mm film and having a
zoom 26 140mm. How the viewing angle or viewing field is
defined.

what is the difference in viewing between cases a) and b)?


answer question from Chapter 1
Fundamentals of Com

37

Exercise No.1
The aim of the first experiment is:
to read data of a complex geometric model defined
by the TRI format (routine for reading will be given)
to store it in the data structure
to display the model as a set of triangles as wiremodel (without shading, visibility)
to explore other possibilities of drawing
visible parts only by
with constant shading

by setting some attributes


to explore a possibility to create your own data
model

Fundamentals of Com

38

Exercise No.1 TRI format


#
#
#
#

(data originally from powerflip, not avalon)


Object name : --- The canonical cow --Number of triangles : 5804
Number of vertices : 2905

[Vertices]
0.0 0.0 0.0
0.151632 -0.043319 -0.08824
vertex
0.163424 -0.033934 -0.08411
0.163118 -0.053632 -0.080509

x,y,z coordinates of the j-th

Fundamentals of Com

39

Exercise No.1 TRI format


[Triangles]
123
245
546
..

vertex indices forming the i-th triangle

[Triangles' Normals]
0.442 -0.167 -0.881 i-th normal vector for the i-th triangle
0.595 -0.088 -0.798
0.735 -0.093 -0.671
..

Fundamentals of Com

40