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

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

3D GRAPHICS. design. animate. render

Lecturer Athanasios Nikolaidis

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

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

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

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

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

Lahore University of Management Sciences. CS 452 Computer Graphics

CS451Real-time Rendering Pipeline

03 RENDERING PART TWO

Lahore University of Management Sciences. CS 452 Computer Graphics

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

Intro to Ray-Tracing & Ray-Surface Acceleration

CHAPTER 1 Graphics Systems and Models 3

Global Illumination. Why Global Illumination. Pros/Cons and Applications. What s Global Illumination

Global Illumination. COMP 575/770 Spring 2013

Computergrafik. Matthias Zwicker. Herbst 2010

CIS 581 Interactive Computer Graphics

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

Shaders. Slide credit to Prof. Zwicker

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

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

782 Schedule & Notes

Rasterization Overview

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

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

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

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

The Graphics Pipeline and OpenGL I: Transformations!

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

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

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

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

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

EF432. Introduction to spagetti and meatballs

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

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

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

CS5620 Intro to Computer Graphics

Review. Stephen J. Guy

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

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

CSCD18: Computer Graphics. Instructor: Leonid Sigal

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

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

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

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

Computer Graphics I Lecture 11

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

Computer Graphics Introduction. Taku Komura

The Graphics Pipeline and OpenGL I: Transformations!

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

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

EF432. Introduction to spagetti and meatballs

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

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

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

Photon Mapping. Due: 3/24/05, 11:59 PM

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

To Do. Real-Time High Quality Rendering. Motivation for Lecture. Monte Carlo Path Tracing. Monte Carlo Path Tracing. Monte Carlo Path Tracing

EDAN30 Photorealistic Computer Graphics

Ray Tracing. Outline. Ray Tracing: History

Chapter 7 - Light, Materials, Appearance

The Traditional Graphics Pipeline

CS348B: Image Synthesis

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

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

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

MIT Monte-Carlo Ray Tracing. MIT EECS 6.837, Cutler and Durand 1

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

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

Overview. Computer Graphics CSE 167

Game Architecture. 2/19/16: Rasterization

Course Title: Computer Graphics Course no: CSC209

Today. Participating media. Participating media. Rendering Algorithms: Participating Media and. Subsurface scattering

Schedule. MIT Monte-Carlo Ray Tracing. Radiosity. Review of last week? Limitations of radiosity. Radiosity

Photorealism vs. Non-Photorealism in Computer Graphics

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

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

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

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

Graphics for VEs. Ruth Aylett

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

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

CS4620/5620: Lecture 14 Pipeline

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

Ray Tracing Part 1. CSC418/2504 Introduction to Computer Graphics. TA: Muhammed Anwar & Kevin Gibson

Advanced Graphics. Global Illumination. Alex Benton, University of Cambridge Supported in part by Google UK, Ltd

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

The Rendering Equation & Monte Carlo Ray Tracing

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

CS-184: Computer Graphics. Administrative

Transcription:

Today Rendering Algorithms Course overview Organization Introduction to ray tracing Spring 2010 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

Recommended books Ray tracing from the ground up, by Kevin Suffern Good intro, with Java code Realistic ray tracing, by Peter Shirley Good intro, with C code Recommended books Realistic image synthesis using photon mapping, by Henrik Wann Jensen Focus on photon mapping Physically based rendering, by Matt Pharr and Greg Humphreys Bible of ray tracing Detailed, useful as reference Includes many advanced concepts With C++ code Advanced global illumination, by Dutré et al. More on the theoretical side Many advanced concepts from UCSD classes from UCSD classes Josh, 2003 Craig, 2003 from UCSD classes from UCSD classes Arash, 2003 Wojciech, 2004 4

from UCSD classes from UCSD classes Alex, 2005 Will, 2005 Today Course overview Organization Introduction to ray tracing Organization Course webpage http://www.cgg.unibe.ch/teaching/courses/rendering-algorithms Webboard Course page on Ilias Password ra2010 Teaching assistant Fabrice Rousselle, fabrice.rousselle@gmail.com Lab IAM room 102 (CGG pool) Organization Lectures Fridays 13:15-15:00 Exercise session Fridays, 15:15 16:00 Organization Testatbedingung 70% of total score of all assignments Grading Assignments: 10% each, 40% total Final exam: 60% 5

Today Course overview Organization Introduction to ray tracing Introduction Two fundamentally different algorithms for image generation (rendering) Z-buffering, rasterization Ray tracing In both cases, most popular object representation are triangle meshes Z-buffering Z-buffering Rendering pipeline Input data (geometry etc.) Transformation, projection Rasterization Shading Object order algorithm, paint one object after an other 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 6

Ray tracing pseudocode raytrace() { construct scene representation for each pixel ray = computeprimary() hit = first intersection with scene color = shade( hit ) set pixel color } 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) 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 7

Viewing frustum Caution: origin in homogeneous coordinates Vertical field-of-view Aspect ratio width/height aspect Image coordinates u, v Image resolution m n pixels Pixel Pixel Pixel Primary ray in camera coordinates Transformation to world coords. World coordinates sometimes also called canonic coordinates Column vectors Transformation matrix (camera to world) Multiply matrices from the left 8

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 9