3D Graphics Rendering

Download Report

Transcript 3D Graphics Rendering

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 interreflections of diffuse light, resulting in
hard shadows.

Radiosity
Technique that models the interreflections 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
 Phong
Shading
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
Painter’s 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 SGI’s
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.
SGI’s 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 SGI’s hardware.

Most of the 3D rendering software was
developed for IRIX (SGI’s UNIX OS).
SGI economics disadvantages

SGI’s 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 renderfarm.

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 specialeffects 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 crossplatform 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 userselected 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/jcanyon/
References:

Wikipidia – The Free Encyclopedia


OpenGL - The Industry Standard for High
Performance Graphics


http://www.siggraph.org/project-grants/com97/com97tut.html
Linux Journal - Industry of Change: Linux Storms
Hollywood


http://images.google.com
Overview of 3D Interactive Graphics


http://www.opengl.org/
Google Image Search


http://www.wikipedia.org/
http://www.linuxjournal.com/article/5472
JCanyon - Grand Canyon Demo

http://java.sun.com/products/jfc/tsc/articles/jcanyon/