Implement indirect illumination using "light propagation volume" technique with OCaml, a strong static functional programming language.
In this project, on one hand, I want to consolidate my OCaml programming skill, on the other hand, I try to build a large project which integrates OCaml with GPU programming.
if you have any comments or suggestions, please feel free to let me know.
-
Make sure you have installed OCaml (4.0) and glMLite, glMLite is a package which provide OpenGL bindings for OCaml, for more detail about that, please refer to glMLite
-
Make sure your graphic card support OpenGL 3.0 with EXT _ GPU _ shader4 extension.
In this project, I implement the following tasks:
- generate reflect shadow map (RSM)
- inject rsm info to volume textures
- propagation
- apply volume textures to scene rending