Notes and learning diary for CSE168 rendering course on Edx that is part to of CSE167 Computer Graphics course on Edx by Ravi Ramamoorthi.
https://learning.edx.org/course/course-v1:UCSanDiegoX+CSE168X+3T2024/
Course projects / homeworks:
- RayTracing
- Direct Lighting
- Indirect Path Tracer
- Importance Sampling
Systems write modern 3d image synthesis program.
(path tracer with importance sampling)
RAYTRACING 1: RAY CASTING
Effects needed for realism
- soft shadows
- reflections (mirrors and glossy)
- transparency
- Interreflections (color bleeding)
- Complex illumination (natural, area light)
raytracing: pixel by pixel instead of object by object
- recursive raytracing
- primitives
- acceleration structures
Ray Casting
- visibility per pixel instead of Z-buffer
- Find nearest object by shooting rays into scene
- Shade it as in standard OpenGL
RAYTRACING 1: SHADOWS AND REFLECTIONS
shadows
- shoot a ray from the camera after hit shoot a ray from there towards the light source
- if hit light source i’ts unblocked and visible to the light source
- if hit object then ray to the light source is blocked and the object is in shadow.
- shadows: numerical issues. because of numerical errors first ray from camera can go below surface. -> move shadow ray little towards light source before shooting.
Mirror reflections/Refractions
- generate reflected ray in mirror direction
- Get reflections and refractions of objects
- where reflected ray hits get that objects color so that will give the reflection.
Recursive ray tracing:
- for each pixel
- trace primary Eye Ray, find intersection
- trace secondary shadow rays(s) to all lights
- color = visible ? illumination model : 0
- trace reflected ray
- color += reflectivity * color of reflected ray
Project work done:
Reviewed my final ray tracing project from CSE167 and updated to run on new Visual Studio version.