How to render surfaces

Ray tracing
ray_tracing.svg
  • - Throw rays from light-sources/camera
  • - Intersect rays with 3D shapes
  • - Pixel-wise computation
  • + Photo-realistic rendering
    • (Soft shadows, reflection, caustics)
  • + Handle general surfaces
  • - High computational cost
=> Restricted to offline rendering (but developing more and more)
Projection/Rasterization
raster.svg
  • - Assume shapes made of triangles
    • 1. Project each triangle onto camera screen space
    • 2. Rasterize projected triangle into pixels
  • - Triangle-wise computation
  • + Efficiently implemented on GPU
  • - Limited to triangles
  • - No native effects (shadows, transparency, etc)
=> The standard real time rendering with GPU