My idea for this project was to create a scene with water and floating lanterns out of a particle system in an attempt to learn more about Houdini.
Inspiration and References
I was inspired by Taiwan's annual lantern festival in Taipei. The lanterns were so beautiful and I wanted to create a similar scene.
The grid I used for the ocean was originally 8,994,001 polys but I was able to lower it to 3,758,472 polys by deleting the geometry outside of the camera view.
Floating Lanterns Breakdown
I still couldn’t preview the movement of the waves in Houdini because of the high polycount, so I ran a few playblasts before I settled on the wave height and movement of the water.
I copied the boat to a point on a copy of the grid with a reduced polycount, and that had been smoothed so that it wouldn’t move as dramatically as it did when I attached it directly to the original ocean. This created the illusion that the boat is floating on the water.
Setup - I created the lanterns using a particle system from the Location Particle Emitter shelf tool. I turned off gravity and adjusted the variance and velocity along with the impulse count to create a movement that would be similar to floating lanterns. Using a for-each point loop and a switch node I copied a random lantern to each particle, and I used an instance node to instance a point light to each point.
Additionally, I added random rotation to the lanterns to give them a little more variation. On the x and z axis they appear rotated anywhere between -5 and 5 degrees. On the y axis, lanterns constantly rotate anywhere between -.5 and .5 degrees per frame.
Shading – It was challenging to get the lantern shader to look like my references. To match the references, I turned on Sub Surface Scattering which created a lot of noise on the lanterns.
Rendering – The light instances slowed my rendering down a lot until I changed the attenuation from physically correct to no attenuation. This took my render time from 3+ hours to around 3 minutes. After this was fixed, I was able to raise the pixel samples, minimum and maximum rays, and diffuse quality which got rid of most of the noise in the lanterns.
Since the heightfield is not heavy on the scene at all, I was able to use the same mountain three times to create more interesting depth than my original idea. I textured it with masks that are created by the heightfield erode node and using the mask created by the mask-by-feature node. It only required minimal detail since the mountains are mostly in silhouette.