<<

www.getmyuni.com

Technology and Historical Overview

3D Rendering and Terrain Modeling www.getmyuni.com Overview

• Introduction to 3D Graphics • OpenGL • SGI vs • 3D • Terrain Modeler: Project Status www.getmyuni.comIntroduction to 3d

is the science, study, and method of projecting a mathematical representation of 3D objects onto a 2D image using visual tricks such as and to simulate the eye's perception of those objects. www.getmyuni.com 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. www.getmyuni.com Goals of 3D graphics • Practical goal: - to generate images (usually of recognizable subjects) that are useful in some way.

• Ideal goal: Photorealism - to produce images indistinguishable from photographs. www.getmyuni.com Components of a 3D Graphic System

: • A way to describe the 3D world or scene, which is composed of mathematical representations of 3D objects called models.

: • A mechanism responsible for producing a 2D image from 3D models. www.getmyuni.com 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 with radius r. www.getmyuni.com 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. www.getmyuni.com 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. www.getmyuni.com Alternatives: • Technique used to add color detail without increasing the complexity of a model.

• An image is mapped to the surface of a model. www.getmyuni.com 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 www.getmyuni.com 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 about which the object is moved and rotated. www.getmyuni.com 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. www.getmyuni.com Screen Space

• 2D space that represents the boundaries of the image to be produced.

• Many optimization techniques are performed on screen space. www.getmyuni.com 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 . www.getmyuni.com 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 . www.getmyuni.com Types of Rendering Algorithms

• Two general approaches:

• Pixel-oriented rendering: • Ray tracers

• Polygon-oriented rendering: • Scan-line renderers www.getmyuni.com Ray tracers • Operates by tracing theoretical light rays as they intersect objects in the scene and the projection plane. www.getmyuni.com 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. www.getmyuni.com Radiosity

• Technique that models the inter-reflections of diffuse light between surfaces of the world or environment. • Produces more photorealistic illumination and shadows. www.getmyuni.com 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. www.getmyuni.com Illumination for scan-line renderers • Lighting and shading is calculated using the normal vector. • The color is linearly interpolated across the polygon surface. www.getmyuni.comCommon shading techniques scan- line renderer •Flat shading

www.getmyuni.com 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. www.getmyuni.com Gouraud Shading

• A normal vector is calculated at each vertex. • Color is calculated for each vertex and interpolated across the polygon www.getmyuni.com 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 www.getmyuni.comPolygon shading techniques compared www.getmyuni.com

• Segment of the 3D world to be rendered • Objects outside the viewing volume are ignored. www.getmyuni.com 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 www.getmyuni.com Painter’s Algorithm

• Polygon-oriented. • All the polygons are sorted by their depth and then displayed in this order. www.getmyuni.com 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. www.getmyuni.com Perspective Projection

• Projects the 3D world to a 2D image www.getmyuni.com

The Open Graphics Language www.getmyuni.comOpenGL – 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. www.getmyuni.com History of OpenGL

• Originally released by SGI in the early 90s. • Descendant of IRIX GL. • Previous 3D graphics were generally platform dependant. • Born out of market pressure for a cross-platform 3D API during the late 80s. www.getmyuni.com OpenGL - Code Example

• How to define a triangle:

glBegin (GL_TRIANGLES); glVertex (0,0,0); glVertex (1,1,0); glVertex (2,0,0); glEnd (); www.getmyuni.com 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+ www.getmyuni.com Potential Auxiliary Toolkits

• GLUT: Specifically designed for developing OpenGL demo applications. • SDL (Simple DirectMedia Layer): for multimedia and game development. • GTK+: General purpose toolkit for creating graphical user interfaces with OpenGL extensions available. www.getmyuni.com SGI vs Linux

VS www.getmyuni.com 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? www.getmyuni.com SGI and Hollywood

• Special effects production pipeline involves:

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

• The render-farm – A computer cluster dedicated for rendering the images or that form the visual effect sequence. www.getmyuni.com 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). www.getmyuni.com 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). www.getmyuni.com The rise of Lintel (Linux+Intel)

Causes: • The development of Linux (an open 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 market. www.getmyuni.com 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- which greatly limits the possibility of vendor lock-in. www.getmyuni.com 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. www.getmyuni.com 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. www.getmyuni.com 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 www.getmyuni.com 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 and simulations. www.getmyuni.com3D Animation www.getmyuni.com Luxo Jr.

• The first film produced by Pixar in 1986. • It demonstrates the use of 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. www.getmyuni.com 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 www.getmyuni.com

Terrain Modeler Project Status www.getmyuni.com Previously implemented features

• Application developed in 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. www.getmyuni.com 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. www.getmyuni.com 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. www.getmyuni.com 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. www.getmyuni.com Long-term

• Porting the project to Jogl: Java OpenGL

• http://java.sun.com/products/jfc/tsc/articles/jcanyon/ www.getmyuni.com 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/jcanyon/