This is another example of Ri-Filter, which is multi-point Ri-Filter. This is one of the ways to expand the number of particles at render-time which I started to develop while I was a student at SCAD. The examples are originally just one particle point, and Ri_Filter creates multiple points around the original point, and I can change the point size, the number of points, speed of motion and noise frequency and pretty much everything at render-time.
The number of the original points is 5,000 and they are expanded to about a million points at render-time. Since all muti-points have self animation, it’s hard to see they are moving together. I used this method not only to expand the number of particles but also because of the characteristic motion like a bubble.
However, there was a problem. Some particles are above the water surface because multi-points doesn’t have any idea where the surface is. I fixed this problem with ray depth in Renderman.
When we use ray tracing in Renderman, Renderman provides some useful information in shader level. If the camera ray penetrate any object, it increase ray Depth variable, so the bubbles through the water surface has RayDepth 1, and the bubble above the water surface has ray depth 0.
The red part is rayDepth 1, and the green part is rayDepth 0, so I just made surface opacity 0 for the red part in the particle surface shader.
Finally, here is the final comp.