This is the final project of my rendering course in Fall 2017. Our team (Xiangyu Wang, Yansen Sheng and me) simulated water in a tank that can interact with mouse clicking and dragging. Also reflection, refraction and caustic effect under the water surface are rendered.
We simulated water using height fields, rendered the reflection and refraction using environment map and caustic caused by the water wave using optimized photon mapping. The detailed report is here and the code is here.