You are on page 1of 55

Technology and Historical Overview

Introduction to 3D Computer Graphics


OpenGL
SGI vs Linux
3D Animation
Terrain Modeler: Project Status
3D computer graphics is the science, study,
and method of projecting a mathematical
representation of 3D objects onto a 2D image
using visual tricks such as perspective and
shading to simulate the eye's perception of
those objects.
3D graphic software is largely based on
simulating physical interactions.

Generally:
Space relations.
Light interactions.

In particular cases:
Material properties.
Object Movement.
Practical goal:
Visualization - to generate images
(usually of recognizable subjects) that are
useful in some way.

Ideal goal:
Photorealism - to produce images
indistinguishable from photographs.
3D Modeling:
A way to describe the 3D world or scene, which is
composed of mathematical representations of 3D
objects called models.

3D Rendering:
A mechanism responsible for producing a 2D
image from 3D models.
Simple 3D objects can be modeled using
mathematical equations operating in the 3-
dimensional Cartesian coordinate system.
Example:
the equation x
2
+ y
2
+ z
2
= r
2
is a model of a perfect
sphere with radius r.
Pure mathematical equations to represent 3D
objects requires a great deal of computing power
Impractical for real-time applications such as games
or interactive simulations.
Modeling objects by sampling only certain points on
the object, retaining no data about the curvature in
between
More efficient, but less detailed.
Technique used to add
surface color detail
without increasing the
complexity of a model.

An image is mapped to
the surface of a model.
A 3D world or scene is composed of
collection of 3d models
Three different coordinates systems (or
spaces) are defined for different model
related operations:
Object Space
World Space
Screen Space
The coordinate system in which a specific 3D
object is defined.

Each object usually have its own object space
with the origin at the object's center

The object center is the point about which
the object is moved and rotated.
World space is the coordinate system of the
3D world to be rendered.

The position and orientation of all the models
are defined relative to the center of the world
space.

The position and orientation of the virtual
camera is also defined relative to the world
space.
2D space that represents the boundaries of
the image to be produced.

Many optimization techniques are performed
on screen space.

3D operations like translation, rotation and
scaling are performed using matrices and
lineal algebra.

Each operation is performed by multiplying
the 3D vertices by a specific transformation
matrix.
The process of taking the mathematical model of
the world and producing the output image.
The core of the rendering process involves
projecting the 3D models onto a 2D image plane.
Two general approaches:

Pixel-oriented rendering:
Ray tracers

Polygon-oriented rendering:
Scan-line renderers

Operates by tracing
theoretical light rays
as they intersect
objects in the scene
and the projection
plane.

Processor intensive. A full ray tracer is
impractical for real-time applications.
Does not take into account inter-reflections
of diffuse light, resulting in hard shadows.

Technique that models the inter-reflections
of diffuse light between surfaces of the world
or environment.
Produces more photorealistic illumination
and shadows.
Operate on an object-by-object basis, directly
drawing each polygon to the screen.
Requires all objects including those modeled
with continuous curvature to be tessellated into
polygons.
Polygons are eventually tessellated into pixels.

Lighting and shading is calculated
using the normal vector.
The color is linearly interpolated across
the polygon surface.

Flat shading

Gouraud Shading

Phong Shading

The color of the polygon is calculated at the
center of the polygon by using the normal
vector.
The complete polygon surface is uniformly
lighted.

A normal vector is calculated at each vertex.
Color is calculated for each vertex and
interpolated across the polygon
The normal vectors are interpolated
across the surface of the polygon
The color of each point within the
polygon is calculated from its
corresponding normal vector
Segment of the 3D world to be rendered
Objects outside the viewing volume are
ignored.
Not all objects inside the viewing frustum are
always visible from the point of view of the camera.

Not all polygons of a particular object are visible
from the point of view of the camera.

Common Techniques
Painters Algorithm
Z-Buffering

Polygon-oriented.
All the polygons are sorted by their depth and
then displayed in this order.
Pixel-oriented.
When multiple objects overlap
(from the point of view of the
camera) on a particular pixel, only
the value of the pixel closest to
the camera is used.
Implemented by saving the depth
value of each displayed pixel in a
buffer, and comparing the depth
of each new overlapping pixel
against the value in the buffer.
Projects the 3D world to a 2D image




