Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

Similar documents
Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

Today. Rendering pipeline. Rendering pipeline. Object vs. Image order. Rendering engine Rendering engine (jtrt) Computergrafik. Rendering pipeline

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

CSCI-6962 Advanced Computer Graphics

3D GRAPHICS. design. animate. render

Computer Graphics. Lecture 13. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura

CSE 167: Lecture #4: Vertex Transformation. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Lecturer Athanasios Nikolaidis

Computer Graphics. Lecture 14 Bump-mapping, Global Illumination (1)

Today. Today. Introduction. Matrices. Matrices. Computergrafik. Transformations & matrices Introduction Matrices

Computer Graphics. Lecture 10. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura 12/03/15

CHAPTER 1 Graphics Systems and Models 3

Global Illumination. COMP 575/770 Spring 2013

CS451Real-time Rendering Pipeline

Computer Graphics Disciplines. Grading. Textbooks. Course Overview. Assignment Policies. Computer Graphics Goals I

03 RENDERING PART TWO

Lahore University of Management Sciences. CS 452 Computer Graphics

Computergrafik. Matthias Zwicker. Herbst 2010

Lahore University of Management Sciences. CS 452 Computer Graphics

CSE 167: Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013

Rasterization Overview

Shaders. Slide credit to Prof. Zwicker

CIS 581 Interactive Computer Graphics

CSE 167: Introduction to Computer Graphics Lecture #7: Lights. Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2015

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

Motivation. Sampling and Reconstruction of Visual Appearance. Effects needed for Realism. Ray Tracing. Outline

782 Schedule & Notes

Programming projects. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer

Effects needed for Realism. Ray Tracing. Ray Tracing: History. Outline. Foundations of Computer Graphics (Spring 2012)

The Graphics Pipeline and OpenGL I: Transformations!

CS230 : Computer Graphics Lecture 6: Viewing Transformations. Tamar Shinar Computer Science & Engineering UC Riverside

