3D Graphics Rendering and Terrain Modeling Technology and Historical Overview By Ricardo Veguilla.

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS SOFTWARE.
Advertisements

Graphics Pipeline.
3D Graphics Rendering and Terrain Modeling
CHAPTER 12 Height Maps, Hidden Surface Removal, Clipping and Level of Detail Algorithms © 2008 Cengage Learning EMEA.
 Engineering Graphics & Introductory Design 3D Graphics and Rendering REU Modeling Course – June 13 th 2014.
HCI 530 : Seminar (HCI) Damian Schofield.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
CS6500 Adv. Computer Graphics © Chun-Fa Chang, Spring 2003 Object-Order vs. Screen-Order Rendering April 24, 2003.
(conventional Cartesian reference system)
1/12/09 1 Introduction Computer Graphics COMP 770 (236) Spring 2009 Instructor: Dinesh Manocha.
Further Programming for 3D applications CE Introduction to Further Programming for 3D application Bob Hobbs Faculty of Computing, Engineering and.
Graphics Systems I-Chen Lin’s CG slides, Doug James’s CG slides Angel, Interactive Computer Graphics, Chap 1 Introduction to Graphics Pipeline.
The Graphics Pipeline CS2150 Anthony Jones. Introduction What is this lecture about? – The graphics pipeline as a whole – With examples from the video.
Introduction to OpenGL. What is OpenGL OpenGL is a low-level software interface to graphics hardware No commands for performing windowing tasks or obtaining.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer.
Part I: Basics of Computer Graphics Rendering Polygonal Objects (Read Chapter 1 of Advanced Animation and Rendering Techniques) Chapter
3D Rendering with JOGL Introduction to Java OpenGL Graphic Library By Ricardo Veguilla
MULTIMEDIA TECHNOLOGY SMM 3001 MEDIA - GRAPHICS. In this chapter how the computer creates, stores, and displays graphic images how the computer creates,
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 10: Computer Graphics Computer Science: An Overview Tenth Edition.
CS 480/680 Computer Graphics Course Overview Dr. Frederick C Harris, Jr. Fall 2012.
COMP 175: Computer Graphics March 24, 2015
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Computer Visualization BIM Curriculum 03. Topics  History  Computer Visualization Methods  Visualization Workflow  Technology Background.
INTRO TO COMPUTER GRAPHICS TEXT EDWARD ANGEL: EDITION 5 CS770/870
CSE 381 – Advanced Game Programming Basic 3D Graphics
Programmable Pipelines. 2 Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Week 2 - Wednesday CS361.
OpenGL Development: SGI vs Linux Performance and Cost Comparison By Ricardo Veguilla VS.
CSC 461: Lecture 41 CSC461: Lecture 4 Introduction to OpenGL Objectives: Development of the OpenGL API OpenGL Architecture -- OpenGL as a state machine.
MIT EECS 6.837, Durand and Cutler Graphics Pipeline: Projective Transformations.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
CSC 461: Lecture 3 1 CSC461 Lecture 3: Models and Architectures  Objectives –Learn the basic design of a graphics system –Introduce pipeline architecture.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Rendering Overview CSE 3541 Matt Boggus. Rendering Algorithmically generating a 2D image from 3D models Raster graphics.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
1Computer Graphics Lecture 4 - Models and Architectures John Shearer Culture Lab – space 2
COMPUTER GRAPHICS CSCI 375. What do I need to know?  Familiarity with  Trigonometry  Analytic geometry  Linear algebra  Data structures  OOP.
Programmable Pipelines Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts Director, Arts Technology Center University.
Computer Graphics Chapter 6 Andreas Savva. 2 Interactive Graphics Graphics provides one of the most natural means of communicating with a computer. Interactive.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
Image Synthesis Rabie A. Ramadan, PhD 4. 2 Review Questions Q1: What are the two principal tasks required to create an image of a three-dimensional scene?
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
In the name of God Computer Graphics.
Subject Name: Computer Graphics Subject Code: Textbook: “Computer Graphics”, C Version By Hearn and Baker Credits: 6 1.
MIT EECS 6.837, Durand and Cutler The Graphics Pipeline: Projective Transformations.
OpenGL: The Open Graphics Language Introduction By Ricardo Veguilla.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
What are Computer Graphics Basically anything that is on you Monitor – This includes the text that you will see Text isn’t Advanced Graphics But…. Understanding.
RENDERING : Global Illumination
Computer Graphics One of the central components of three-dimensional graphics has been a basic system that renders objects represented by a set of polygons.
Chapter 1 Graphics Systems and Models Models and Architectures.
1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Models and Architectures 靜宜大學 資訊工程系 蔡奇偉 副教授 2012.
Computer Graphics Ken-Yi Lee National Taiwan University (the slides are adapted from Bing-Yi Chen and Yung-Yu Chuang)
OpenGL: The Open Graphics Language Technology and Historical Overview By Ricardo Veguilla.
Rendering Pipeline Fall, 2015.
- Introduction - Graphics Pipeline
Photorealistic Rendering vs. Interactive 3D Graphics
3D Graphics Rendering PPT By Ricardo Veguilla.
The Graphics Rendering Pipeline
Understanding Theory and application of 3D
Models and Architectures
Models and Architectures
Models and Architectures
Introduction to Computer Graphics with WebGL
Models and Architectures
Models and Architectures
Presentation transcript:

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 x 2 + y 2 + z 2 = r 2 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

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 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 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 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

References: Wikipidia – The Free Encyclopedia OpenGL - The Industry Standard for High Performance Graphics Google Image Search Overview of 3D Interactive Graphics tut.html tut.html Linux Journal - Industry of Change: Linux Storms Hollywood JCanyon - Grand Canyon Demo