The Open Graphics Language
De facto Application Programming Interface
(API) for cross-platform development of 3D
graphics applications.
Implementations available for all major
Operating Systems and hardware platforms.
Support for hardware accelerated 3D
rendering.
Scalable, high-level, easy to use, well
documented.
Originally released by SGI in the early 90s.
Descendant of IRIX GL.
Previous 3D graphics APIs were generally
platform dependant.
Born out of market pressure for a cross-
platform 3D API during the late 80s.



How to define a triangle:

glBegin (GL_TRIANGLES);
glVertex (0,0,0);
glVertex (1,1,0);
glVertex (2,0,0);
glEnd ();
OpenGL API designed only for drawing
images.

Auxiliary visual toolkits are required for
developing OpenGL applications for modern
windowed desktop environments.

Potential options:
GLUT, SDL, GTK+
GLUT: Specifically designed for developing
OpenGL demo applications.
SDL (Simple DirectMedia Layer): Library for
multimedia and game development.
GTK+: General purpose toolkit for creating
graphical user interfaces with OpenGL
extensions available.








VS
Linux is quickly becoming the preferred OS
for OpenGL and 3D computer graphics
development.

Today Linux dominates one of SGIs most
controlled market: Movie Special Effects.

Why?

Special effects production pipeline involves:

The graphic workstation Used by the artists to
create the models and textures used in the visual
effects sequence.

The render-farm A computer cluster dedicated
for rendering the images or animations that form
the visual effect sequence.


SGI dominated the market of 3D graphics solutions
during the 80s and 90s.

SGI hardware provided excellent performance for
rendering calculations combined with a fast video
subsystem.

The computer special effects market was locked-in
to SGIs hardware.

Most of the 3D rendering software was developed
for IRIX (SGIs UNIX OS).

SGIs workstations are expensive.

Historically FX houses purchased large
amount of SGIs, which were amortized over
several movies (usually 5 years).
Causes:
The development of Linux (an open source UNIX
clone for the PC) during the 90s.

The continuous performance increase of the Intel
CPUs.

The development of consumer-level 3D
acceleration hardware for the PC driven by the
growing video game market.
Lintel platform provides a higher
cost/performance ratio.

Linux is a POSIX complaint UNIX clone,
porting the software from IRIX is trivial.

Linux is open-source and runs in multiple-
architectures which greatly limits the
possibility of vendor lock-in.


Using Lintel, a large portion of the hardware
costs can be recouped with every movie.

Buying a new render-farm for each new
movie is economically viable.
Initially Linux was used for render-farm.

Now it is used for the graphic workstation as
well.

It is even displacing Apple computers as the
standard platform for video/film editing and
compositing.
Movies created using Lintel:
Titanic
Star Wars Prequel Trilogy
The Harry Potter Movies
The Lord of the Rings Trilogy
Shrek and Shrek 2
Practically every movie involving special-effects
made after the year 2000




The Lintel cost/performance also benefits the
academic/scientific applications of 3D
computer graphics.

Heavily used in automotive and aeronautics
industries for solid modeling and simulations.

The first film produced by Pixar in 1986.
It demonstrates the use of ray tracing to
simulate the shifting light and shadow given
by the animated lamps as well as simple
surface textures.
It was the first CGI film to be nominated for
an Academy Award.

16 years after the debut of Luxo Jr., Steve Jobs
demonstrated the same animation running in real-
time on a Apple G5 computer with an Nvidia
Geforce 3 GPU (Graphics Processor Unit).
On 1985 - Rendering each frame of the original
animation took 55 hours of processing on a Cray
Supercomputer
On 2001 Rendering each frame took 1/30 of a
second on a personal computer



Rendering 2D/3D
First Project
Frame
Buffer
Object
2D
Frame
Buffer
Object
3D
Wikipidia The Free Encyclopedia
http://www.wikipedia.org/
OpenGL - The Industry Standard for High Performance
Graphics
http://www.opengl.org/
Google Image Search
http://images.google.com
Overview of 3D Interactive Graphics
http://www.siggraph.org/project-grants/com97/com97-tut.html
Linux Journal - Industry of Change: Linux Storms Hollywood
http://www.linuxjournal.com/article/5472
3D Graphics Rendering and Terrain Modeling, Ricardo
Veguilla

You might also like