Skip to content
Eric Nilsson edited this page Jan 7, 2014 · 1 revision

Raytracer

3

  1. Camera interaction using mouse input.
  2. Ray casting of sphere primitives.
  3. Ray casting of triangle primitives (already existant, how do we demonstrate?).
  4. Support single light source.
  5. Implement shadows.
  6. Support up to ten (or, you know, infinite) point lights.
  7. Support diffuse and specular lighting with light attenuation.
  8. Support multiple ray bounces.

4

  1. Normal mapping.
  2. Super sampling to hide aliasing artifacts.
  3. Scene interaction using GPGPU (picking, for example).
  4. Particle system with N-body interaction.
  5. Additional light source type (spotlight or directional light).

5

  1. Partition scene into spatial data structure that is traversed on the GPU.
  2. Multiple mesh objects.
  3. Multiple materials per object.

Compile article with a performance analysis studying how the following factors affect performance:

  • Thread group size.
  • Screen resolution.
  • Trace depth.
  • Number of light sources.
  • Size of meshes. In addition to this the article shall explain each implementation step.

Raytracer++

Add culling of rays where each thread group requiring another bounce is added to an append-/consume-buffer for additional computation.

Write an article. No specification available for this assignment.

Clone this wiki locally