Real-Time Shadows. Last Time? Textures can Alias. Schedule. Questions? Quiz 1: Tuesday October 26 th, in class (1 week from today!

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

Goals. Computer Graphics (Fall 2008) Course Outline. Course Outline. Course Outline. Demo: Surreal and Crazy World (HW 3)

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping

Game Architecture. 2/19/16: Rasterization

CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation

Computer graphics 2. Róbert Bohdal, FMFI UK M-114, flurry.dg.fmph.uniba.sk/webog/bohdal

Topic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized

Lecture 1. Computer Graphics and Systems. Tuesday, January 15, 13

The Graphics Pipeline and OpenGL I: Transformations!

Computer Graphics I Lecture 11

CIS 581 Interactive Computer Graphics (slides based on Dr. Han-Wei Shen s slides) Requirements. Reference Books. Textbook

CSE 167: Introduction to Computer Graphics Lecture #6: Lights. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2014

CS5620 Intro to Computer Graphics

Topic 11: Texture Mapping 10/21/2015. Photographs. Solid textures. Procedural

Advanced Graphics. Path Tracing and Photon Mapping Part 2. Path Tracing and Photon Mapping

0. Introduction: What is Computer Graphics? 1. Basics of scan conversion (line drawing) 2. Representing 2D curves

EF432. Introduction to spagetti and meatballs

Rendering Part I (Basics & Ray tracing) Lecture 25 December 1, 2015

Ray Tracing. Outline. Ray Tracing: History

CMSC427 Transformations II: Viewing. Credit: some slides from Dr. Zwicker

6.837 Introduction to Computer Graphics Quiz 2 Thursday November 20, :40-4pm One hand-written sheet of notes allowed

Overview. Computer Graphics CSE 167

Topic 0. Introduction: What Is Computer Graphics? CSC 418/2504: Computer Graphics EF432. Today s Topics. What is Computer Graphics?

Last week. Machiraju/Zhang/Möller

Cornell CS4620 Fall 2011!Lecture Kavita Bala (with previous instructors James/Marschner) Cornell CS4620 Fall 2011!Lecture 1.

Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping

Computer Graphics. Lecture 02 Graphics Pipeline. Edirlei Soares de Lima.

Graphics Pipeline. CS535 Fall Daniel G. Aliaga Department of Computer Science Purdue University

Intro to Ray-Tracing & Ray-Surface Acceleration

CSCD18: Computer Graphics. Instructor: Leonid Sigal

Consider a partially transparent object that is illuminated with two lights, one visible from each side of the object. Start with a ray from the eye

Overview: Ray Tracing & The Perspective Projection Pipeline

Graphics for VEs. Ruth Aylett

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Computer Graphics Introduction. Taku Komura

Me Again! Peter Chapman. if it s important / time-sensitive

Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL

CSE 167: Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

Chapter 2 A top-down approach - How to make shaded images?

CS4620/5620: Lecture 14 Pipeline

The Traditional Graphics Pipeline

Chapter 7 - Light, Materials, Appearance

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

COMP 175 COMPUTER GRAPHICS. Ray Casting. COMP 175: Computer Graphics April 26, Erik Anderson 09 Ray Casting

Luxo Jr. Plan. Team. Movies. Why Computer Graphics? Introduction to Computer Graphics. Pixar Animation Studios, 1986 Director: John Lasseter

Recollection. Models Pixels. Model transformation Viewport transformation Clipping Rasterization Texturing + Lights & shadows

Final Project: Real-Time Global Illumination with Radiance Regression Functions

CS380: Computer Graphics Introduction. Sung-Eui Yoon ( 윤성의 ) Course URL:

EF432. Introduction to spagetti and meatballs

Lecture 0 of 41: Part A Course Organization. Introduction to Computer Graphics: Course Organization and Survey

Sung-Eui Yoon ( 윤성의 )

CSE 167: Lecture #8: Lighting. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

INFOGR Computer Graphics. Jacco Bikker - April-July Lecture 14: Grand Recap. Welcome!

Photorealism vs. Non-Photorealism in Computer Graphics

Effects needed for Realism. Computer Graphics (Fall 2008) Ray Tracing. Ray Tracing: History. Outline

Computer Graphics (CS 543) Lecture 13b Ray Tracing (Part 1) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Rendering. Mike Bailey. Rendering.pptx. The Rendering Equation

3D Production Pipeline

Shadows. COMP 575/770 Spring 2013

CS 354R: Computer Game Technology

Spring 2011 Prof. Hyesoon Kim

Real-Time Shadows. Last Time? Today. Why are Shadows Important? Shadows as a Depth Cue. For Intuition about Scene Lighting

Instructor. Goals. Image Synthesis Examples. Applications. Foundations of Computer Graphics. Why Study 3D Computer Graphics?

Ray tracing. EECS 487 March 19,

Course Title: Computer Graphics Course no: CSC209

CS 130 Final. Fall 2015

Transcription:

Today Rendering Algorithms Course overview Organization Introduction to ray tracing Spring 2009 Matthias Zwicker Universität Bern Rendering algorithms Problem statement Given computer representation of 3D scene, generate image of the scene that would be captured by a virtual camera at a given location Applications Movies, games, design, architecture, virtual reality, visualization, tele-collaboration Rendering algorithms Challenges Efficiency Photo-realism Goal of the class Learn theory and practice of rendering algorithms Have fun improving your programming skills Ray tracing Ray tracing Soft shadows Caustics Global illum. 1

2

What you should know Basic background in 3D graphics (Vorlesung Computergrafik ) Programming experience in Java or C++ Linear algebra Vectors, matrices, coordinate transformations (Shirley, Chapters 1-6) What you should know Mathematics Vectors in 3D (dot product, vector product) Matrix algebra (addition, multiplication, inverse, determinant, transpose, orthogonal matrices) Coordinate systems (homogeneous coordinates, change of coordinates) Transformation matrices (scaling, rotation, translation, shearing) Plane equations Systems of linear equations (matrix representation, elementary solution procedures) Graphics Color Scene representation (triangle meshes, scene graphs) Viewing (perspective projection, rasterization) Syllabus Part 1: Basics of ray tracing Ray tracing algorithm Camera model Ray-geometry intersection techniques Shading Acceleration structures Textures, environments maps, bump maps Syllabus Part 2: The physics of light transport and how to simulate it The rendering equation Monte carlo ray tracing Photon mapping Radiosity Syllabus Part 3: Advanced topics Sampling and anti-aliasing Realistic camera models High dynamic range imaging Advanced geometry Subsurface scattering and participating media Programming assignments Individual projects Build your own ray tracer 1. Basic ray tracer 2 A l ti t t 2. Acceleration structures 3. Global illumination 4. Advanced topics 3

from UCSD classes from UCSD classes Josh, 2003 Craig, 2003 from UCSD classes from UCSD classes Arash, 2003 Wojciech, 2004 from UCSD classes from UCSD classes Alex, 2005 Will, 2005 4

Today Course overview Organization Introduction to ray tracing Organization Course webpage http://cgg.unibe.ch/teaching/courses/fruhlingssemester-2009/rendering-algorithms/ Webboard Ilias, group IAM Rendering Algorithms Passwort renderingalgorithms https://ilias.unibe.ch/ilias3/repository.php?ref_id=66993&cmd=render Teaching assistant Claude Knaus, knaus@iam.unibe.ch Lab IAM room 102 (CGG pool) Organization Lectures Fridays 13:15-15:00 Exercise session Fridays, 15:15 16:00 Organization Grading Assignments: 10% each, 40% total Final exam: 60% Today Course overview Organization Introduction to ray tracing Introduction Two fundamentally different algorithms for image generation (rendering) Z-buffering, rasterization Ray tracing Ray tracing In both cases, most popular object representation are triangle meshes 5

Z-buffering Rendering pipeline Input data (geometry etc.) Transformation, projection Rasterization Shading Object order algorithm, paint one object after an other Z-buffering Implemented in graphics hardware (ATI, NVidia GPUs) Standardized APIs (OpenGL, Direct3D) Interactive ti rendering, games Limited photo-realism Display Ray tracing Ray tracing vs. rasterization Imager Primary rays Find first intersection Shading Output image Scene representation Image order algorithm, paint one pixel after an other Rasterization Desirable memory access pattern ( streaming, data locality, avoids random scene access) Suitable for real time rendering (OpenGL, DirectX) Popular for production rendering (Pixar RenderMan), where scenes often do not fit in RAM Full global illumination not possible with purely object order algorithm Ray tracing Undesirable memory access pattern (random scene access) Requires sophisticaed data structures for fast scene access Full global illumination possible Most popular for photo-realistic image synthesis Ray tracing pseudocode raytrace() { construct scene representation for each pixel ray = computeprimary() hit = first intersection with scene color = shade( hit ) set pixel color } Computing primary rays Primary rays sometimes called camera rays Define camera coordinate system and viewing frustum Given an image pixel Determine ray in camera coordinates Transform ray to world coordinates (sometimes also called canonic coordinates) 6

Camera coordinate system Camera coordinate system Camera coordinates World coordinates Scene object World coordinates Scene object Camera coordinate system Given Viewing frustum Vertical field-of-view θ Aspect ratio width/height aspect Image plane at w=-1 Viewing frustum Computing primary rays Caution: origin in homogeneous coordinates 7

Computing primary rays Vertical field-of-view θ Aspect ratio width/height aspect Image coordinates u, v Computing primary rays Image resolution m n pixels Pixel Pixel Pixel Computing primary rays Primary ray in camera coordinates Transformation to world coords. World coordinates sometimes also called canonic coordinates Column vectors Transformation matrix Multiply matrices from the left Transforming Normal Vectors Normal is perpendicular to tangent Exercise session Implementing a basic ray tracer Under transformation, find normal transformation ti that t satisfies normal constraint 8