For reference material on the perl module, and examples of its use, see this page. There is enough information for you to write your own perl code for customized rendering problems.
Although the perl module makes partman highly customizable and flexible, a large number of particle rendering problems follow a generic workflow. To aid these situations, the Maya GUI interface partmanGUI has been built to make it easy to render out a Maya particle system. This document describes that GUI and its usage.
There are two methods of feeding particles into partman. The most typical way is to model a particle system using Maya and write the particle data out to pdb files. In rendering, partman reads the pdb files and generates particles based on the pdb data and a special shader called a particle emission shader (pes). The pes gives the user procedural flexibility to change the properties of the particles, generate more particles, and control exactly which particles are rendered.
The second method of feeding particles to partman is to create a single sphere object within the perl code, and have partman render that sphere. Placing the render call inside a loop, the sphere's properties can be changed any number of times and added to the render. This is relatively slow because it relies heavily on perl to do procedural calculations for particle placement, and so is not the recommended route.
Partman does not generate the pdb files. There are several dynExport utilities at Cinesite, so there is no need for partmanGUI to perform that function. Also, there are many times when you will want to launch a render and use pre-exiting pdb sets.
The section for Lights at the bottom of the window only appears when lights are present in the Maya scene. If no lights have been created, the Lights section of the partman GUI does not appear.
Frame Start, Frame End, Frame Step are pretty self explanatory. When the window first comes up, the values are set using the playback options in maya.
Num Pixels Horz and Num Pixels Vert are the number of pixels the rendered frames will have. Initially set from the render globals.
Output Prefix is used to name several different files: (1) the perl code for rendering each individual frame are placed in the partman/bin directory with the name "Output Prefix".####.pl, where #### is the four digit frame number. (2) the rendered images are placed in the partman/images directory with the name "Output Prefix".####.img. The default naming, in this example "untitled_partman", is the concatenation of the maya scene file name and "_partman", although anything except a path can be used.
RGB, Particle Alpha, Z Depth, Scene Alpha, and RGB Transparency are various images channels partman can render. The user is given the option of using or not using any of these channels, and the option of writing these channels to the file. The default settings are the minimum requirements for properly rendering and writing out an image of particles with an alpha channel. For the most part, you will not need to alter these settings.
The rendered images are written to files which have a .img suffix, and are in the HDF data format, which holds the images in the full floating point format (32 bits per channel). These files are uncompressed and be quite large, e.g. a 2K image with alpha channel is about 48 MB. The Do Conversion button gives you the option of automatically converting these files to Tiff format, and the Compress .img button then compresses the .img file losslessly using gzip. The buttons work by placing in the perl script system calls which accomplish these steps. The conversion from 32 bit/channel floating point in HDF to 16 bit integer in Tiff can only be accomplished when a mapping relationship is known. The default mapping, shown in the Min Value and Max Value boxes, is the map floating point 0.0 to tiff integer 0, and floating point 1.0 to tiff integer 65535. You can give other mappings in these two boxes.
If you are interested in having an alpha channel in the tiff file, the Convert Alpha Channel turns on that option, and the Alpha Min Value and Alpha Max Value give the mapping from floating point to integer for the alpha channel.
Camera Motion Blur Lets you choose whether to render motion blur due to the camera motion. This is a linear blur between the camera position in the current frame and the position in the next frame. Motion blur due to particle motion is handled independently in the particle emission shader.
When there are several cameras in a scene, the Camera menu lets you select which camera you want to use for particle rendering.
The fields Camera Position, View Direction, Up Direction, Horizantal FOV, Aspect Ratio, Shutter Angle, Near Clipping Dist, and Far Clipping Dist are not meant to be altered here. Their values come from the selected camera node. If you need to alter any of these values, alter them in the camera node directly.
The button Import Scene Alpha and Z Buffer allows you to import rendered alpha channels and z buffers of objects in a scene to properly hide/occlude particles in the partman render. The typical method of using these is to render an alpha channel and a .zfile z depth file from prman for all of the non-particle objects in the scene, and import those files directly. To import them, the fields Scene Alpha and Z Buffer must be set up properly: the fields must give the names of these files, including path, up to but not including the frame number and suffix. So the entries "alphachannel" and "zbufferchannel" look for the files "alphachannel.####.tif" and "zbufferchannel.####.zfile" for frame number ####. NOTE: these entries must include the path.
In addition to importing alpha and z buffers, this data can be altered during the import via a shading file written in the PG (Phil Graham) shading language. See the appendix for a description of the process. The fields Alpha Shader and Z Buffer Shader hold the names of the shader files to be applied. A blank field means that no shader is applied. The default setting for the Z Buffer Shader is /hosts/elvisbob/DEV/jerry/proj/Hollywood/ddweston/spray/zdepthfactor.pes
because the z depth data that comes from prman is not the true distance between the camera and the visible object, but is the distance from the object to a plane that includes the camera image plane. The default shader computes the correct value for the true distance between camera and object. The calculation depends on the FOV and aspect ratio of the camera, so you should copy this shader, insert the values of FOV and aspect ratio for your camera, and set Z Buffer Shader to the location of your modified shader.
Of course, these shaders can be used for a variety of other effects as well.
The menu Particle set lets you choose among the different particle sets you wish to render. Only one particle set can be used in a render. Partman is capable of rendering any number of particle sets in a single render, the constraint of just one set here is a limitation of the GUI only. To see how to render more sets, consult the reference documents for CineRender.
Partman renders many more particles than are in a pdb file by using an emission shader to procedurally create more particles. The emission shader must be listed in the Emission Shader field. Each particle is rendered as a sphere, with a surface that is shaded using the file in the Surface Shader field.
Lights are an optional item in the GUI. If there are no lights visible in the Maya scene, this portion of the GUI will not appear. If lights are visible, the Use lights button lets you decide whether to use them in the particle render. If you choose to use them, the button Shadows from lights lets you choose to compute a modified shadow map for each light. The modification allows the map to perform volumetric lighting and attenuation and self-shadowing of a cloud of particles. If shadows are being used, the size of the shadow maps for all of the lights is specified in the fields Shadow Pixels Horz and Shadow Pixels Vert.
If you want to render just one of the frames, the perl file for that frame can be executed in a shell ( just type perl "name-of-file"
) without any other preparation or clean up. If you want to render a short segment, you can edit the RCF file and submit that to the queue.
Pushing the Render button does not close the partman GUI window. The Cancel button however, does close it.