Geometry is imported for each particle system cache. Houdini’s sprite node that is in the POP network doesn’t really function for prman. So I had to copy little circular grids on particles with template point attributes. I had to make sure that the grids would face the camera at all times, so while adding the velocity and scale attributes from the point node I also added this little script in to “add normal” ch(“../../cam1/tx”)-$TX
for X,Y,Z
.
Copy node rotates everything that goes into the first input by 90 degrees on Z
, so there is a transform axis node there to compensate for this rotation.
Shader is built in a VEX network under RSL Surface Shop Type. As I figured later on that VEX node doesn’t even have to be compiled into SHOP type to be used.
All in all it is a simple shader with a few twists. There are both color and texture map inputs for diffuse, ambiance, and specularity, and switches that choose between a map and a color. Opacity of the particles are brought in from the color nodes in POP networks. More alpha can be mixed from the diffuse node and/or lighting model node as well.
When using the motion blur with prman, normals have to be inversed from the shader, so there is a multiply by -1 node and a switch that turns it on and off too.
If you are using an older version of prman to render this out, save your work frequently. prman used to have a big problem when it has to render lots of objects with low opacities that are stacked on top of each other like sprites. It can easily fill up the ram, and lock up systems. It could easily go over 3.5 gb of ram with 4 prman instances each rendering a different frame in my case. And the rib files that are generated are well over 100 megs.