CSE168 Computer Graphics II: Rendering

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:

  1. RayTracing
  2. Direct Lighting
  3. Indirect Path Tracer
  4. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *