This is a meteor effect I've experimented with using Houdini, Mantra, and RenderMan as well.
Three particle systems spawned over 25k particles in midst of their lifetime. All particle systems were rendered with Mantra seperately and then composited on top of each other in the compositing section of Houdini. The stars on the background were generated by a Python helper script running with prman.
After the background was rendered, the image was brought into the Houdini's compositing section. I used a flame shader we've built in Houdini class to render the flames. Although it wasn't necessary, I used an overly complicated Python script for the background since I already had it in hand. Here are a few pointers on the script:
Before the Python helper script can launch, it needs the command line parameters fed from the rib file. Parameters such as the number of points, the diameter of those points, the scale of the complete cloud, and 2 numbers to generate a random real number between to multiply with the point location.
Shader must be applied before the helper script is launched. Shader I used is an overly simplified and modified plastic shader. It uses 3D noise on the camera space to apply the point colors.
One problem here is that this script will apply all colors, but one cannot really see green in the nightsky. So I deleted color info from particles that didn’t have enough blue and red components to compensate for the green component, which made them invisible. The setcomp
, and mod
functions were very useful for this.
The loop runs as many times as the number of points specified. It first randomly generates 3 numbers within the scale specified. Then it multiplies those numbers with another randomly generated number within a defined range to create more chaos in distribution.
Everytime loop runs, it adds these 3 numbers to an array. These 3 numbers represent the XYZ
coordinates of the points. When the loop ends, and the array is complete, it outputs the array and the diameter of the points in a string formatted as a rib file.
After the data is passed to prman, render starts.
Here are the files for the prman