ptfilter [-filter photonmap|ssdiffusion|occlusion|colorbleeding|sort] [-nphotons n] [-material apple|chicken1|chicken2|ketchup|marble|potato|skimmilk|wholemilk|cream|skin1|skin2|spectralon] [-unitlength length] [-scattering r g b] [-absorption r g b] [-albedo r g b] [-diffusemeanfreepath r g b] [-ior ior] [-maxsolidangle m] [-samplebase s] [-bias b] [-sides front|back|both] [-clamp c] [-sortbleeding c] [-envdirs e] [-maxdist m] [-falloff f] [-falloffmode f] [-bounces b] [-distribution cosine|uniform] [-coneangle c] [-sources filenames] [-positions filenames] [-output filename] [-progress p] [-newer n] inputfiles outputfile
ptfilter reads one or more files in Pixar's point cloud file format and generates a new point cloud file with different data. The type of the new data is determined from the filter mode: photonmap, ssdiffusion, occlusion, colorbleeding, or sort.
In photonmap mode, the input point cloud must be a photon map in which each point contains power and incident direction data. The output is a point cloud where each point contains an irradiance value; each irradiance value is estimated from the power and density of the nearest n points (photons). -nphotons can be used to specify how many points should be used for the irradiance estimates; the default value is 50.
In ssdiffusion mode, the input point cloud must contain irradiance values (either direct or global illumination). The data values of the output point cloud are computed with a subsurface scattering diffusion approximation. The scattering properties of the material can be specified in three equivalent ways:
1: The simplest is to just specify a -material and -unitlength. The built-in materials are apple, chicken1, chicken2, ketchup, marble, potato, skimmilk, wholemilk, cream, skin1, skin2, and spectralon; the data values are from [Jensen01]. The default material is marble. The data values assume that the scene units are mm; if this is not the case, a unitlength parameter can be passed to ptfilter. For example, if the scene units are cm, use -unitlength 0.1.
2: Specify -scattering (the reduced scattering coefficients, sigma's), -absorption (the absorption coefficients, sigmaa), and -ior (index of refraction) of the material.
3: Specify -albedo (BRDF albedo), -diffusemeanfreepath, and -ior (index of refraction) of the material. If varying albedo and/or diffusemeanfreepath values are to be read from the input point cloud, use -albedo fromfile and/or -diffusemeanfreepath fromfile.
In occlusion mode, the input point clouds must contain area data. Each area should correspond to a micropolygon. The output is a point cloud with ambient occlusion values, and optionally environment directions. The -maxsolidangle parameter is a time vs. quality knob with default value of 1; reasonable values are in the 0.02 to 0.1 range. -samplebase determines how large an area the occlusion should be averaged over. This is used to avoid thin stripes of missing occlusion very close to perpendicular geometry. Values must be between 0.0 (compute occlusion at a single point) and 1.0 (average occlusion over a micropolygon area); the default value is 0. -bias determines an offset above the surface for the occlusion computation. Used to avoid self-occlusion (just as for ray-traced ambient occlusion). Default value is 0. -sides determines whether front, back, or both sides should contribute occlusion. Default is both. (This parameter superseedes the old -backsidesocclude parameter.) -clamp determines whether the occlusions from different surfaces should simply be added (which often leads to too much occlusion) or clamped. The clamped computation is more accurate, but also only half as fast. The default is 1 (on). -envdirs specifies whether environment directions should be computed (and written in the output point cloud file). The default is 0 (off). Environment directions are computed in world space. The environment directions will be (0,0,0) at those locations where the ambient occlusion is 1. -maxdist is the maximum distance for occlusion. The default is 1e15. -falloff is the occlusion falloff. Typical values are 0.0 (no falloff), 1.0 (linear falloff), and 2.0 (quadratic falloff). The default is 0. Note that there will always be a quadratic falloff due to distance; this parameter just specifies additional falloff. -falloffmode is the occlusion falloff mode. If the falloff mode is 0, the falloff is computed as exp(-dist*falloff). If the falloff mode is 1, the falloff is computed as pow((1 - dist/maxdist), falloff). The default falloff mode is 0. -distribution specifies whether the distribution should be cosine or uniform. The default is cosine. -coneangle specifies over how wide a cone the occlusion should be computed. The maximum value is pi/2, which is also the default. If the occlusion should be computed at other positions than the area point positions, a separate set of compute-positions can be specified using -positions with a list of position point clouds.
In colorbleeding mode, the input point clouds must contain area and radiosity data. Each area should correspond to a micropolygon, and the radiosity will typically have been computed by running a shader computing direct illumination. The output is a point cloud with color bleeding and ambient occlusion values, and optionally environment directions. The data fields of the output point cloud are called _occlusion, _indirectdiffuse, and _environmentdir. Most parameters are the same as in the occlusion mode. -sortbleeding determines whether the color bleeding should be sorted front-to-back and composited correctly, or simply mixed. Sorting takes roughly 30 percent longer, but resolves color bleeding more accurately and gives darker shadows. Default is 0 (no sorting). -sides determines whether front, back, or both sides should contribute occlusion and color bleeding. Default is both. -bounces determines how many bounces of color bleeding should be simulated. The default is 1. For more than one bounce, the point cloud file must contain Cs data in addition to the area and radiosity data.
The sort mode sorts the points in the point cloud(s) in front-to-back order. The points are first sorted on z. Points with the same z are sorted on y. Points with the same z and y are sorted on x.
Pixar Animation Studios
|