Experiments in 3d Rendering in Haskell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
output
src
.gitignore
HOWTO-enable-profiling.txt
LICENSE
README.md
Setup.hs
rendering-in-haskell.cabal

README.md

Rendering in Haskell

Experiments in 3d rendering in Haskell

Each experiment adds further features to the one before. The idea is to be able to diff consecutive experiments to see what has changed. (So, each experiment starts as a copy-paste of the previous).

Image Title Explanation
00 - Basic Image Generation Ensuring that we can write an image. Red component increases along the x-axis, green component increases along the y-axis.
01 - Flat Shading Rendering the Cornell box using flat shading. Shows basic ray-casting and nothing else.
02 - Diffuse Lighting Shows how to implement diffuse shading.
03 - Specular Lighting Shows the implementation of specular (shiny) lighting, which takes the location of the viewer into account.
04 - Reflections Implements reflective and semi-reflective surfaces, rendered recursively.
05 - Shadows Implements hard shadows.
06 - Photon Mapping Very much work-in-progress... Example shows render with 200,000 photons.
07 - Photon Mapping Basic reflections... Example shows render with 2.5M photons.