Mountain Water Love is a short film that aims to convert a Chinese traditional water-ink painting style animation into a virtual reality experience. You can experience Mountain Water Love in 360 video on YouTube (by clicking the video above) or play it in Oculus Rift which was this project originally developed for. You can download the playable binary for Oculus here.
The project is developed by a team of five and the idea comes from our desire to bring something beautiful and culturally distinctive to the virtual reality world. We also built a website for this project, you can visit it here. My roles in this project are rendering programmer and director.
As a director, it is all about making decisions, from the very beginning when we were designing the storyboard to the end when we were putting all our rendered or painted models made by our designer Qiuji to Unity engine. I need to make sure that all the models in the scenes were rightly spread out so that users could explore their surroundings while immersing themselves into our story. I also need to make sure that the script we rewrote truly captured the gist of the original version even though the playtime of our story was way shorter. But most importantly, I need to coordinate a team with four programmers (including me) and a designer where we can talk about both art and technology without any language barrier.
As a rendering programmer, my job is to find a way to apply the usually 2D water-ink (su-muk) painting techniques to 3D models. After some diggings, my teammate Ke Lu and I found several papers in non-photorealistic rendering that we think maybe helpful for our project. And later, we narrowed it down to one paper published by Korea University and decided to use the mathematic model described in that paper to implement our convertor. Here is the link to the paper. The whole working pipeline involves Python, Blender, MeshLab and Unity. We wrote a step by step tutorial of using our convertor to generate 3D water-ink style models in here under section "About". Below are two rendered results generated by our convertor with their unprocessed versions as comparisons: