Project Raytracing
Content Goals Idea of Raytracing Ray Casting – Therory – Practice Raytracing – Theory – Light model – Practice Output images Conclusion
Specifications Ray tracer depends on how to represent objects Parametric equation for precision, not rapidity Develop a Ray Tracer in order to explore a new intersection algorithm Two teams : - for mathematics - for code
Main principle Create 3D pictures Mathematical equation Throw ray from eye to pixels Not FROM source light: TO it Number of reflections Great pictures but slow
Algorithms Ray casting - first method - no bounce Ray tracing - from eye to pixels - reflection - refraction - shadow
Fields of use Animation studio Pixar: with parsimony → light effects Video games → with triangles → faster and great
Ray casting For each pixel: ● Shoot a ray from the observer to the position of the pixel ● Test if the ray hits an object in the scene ● If there is a hit: the color of this pixel will be the color of the object ● If there is no hit: the pixel receives the color of the background
Ray casting What do we need ? ● A position for the observer (eye, camera) ● A direction/object to look at (and a « way up ») ● An object to show on screen ● A representation of the 2D screen in the 3D space
Ray casting
Our Ray Caster
From Ray Casting to Ray Tracing
We add : ● Lights ambient, diffuse, specular ● Shadows ● Reflexion => recursion : another ray is shot from the intersection ● Material properties ambient, diffuse, and specular coefficients
Lightmodel Used: Phong reflection model 3 types of light: ambient, diffuse, specular
Ambient and Diffuse
Specular
Shadows Only add diffuse and specular light, if a lightsource is visible Test for intersections between a point on the sphere and the lightsource
In practice ● Implementation of the ray casting algorithm ● From ray casting to ray tracing ● Demo, use cases ● Highlight of some interesting modules
From Ray Casting to Ray Tracing We add : ● Lights ambient, diffuse, specular ● Shadows ● Reflexion => recursion : another ray is shot from the intersection ● Material properties ambient, diffuse, and specular coefficients
Video link 1
Video link 2
Interesting modules ● Positionning of the screen in 3D space ● The RayTracer class ● That's the core of the program (light model) ● Shadows ● The use of inheritance to compute intersections ● Obtaining an animation ● Camera and lights movement ● Export a sequence of images, make a movie ● The Draughtboard
Difficulties - math libraries - C++, compilation, building environment - Screen implementation - Unexpected results (debugging)
Achievements Light effects Animation rendering Different shapes Antialiasing
Improvements Refraction and transparency Textures and noise Depth of Field Image mapping Bounding Volume Radiometry (power, energy, radiance...) Photon mapping
Thanks! Thank you for your attention!
Questions?
reims.fr/image/siRendu/Documents/2004- Chap5-BRDF.pdf tracing.gif?w=468