![Page 1: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/1.jpg)
Course overview
Digital Image SynthesisYung-Yu Chuang9/20/2005
with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi
![Page 2: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/2.jpg)
Image synthesis (Rendering)
• Create a 2D picture of a 3D world
![Page 3: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/3.jpg)
Applications
• Movies• Interactive entertainment• Industrial design• Architecture• Culture heritage
![Page 4: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/4.jpg)
Animation production pipeline
story text treatment storyboard
voice storyreal look and feel
![Page 5: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/5.jpg)
Animation production pipeline
layout animation
shading/lighting
modeling/articulation
rendering final touch
![Page 6: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/6.jpg)
Computer graphics
modeling rendering
animation
![Page 7: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/7.jpg)
![Page 8: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/8.jpg)
![Page 9: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/9.jpg)
![Page 10: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/10.jpg)
![Page 11: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/11.jpg)
The goal of this course
• Realistic rendering• First part: physically based rendering• Second part: real-time high quality
rendering
![Page 12: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/12.jpg)
Physically-based rendering
uses physics to simulate the interaction between matter and light, realism is the primary goal
![Page 13: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/13.jpg)
• Shadows• Reflections (Mirrors)• Transparency • Interreflections• Detail (Textures…)• Complex Illumination• Realistic Materials• And many more
Realism
![Page 14: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/14.jpg)
Other types of rendering
• Non-photorealistic rendering• Image-based rendering• Point-based rendering• Volume rendering• Perceptual-based rendering• Artistic rendering
![Page 15: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/15.jpg)
Logistics
• Meeting time: 10:20am-1:00pm, Tuesday• Classroom: CSIE Room 110 • Instructor: Yung-Yu Chuang ([email protected])• Webpage: http://www.csie.ntu.edu.tw/~cyy/rendering id/password
• Forum: http://www.cmlab.csie.ntu.edu.tw/~cyy/forum/viewforum.php?f=3
• Mailing list: [email protected] Please subscribe via https://cmlmail.csie.ntu.edu.tw/mailman/listinfo/rendering/
![Page 16: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/16.jpg)
Prerequisites
• Being able to program in C++ is required.• Basic knowledge on algorithm and data
structure is essential.• Knowledge on linear algebra, probability
and compilers is a plus.• Though not required, it is recommended
that you have background knowledge on computer graphics.
![Page 17: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/17.jpg)
Requirements (subject to change)
• 2 programming assignments (40%)• Presentation (15%) (course will alternate
between lectures and paper presentations)• Class participation (5%)• Final project (40%)
![Page 18: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/18.jpg)
Textbook
Physically Based Rendering from Theory to Implementation, by Matt Pharr and Greg Humphreys
•Authors have experiences on ray tracing
•Complete code, more concrete
•Plug-in architecture
![Page 19: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/19.jpg)
Literate programming
• A programming paradigm proposed by Knuth when he was developing Tex.
• Programs should be written more for people’s consumption than for computers’ consumption.
• The whole book is a long literate program. That is, when you read the book, you also read a complete program.
![Page 20: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/20.jpg)
LP example@\section{Selection Sort: An Example for LP}
We use {\it selection sort} to illustrate the concept of {it literate programming}.Selection sort is one of the simplest sorting algorithms.It first find the smallest element in the array and exchange it with the element in the first position, then find the second smallest element and exchange it the element in the second position, and continute in this way until the entire array is sorted.The following code implement the procedure for seletion sortassuming an external array [[a]].
<<*>>=<<external variables>>void selection_sort(int n) {
<<init local variables>>for (int i=0; i<n-1; i++) {
<<find minimum after the ith element>><<swap current and minimum>>
}}
![Page 21: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/21.jpg)
LP example<<find minimum after the ith element>>=min=i;for (int j=i+1; j<n; j++) {
if (a[j]<a[min]) min=j;}
<<init local variables>>=int min;
@ To swap two variables, we need a temparary variable [[t]] which is decalaredat the beginning of the precedure.<<init local variables>>=int t;
@ Thus, we can use [[t]] to preserve the value of [[a[min]] so that theswap operation works correcly.<<swap current and minimum>>=t=a[min]; a[min]=a[i]; a[i]=t;
<<external variables>>=int *a;
![Page 22: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/22.jpg)
LP exampleint *a;
void selection_sort(int n) { int min;
int t;
for (int i=0; i<n-1; i++) { min=i; for (int j=i+1; j<n; j++) { if (a[j]<a[min]) min=j; }
t=a[min]; a[min]=a[i]; a[i]=t; }}
![Page 23: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/23.jpg)
LP example
![Page 24: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/24.jpg)
Features
• Mix prose with source: description of the code is as important as the code itself
• Allow presenting the code to the reader in a different order than to the compiler
• Easy to make index• Traditional text comments are usually not
enough, especially for graphics• This decomposition lets us present code a
few lines at a time, making it easier to understand.
• It looks more like pseudo code.
![Page 25: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/25.jpg)
Reference books
![Page 26: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/26.jpg)
Reference
• SIGGRAPH proceedings• Proceedings of Eurographics Symposium on R
endering• Eurographics proceedings
![Page 27: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/27.jpg)
Pinhole camera
![Page 28: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/28.jpg)
Introduction to ray tracing
![Page 29: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/29.jpg)
Ray Casting (Appel, 1968)
![Page 30: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/30.jpg)
Ray Casting (Appel, 1968)
![Page 31: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/31.jpg)
Ray Casting (Appel, 1968)
![Page 32: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/32.jpg)
Ray Casting (Appel, 1968)
nls
i
nisidiaa VRkNLkIIk
1
![Page 33: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/33.jpg)
Ray Casting (Appel, 1968)
direct illumination
![Page 34: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/34.jpg)
![Page 35: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/35.jpg)
Recursive ray tracing (Whitted, 1980)
![Page 36: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/36.jpg)
Components of a ray tracer
• Cameras• Films• Lights• Ray-object intersection• Visibility• Surface scattering• Recursive ray tracing
![Page 37: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/37.jpg)
Minimal ray tracer
• Minimal ray tracer contest, 1987• Write the shortest Whitted-style ray tracer in C
with the minimum number of tokens
![Page 38: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/38.jpg)
Minimal ray tracer (Heckbert 1994)
![Page 39: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/39.jpg)
Minimal ray tracer (scene description)• 888 tokens
![Page 40: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/40.jpg)
Minimal ray tracer (geometry)
![Page 41: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/41.jpg)
Minimal ray tracer (geometry utilities)
![Page 42: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/42.jpg)
Minimal ray tracer (cameras/films)
![Page 43: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/43.jpg)
Minimal ray tracer (ray-object intersection)
![Page 44: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/44.jpg)
Minimal ray tracer (recursive ray tracing)
![Page 45: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/45.jpg)
Minimal ray tracer (recursive ray tracing)
![Page 46: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/46.jpg)
That’s it?
• Better Lighting + Forward Tracing• Texture Mapping• Modeling Techniques• Motion Blur, Depth of Field, Blurry Reflection/
Refraction– Distributed Ray-Tracing
• Improving Image Quality• Acceleration Techniques
![Page 47: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/47.jpg)
What can you learn from this course?• Literate programming• Lex and yacc (should we have a class on it?)• Object-oriented design• Code optimization tricks• Monte Carlo method• Sampling and reconstruction• Wavelet transform• Spherical harmonics
![Page 48: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/48.jpg)
Complex lighting
![Page 49: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/49.jpg)
Complex lighting
![Page 50: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/50.jpg)
Refraction/dispersion
![Page 51: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/51.jpg)
Caustics
![Page 52: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/52.jpg)
Realistic materials
![Page 53: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/53.jpg)
Translucent objects
![Page 54: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/54.jpg)
Texture and complex materials
![Page 55: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/55.jpg)
Even more complex materials
![Page 56: Course overview Digital Image Synthesis Yung-Yu Chuang 9/20/2005 with slides by Mario Costa Sousa, Pat Hanrahan and Revi Ramamoorthi](https://reader035.vdocuments.us/reader035/viewer/2022062422/56649e7d5503460f94b8056f/html5/thumbnails/56.jpg)
Homework #0
• Download and install pbrt• Set it up in a debugger environment so that yo
u can trace the code• Run several examples