100% found this document useful (2 votes)
1K views59 pages

3D Graphics Rendering

This document provides an overview of 3D computer graphics and terrain modeling. It discusses the history and components of 3D graphics like modeling, rendering, and projections. Specific topics covered include OpenGL, the differences between SGI and Linux platforms, and how the movie special effects industry migrated from proprietary SGI systems to more open and affordable Linux/Intel solutions.

Uploaded by

Anurag Tiwari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
1K views59 pages

3D Graphics Rendering

This document provides an overview of 3D computer graphics and terrain modeling. It discusses the history and components of 3D graphics like modeling, rendering, and projections. Specific topics covered include OpenGL, the differences between SGI and Linux platforms, and how the movie special effects industry migrated from proprietary SGI systems to more open and affordable Linux/Intel solutions.

Uploaded by

Anurag Tiwari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 59

3D Graphics Rendering and Terrain

Modeling
Technology and Historical Overview
By Ricardo Veguilla
Overview
Introduction to 3D Computer
Graphics
OpenGL
SGI vs Linux
3D Animation
Terrain Modeler: Project Status
Introduction to 3d
Computer Graphics
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 Graphics and Physics
3D graphic software is largely
based on simulating physical
interactions.

Generally:
Space relations.
Light interactions.

In particular cases:
Material properties.
Object Movement.
Goals of 3D computers
graphics
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.
Components of a 3D
Graphic System
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.
3D Modeling
Simple 3D objects can be modeled using
mathematical equations operating in the 3-
dimensional Cartesian coordinate system.
Example:

the equation x2 + y2 + z2 = r2
is a model of a perfect
sphere with radius r.
Modeling considerations
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.
Alternatives: Polygon
Models
Modeling objects by sampling only
certain points on the object, retaining
no data about the curvature in
between
More efficient, but less detailed.
Alternatives: Texture
Mapping
Technique used to
add surface color
detail without
increasing the
complexity of a
model.

An image is mapped
to the surface of a
model.
From 3D models to 2D
images
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
Object 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
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.
Screen Space
2D space that represents the
boundaries of the image to be
produced.

Many optimization techniques


are performed on screen space.
Mathematics of 3D graphics
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.
3D Rendering
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.
Types of Rendering
Algorithms
Two general approaches:

Pixel-oriented rendering:
Ray tracers

Polygon-oriented rendering:
Scan-line renderers
Ray tracers
Operates by
tracing
theoretical light
rays as they
intersect objects
in the scene and
the projection
plane.
Ray tracer limitations
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.
Radiosity
Technique that models the inter-
reflections of diffuse light
between surfaces of the world or
environment.
Produces more photorealistic
illumination and shadows.
Scan-line renderers
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.
Illumination for scan-line
renderers
Lighting and shading is
calculated using the normal
vector.
The color is linearly interpolated
across the polygon surface.
Common shading
techniques scan-line
renderer
Flat shading

Gouraud Shading

Phong Shading
Flat 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.
Gouraud Shading
A normal vector is calculated at
each vertex.
Color is calculated for each
vertex and interpolated across
the polygon
Phong Shading
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
Polygon shading techniques
compared
Viewing frustum
Segment of the 3D world to be
rendered
Objects outside the viewing
volume are ignored.
Hidden surface
determination
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
Painters Algorithm
Polygon-oriented.
All the polygons are sorted by
their depth and then displayed in
this order.
Z-Buffering
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.
Perspective Projection
Projects the 3D world to a 2D
image
The Open Graphics Language
OpenGL 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.
History of OpenGL
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.
OpenGL - Code Example
How to define a triangle:

glBegin (GL_TRIANGLES);
glVertex (0,0,0);
glVertex (1,1,0);
glVertex (2,0,0);
glEnd ();
Development with OpenGL
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+
Potential Auxiliary Toolkits
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.
SGI vs Linux

VS
SGI vs Linux
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?
SGI and Hollywood
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.
SGIs Market dominance
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).
SGI economics
disadvantages
SGIs workstations are
expensive.

Historically FX houses purchased


large amount of SGIs, which were
amortized over several movies
(usually 5 years).
The rise of Lintel
(Linux+Intel)
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.
Why the switch to Lintel?
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.
Lintel economic benefits

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.
Not just for the render-farm
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.
Results?
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
Lintel on other 3D graphics
areas.
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.
3D Animation
Luxo Jr.
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.
Luxo Jr. Returns
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
Terrain Modeler
Project Status
Previously implemented
features
Application developed in C and
tested exclusively on SGI.
Terrain image loading tested with a
201x201 Matlab generated input
file.
Terrain Modeling with OpenGL using
points or unshaded polygons.
Fixed camera.
Terrain rotation and scaling.
Limited option for Level-of-detail
(LOD) rendering.
Newly Implemented
Features
Support for Autotools for cross-
platform development (currently
tested on SGI and Linux).
Code modularization and
refactoring.
Full virtual camera.
Memory Manager subsystem for
monitoring memory utilization.
Preliminary Lighting support.
Preliminary support for rendering
multiple terrains.
Future Improvements
Full windowed application.
Support for screen captures.
Support for Land-marking (3D
bookmarks)
Support for animation scripting
and recording.
Support for simultaneous
rendering of multiple terrains.
Future Improvements
(Cont.)
Restructure code to accommodate
three module abstraction layers:
IO Layer Modules for reading and
writing terrain files of different formats.
Sampling Layer Modules implementing
different LOD algorithms with user-
selected sampling value.
Rendering Layer Modules for rendering
the terrain using different OpenGL
primitives, rendering attributes and
vendor-optimized code paths.
Long-term
Porting the project to Jogl: Java
OpenGL

http://java.sun.com/products/jfc/tsc/articles/jcanyo
n/
References:
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
JCanyon - Grand Canyon Demo
http://java.sun.com/products/jfc/tsc/articles/jcanyo
n/

You might also like