Reference/Render Globals Image
From Affogato
Contents |
Shading
Shading Rate
This is your number one image quality knob. The Shading Rate tells the renderer the frequency at which the shaders should be run on the geometry in your scene. Confusingly, it is expressed as an area in pixels square, not as a frequency per pixel, as one might be trapped to guess from its name.
- Tip: The lower the Shading Rate, the more time it will take to render your image and the crisper it will look.
Most RenderMan renderers available today are more or less based on an algorithm called REYES, which stands for "Renders Everything You Ever Saw"—sounds snatchy, doesn't it?
REYES renderers dice geometric primitives into tiny µ-polygons. The granularity of the resulting µ-polygon grid is proportional to Shading Rate in these renderers. For this reason Shading Rate also directly affects silhouette quality. The following description applies to REYES-based renderers:
A Shading Rate of 1.0 means that no µ-polygon's size will usually exceed the area of one pixel. Displacement shaders may make this constraint break which is why you can adjust this on a per-object basis. Imagine how even the simplest objects will generate thousands of µ-polygons and render beautifully and without any nasty polygonal silhouette edges.
- Tip: A good setting for Shading Rate is 1.0 if you do high-res work. If you render for screen or web pages, consider a value of 0.5 or 0.25. Lower values will also increase the image's sharpness. For previews, a value of 1.0–20.0 should be ok.
Always keep in mind that Shading Rate determines area respective size of a µ-polygon, not its edge length! At a Shading Rate of 9, µ-polygons should end up with a maximum edge length of around 3 pixels on screen, namely <math>\sqrt{9}</math>.
- Warning: Halving Shading Rate usually doubles the number of µ-polygons in your image and thus the time spent on shading!
Pixel Sampling & Filtering
Pixel Samples X & Y
This is your number two quality knob. It tells the renderer how often to sample the scene at each pixel resp. how strong the geometric and temporal antialiasing will be.
Under sudden circumstances, if you have a lot of high-frequency content in your image (e. g. many tiny objects, which have a size close to Shading Rate), Pixel Samples may even become more important than Shading Rate.
- Warning: Pixel Samples usually do have a major impact on rendertime. The more complex the shaders are though, the less impact they'll have and vice versa. For previews, set them to 1×1 samples; this will essentially turn antialiasing off. To capture very high frequencies in geometry or shaders/textures and/or get noise-free images with motion blur or depth of field, you will need to increase them considerably. If you have fur or hair in your image, try upping Shading Rate on these objects and increase Pixel Samples instead (e. g. use a Shading Rate of 7.0 and 9×9 Pixel Samples).
Pixel Filter
This is the function used to filter the Pixel Samples into the final color. It will have a subtle yet visible impact on the look of the image.
- Tip: Think of the Pixel Filter as a filter you would normally apply in your 2D imaging application; like e.g. 'Sharpen' or 'Gaussian Blur'. Only this one is applied to the samples before quantizing to the display's color depth and before even pixels exist. The result is of much higher quality than it would be had you applied a similar filter in your 2D imaging application after the image has been rendered.
It works like this: the samples are averaged together to calculate the final pixel color. Each sample is weigthed before the average is calculated. The weight of the sample is a function of its distance to the center of the belonging pixel. This function, which essentially determines how much of the respective sample will go into the pixel, is called the "Pixel Filter". In general, the farther away a sample is, the less impact its color will have on the final color of the pixel being processed. Several pixel filters exist. Some renderers offer additional ones to those found in every RenderMan compliant renderer.
Box
The simplest filter. Averages samples together without weighting them. This means that the sample's distance to the filter's center is not used to determine its influence on the resulting color. Used for (shadow) depth/deep-map renderings and other special stuff. Avoid this filter if you want to create nice looking images. For previews it's pretty ok though.
Triangle
Samples are weighted linearly. This filter is a compromise between quality and speed. It looks better that Box, but is far from a the quality of a Catmull-Rom or Sinc filter.
Catmull-Rom
Samples are weigthed by a hermite curve that has a negative lobe near its border. This filter will increase contrast at edges in the image and therefore works a bit like those sharpening filters you probaly know from your 2D imaging application of choice.
Gaussian
Samples are weigthed by a gaussian bell-curve. Images will look more blurry than with Catmull-Rom. By using a bigger Filter Size with this filter, you will get very smooth looking images. This is the preferred filter if you work for output to film.
Sinc
Samples are weighted by a filter that looks similar to Catmull-Rom and which, too, has a negative lobe near its border. This filter will increase contrast at the edges in the image and give very sharp images, in particular with many Pixel Samples and a smaller Filter Size.
Pixel Filter Width & Height
This controls the width or support of the used Pixel Filter; i. e. how many pixels will contribute to the filtered pixel's color. Imagine applying a filter in your digital imaging application, as described in the Pixel Filter section. Filter Width & Height are similar to two times the 'radius' parameter of such a digital imaging filter.
- Tip: Using a narrower Filter Width & Height will yield sharper images, regardless of the Pixel Filter being used.
Here is a list of suggested Widths & Heights for some of the filters. It is sorted ascending by expense (not quality!) as the renderitme increases with larger filter support:
- Box: 1.0
- Triangle: 2.0
- Blackman-Harris: 2.0
- Gaussian: 2.5
- Catmull-Rom: 4.0
- Mitchell: 4.0
- Lanczos: 6.0
- Bessel: 6.49
- Sinc: 8.0
R.E.Y.E.S.
These are options that apply to renderers using an algorithm called REYES. This is true for almost all renderers supported currently by Affogato; only AIR uses a different algorithm and 3Delight and Pixie might do if some special Hider is selected.
Bucket Width & Height
The width and height of a bucket. The image gets divided into cells called 'buckets'. These get processed by the render one by one, ensuring that the memory requirements stay as low as possible.
Imagine that when the REYES algorithm was designed, machines had less than 1MB of RAM but people wanted to render 2k frames with complex geometry diced into millions of µ-polygons and motion blur without going into swap.
Grid Size
The maximum number of µ-polygons in a grid. This should usually be the product of Bucket Width and Bucket Height divided by Shading Rate. Read:
<math>Grid Size={{Bucket Width \times Bucket Height}\over Shading Rate}</math>
For example, if your Bucket Width & Height are set to 32 respectively and your Shading Rate is 2.0, your Grid Size should ideally be 512.
Texture Memory
Sets the amount of memory, in megabytes, the renderer uses for texture mapping. Increasing this value may improve texture map, shadow map and environment map access performance and thus shorten render time at the cost of a higher memory usage during rendering.
The memory required to hold all the textures for some scene may exceed the amount of physical memory available. To render scenes like this without swapping to disk, most renderers use a memory caching system that keeps the texture memory footprint below a threshold which is defined through the value of Texture Memory.
- Warning: Deep shadow maps require lots of texture memory. Make sure the value of Texture Memory is set to an approriate value when rendering images that have lights referencing deeps shadow maps in them. If this value is too low, rendering deep shadows can become very slow as the texture cache thrashes and most rendering time is spent reloading deep shadow map tiles from the disk!

