Friday 30 September 2011

Rendering a walk-through animation

uote>

Search Keywords: animation, walk-through

General

In this tutorial we will render a walk-through animation of a static scene, where nothing but the camera moves. We will use global illumination to light the scene, which makes the task somewhat complicated. GI is usually too slow to calculate from scratch and with sufficient quality for each frame of the animation. To optimize this process and save rendering time, we can use the fact that the scene is static and the camera is the only thing that moves. Most of the GI solutions used in V-Ray (irradiance map, photon map, light cache) are either fully or partially view-independent, and we can use this fact to reduce rendering times.

For this tutorial, we will use the irradiance map as a primary GI engine, and the light cache as a secondary engine. To make the process easier to understand, we will render the scene in three steps.

In the first step, we will calculate the light cache for the entire animation. In the second step, we will calculate the irradiance map. In the third step, we will render the final animation.

Note that you don't have to use this method to render walk-throughs. You can always use a slower brute-force approach and avoid having to deal with all the issues around precalculating the various GI solutions. However, you pay for this with render times.

Part I: Calculating the light cache

1.1. Open the starting scene.

1.2. Assign V-Ray as the current renderer.

1.3. Set the Background color in the 3dsmax Environment and Effects window to RGB 252,252,252.

1.4. In the Render scene dialog, turn Global illumination on and set both the Primary GI engine and the Secondary GI engine to Light cache.

1.5. Set the Image sampler type to Fixed for faster previews.

1.6. Turn on Show calc. phase in the Light cache rollout.

1.7. Check the skylight Override MAX's checkbox in the Environment rollout.

1.8. Set the skylight color to RGB 252,253,255 and HSV(156,3,255).

1.9. Set the skylight color Multiplier to 4.0.

1.10. Uncheck the Default lights checkbox in the Global switches rollout. This will remove the default max lighting in the scene and it will by lit only by the environment skylight.

1.11. Go to the Camera rollout and change the Camera type to Fish eye.

1.12. Uncheck the Auto-fit checkbox, change the Dist value to 1.0 and Curve to 0.35. We set the camera to Fish-eye to produce a more interesting effect.

1.13. Render frames 0 and 360 for reference.

The light cache doesn't look bad, but we will need to calculate it for the entire walk-through animation, and not for a single frame only. Note that this is not strictly necessary - we can render the animation with the light cache being calculated each frame; however, rendering it only once will save rendering time, especially for long animations.

1.14. Set the light cache Mode to Fly-through. Make sure that the timeline animation range matches the range which you want to render. This is important because the light cache will look at the current timeline animation range when calculating the fly-through cache.

Since all the light cache samples will be distributed among all the animation frames, we will need to increase the light cache Subdivs value. The exact value depends on the quality you want to achieve and on your specific animation. If the camera moves slowly, or the path is relatively short (e.g. just one room of a house) then you can use lower Subdivs value, since most of the samples will fall in the same place anyways. If the camera moves quickly or covers larger parts of the scene, you will need more samples to get adequate coverage everywhere.

1.15. Set the light cache Subdivs to 2000.

1.16. Render frame 360 for example. Note that although we render only one frame, the Fly-through mode forces the light cache to be computed for the entire animation:

During the fly-through mode, the preview display of the light cache is not very useful, since it shows samples from the entire camera path. The following image shows the preview display while the light cache is being calculated:

Now that we have computed the light cache, we need to see if it is good enough for our needs. We can do this by rendering several different frames with the same light cache.

1.17. Save the light cache to disk, for example to lightcache.vrlmap.

1.18. Set the light cache Mode to From file and select the saved file name.

1.19. Change the Filter in the Light cache rollout from Nearest to None. Now we can see better the samples' size.

1.20. Render frame 435:

You can notice that in places where the camera gets close to a wall in the scene, the light cache samples are smaller and more noisy. This is because the light cache Scale is set to Screen by default. This is fine for still images, but for animation we would like a more even sample distribution. To achieve this, we will need to use the World option.

1.21. Set the light cache Scale to World.

Now we have to determine a good Sample size for the scene. This can be done, for example, by creating a geosphere directly in the camera viewport or a Tape object and using it to visualize the sample size. For our scene, a sample size of about 2.0 seems to be good enough (the scene is in Generic units). In general, you should make the Sample size as large as possible without getting artifacts (light leaks etc). Even if you are getting some light leaks, it may be possible to remove them by reducing the filter Interp. samples value.

1.22. Set the light cache Sample size to 2.0.

Keep in mind that when you use the World scale, you must make sure that your scene is not too large (e.g. with a large ground plane) or that the light cache samples are not too small, otherwise you can run out of memory for the light cache. This is not such a problem for the Screen mode, since surfaces that are far away from the camera will get fewer samples anyways. For exterior scenes, it is recommended to use the Screen mode always.

1.23. Change the light cache Mode back to Single frame and lower the Subdivs to 500 just to check if the sample size is adequate. Here is an example of frame 435:

The samples are equal in size everywhere and they are just big enough so we don't get artifacts on the image.

1.24. Set the light cache Mode to Fly-through again.

1.25. To smooth out the light cache a little bit, increase the the Subdivs to 3300.

1.26. Change the Filter back to Nearest.

1.27. Render frame 360:

The calculation time is longer now due to the increased samples number.

1.28. Save the light cache and set the mode to From file again.

You may notice that the light cache file has become bigger in size. This is because there are more samples in the light cache, partly because of the World scale mode - the same amount of samples are taken everywhere in the scene (in Screen mode, the sample size increases as the samples get farther from the camera, which leads to less samples).

Now we can render several different frames to make sure that the light cache is adequate for our animation.

1.29. Render a few frames.

It looks like the light cache is good and we can move on to the next part - calculating the irradiance map.

Part II: Calculating the irradiance map

Compared to the light cache, the irradiance map may take significantly more time to calculate. This is because the light cache provides a very crude and undetailed lighting solution. The irradiance map, on the other hand, takes care of the small GI shadows in the scene.

Note that the irradiance map cannot be calculated through backburner. It must be calculated on a single machine. This is because we will use the Multiframe incremental Mode for the irradiance map.

2.1. Set the primary engine to Irradiance map.

2.2. Set the irradiance map Mode to Multiframe incremental.

2.3. Check the Show calc. phase checkbox.

Since the camera moves quite slowly, there is no need to render every single frame of the animation at this stage. We can get an adequate irradiance map by rendering every 10-th frame, for example. If the camera moves faster, we will need to render more frames, for example every 5th frame.


2.4. Set 3dsmax to render every 5-th frame from the
Common tab of the Render scene dialog.

2.5. Turn on the Don't render final image option in the Global switches rollout, since we are not rendering the final animation yet and we don't need the final frames.
2.6. Render the entire sequence.

2.7. Save the irradiance map to file, for example, irmap.vrmap.
2.8. Set the irradiance map
Mode to From File with the saved file.

Now we have one irradiance map for entire animation sequence. We can render a few frames to make sure everything is ok.

2.9. Turn off the Don't render final image option.

2.10. Render frames 0 and 360 from the animation:

The two images above were rendered with the settings used for the final animation in Part III.

Now we are ready to render the final animation.

Part III: Rendering the final animation

For the final animation you can use backburner with the saved irradiance map either on the client pc or locally on each server machine. In either case, you must make sure that each render slave can find the irradiance map in the location specified in the From file parameter for the irradiance map.

3.1. Set the Image sampler type to Adaptive subdivision with Min/Max rate to 0/3 for better antialiasing quality. You can also check the Normals checkbox to avoid flickering problems with small details in the scene.

3.2. Make sure the irradiance map Interpolation type is set to Density-based. This will enable the irradiance map to pick the closest available samples from the cached solution.

3.3. Set 3dsmax to render every single frame.

3.4. Render the final animation.

Here is the ending scene.

Here is the final animation that you should get if you have followed the tutorial correctly (8 MB).

Notes

  • We are not using glossy reflections in this scene, but if you are using them and not using the Use light cache for glossy rays option at the same time, then you can set the Secondary GI engine to None for the final animation. This is because you won't need the light cache and turning it off will save memory.

Discussion

In this section, we have added some questions about this tutorial that were asked on our online forum, along with the respective answers.

Q: Did you render out to consecutive images and then compile the avi or was it straight out to avi?

A: The animation was first rendered out to .png images, and then compiled into an .avi. That way, you won't lose all rendered frames if something goes wrong in the middle of the rendering... and also you can play with the compression settings later.

Q: Why did you choose Multiframe incremental over Incremental add to current map mode? What is the difference between the two that would cause you to choose one over the other? I ask because Ive never used Multiframe incremental and have always used the Incremental add to current map.

A: The only difference is that the Multiframe incremental mode will delete the map in memory at the start of the rendering. With the Incremental add mode, the current map is not deleted.

Q: I just wanted to clarify... It is possible to use Incremental add to current map mode in conjunction with backburner without any problems (ie flicker)? Does backburner handle frame allocation ok without max saving any files? Reading your post above, I get the feeling you are suggesting that you need to send different sections of the animation to each render-node.

A: Yes, you can render different sections on different nodes, but you must merge the resulting irradiance maps manually with the irradiance map viewer in the end, before rendering the final animation. Also, you must make sure that each section is allocated to one single render node only.

Q: I must make an animation with a spray which you can see in the image upload, and I have many glossy reflect and refract, if I follow your tut how can I make my final setup? With lightcache for second bounce and Use light cache for glossy rays or without light cache and none for the second bounce? Does Use light cache for glossy rays and irmap in first bounce work fine?

A: You can have the light cache saved with the irradiance map. If done so, you can actually just turn off secondary bounces which will save memory as you wont have to load the light cache. However, if you have the light cache help precompute the glossies with the Use light cache for glossy rays option, then you'll need to go ahead and load the light cache when rendering.

V-Ray rendering system 1.5

align="center">

V-Ray is a renderer plugin for 3ds Max. In order to use V-Ray, you must first select it as your current renderer. You can do that by clicking on the Assign... button in the Current renderers rollout of the Render Scene dialog:

[Choose Renderer dialog]

In 3ds Max 9 and later, the V-Ray parameters are divided into several tabs in the render scene dialog; additionally each tab is divided into several rollouts:

[Render Scene dialog]

align="center">

[V-Ray VFB window]

Search Keywords: VFB, G-buffer, frame buffer, render pass

General

In addition to rendering to the 3ds Max Rendered Frame Window (RFW or VFB), V-Ray allows you to render to a V-Ray specific frame buffer, which has some additional capabilities:

  • Allows you to view all render elements in a single window and switch between them easily;
  • Keeps the image in full 32-bit floating-point format;
  • Allows you to perform simple color corrections on the rendered image;
  • Allows you to choose the order in which the buckets are rendered.

The V-Ray VFB also has some limitations, which are listed in the Notes section below.

Parameters

[V-Ray VFB options]

Show last VFB - If you have rendered to the V-Ray VFB, but have closed it, this button allows you to open it again. The same can also be achieved with the showLastVFB() MaxScript method of the V-Ray renderer.

Enable built-in frame buffer - Enables the use of built-in V-Ray frame buffer. Due to technical reasons, the original 3ds Max frame buffer still exists and is being created. However, when this feature is turned on - V-Ray will not render any data to the 3ds Max frame buffer. In order to preserve memory consumption we recommend that you set the original 3ds Max resolution to a very low value (like 100x100) and turn off the 3ds Max Virtual Frame Buffer from the common 3ds Max render settings.

Render to memory frame buffer - this will create a V-Ray frame buffer and will use it to store color data that you can observe while rendering and afterwards. If you wish to render really high resolutions that would not fit into memory or that may eat up a lot of your RAM not allowing for the scene to render properly - you can turn this feature off and use only Render to V-Ray raw image file feature.

Get resolution from 3ds Max - this will cause the V-Ray VFB to take its resolution from the 3ds Max common render settings.

Output resolution - this is the resolution that you wish to use with the V-Ray frame buffer.

Pixel aspect - specifies the pixel aspect for the rendered image in the V-Ray frame buffer.

Render to V-Ray raw image file - when this is on, V-Ray directly writes to disk the raw image data as it is being rendered. It does not store any data in the RAM, so this feature is very handy when rendering huge resolutions for preserving memory. If you wish to see what is being rendered, you can turn on the Generate preview setting. You can specify either a .vrimg or an .exr file for output:

  • If you specify a .vrimg extension, the resulting file can be viewed through the File > View image... menu of 3ds Max, or converted to an OpenEXR file with the help of the vrimg2exr tool.

  • If you specify an .exr extension, V-Ray will write out a tiled OpenEXR file that can be used directly by 3ds Max or other compositing applications. The file contains all render elements for the image.

Generate preview - this will create a small preview of what is being rendered. If you are not using the V-Ray memory frame buffer for conserving memory (i.e. Render to memory frame buffer is off), you can use this feature to see a small image of what is being actually rendered and stop the renderer if there is anything that looks wrong.

Save separate render channels - this option allows you to save the channels from the VFB into separate files. Use the Browse... button to specify the file. This option is available only when rendering to a memory frame buffer. If rendering is done only to a raw image file, the render channels can be extracted from that file after rendering is complete.

Save RGB and Save Alpha - these options allow you to disable saving of the RGB and Alpha channels respectively. This can be useful if you only want to generate other render channels. Note that V-Ray will still generate the RGB and Alpha channels, however they will not be saved.

Hidden parameters

There are some additional parameters of the VFB, which are not available in the interface, but are accessible through MaxScript. These may be useful in certain situations. Below are listed the MaxScript names of these parameters.

output_renderType - This allows you to override the render type, specified in the 3ds Max settings. Possible values are:

0 - use 3ds Max render type (default);

1 - render the full image;

2 - region rendering;

3 - crop rendering;

4 - blow-up rendering.

output_regxmin - The left coordinate (in pixels) of the region to render (for region/crop/blow-up rendering);

output_regxmax - The right coordinate (in pixels) of the region to render (for region/drop/blow-up rendering);

output_regymin - The top coordinate (in pixels) of the region to render (for region/drop/blow-up rendering);

output_regymax - The bottom coordinate (in pixels) of the region to render (for region/drop/blow-up rendering);

VFB toolbar

="0" cellpadding="4" cellspacing="0" width="100%"> This part of the toolbar sets the currently selected channel, as well as the preview mode. Choose which channels to see with the help of the buttons. You can also view the rendered image in monochromatic mode.

This will save the current frame data to a file.You can turn this on and of on-the-fly while rendering.
This will create a 3ds Max virtual frame buffer copy of the current V-Ray frame buffer.You can turn this on and of on-the-fly while rendering.
This will force V-Ray to render the closest bucket found to the mouse pointer. Drag the mouse over the V-Ray frame buffer while rendering to see which buckers are rendered first. You can turn this on and of on-the-fly while rendering.
Region Render This option allows you to render regions in the V-Ray VFB
This open permanently the info dialog which will give you information about the pixel you right-click the mouse pointer on. If you right-click the mouse pointer over a pixel without turning this setting on - then you will see the info dialog only while yuor mouse button is down
This will open a so called "levels control" dialog which will let you define color corrections of various color channels. It will also show the histogram of the currently contained image data in the buffer. Click and drag your mid-button in the histogram to interactively scale the preview.
Clears the contents of the frame buffer. Somethimes helpful when starting a new render to prevent confusion with the previous image.

VFB shortcuts

Here is the list of shortcuts you can use to navigate through the VFB image. Please note that VFB window must have the curent focus for the shortcuts to have effect:

Mouse Description
CTRL+LeftClick, CTRL+RightClick Zoom in/Zoom out
Roll the mouse-rollon button up/down Zoom in/Zoom out
Double-click LeftButton Zoom to 100%
RightClick Show the info dialog with the properties of the last pixel clicked. In order to see the info non-stop - turn on the info dialog button
MidButton dragging view pan (hand tool)


Keyboard Description
+ / - Zoom in/Zoom out
* Zoom to 100%
Arrow keys Pan left, up, right, down

Notes

  • The V-Ray VFB does not display the G-Buffer layers (like Coverage etc.);

  • The V-Ray VFB does not work with stripe rendering;

  • Even though you select the V-Ray VFB as your output, the 3ds Max VFB is still created and thus takes additional memory. If you want to reduce that memory, you need to uncheck the Get resolution from MAX option, set the 3ds Мax resolution to a low value like 100 x 100, and then select your real output resolution in the V-Ray VFB options.

  • If you have selected an output image file from the Common tab of the Render Scene dialog, V-Ray will fill out the 3ds Max RFW, and this will be saved as your image. If you want to save the V-Ray VFB instead, you should use the Split render channels or Render to V-Ray raw image file option of the V-Ray VFB.

  • The OpenEXR file format is an open file format for high dynamic range images originally developed by Industrial Light and Magic. The official site of the OpenEXR file format is http://www.openexr.com/
  • Search Keywords: switches, global switches

    General

    The global switches allow you to control various aspects of the renderer globally.

    Parameters

    [Global switches rollout]Geometry section

    Displacement - enables (default) or disables V-Ray's own displacement mapping. Note that this has no effect on standard Max displacement mapping, which can be controlled via the corresponding parameter in the Render Scene dialog.

    Force back face culling - enables or disables (default) back face culling for camera and shadow rays. When this option is on, the surfaces of objects which are turned away from the camera (or the light source, when tracing shadows) will appear fully transparent. This allows to look inside closed objects when the camera is outside.

    Lighting section

    Lights - enables or disables lights globally. Note that if you uncheck this, V-Ray will use the default lights. If you do not want any direct lighting in your scene, you must uncheck both this and the Default lights parameters.

    Default lights - allows you to control the default lights in the scene.

    - Off - the default lights in the scene will be always switched off

    -
    On - the default lights are always switched on when there are no lights in the scene or when you have disabled lighting globally (see Light parameter).

    -
    Off with GI - the default lights will be switched off only when the Global Illumination is enabled or if there are lights in the scene

    Hidden lights - enables or disables the usage of hidden lights. When this is checked, lights are rendered regardless of whether they are hidden or not. When this option is off, any lights that are hidden for any reason (either explicitly or by type) will not be included in the rendering.

    Shadows - enables or disables shadows globally.

    Show GI only - when this option is on, direct lighting will not be included in the final rendering. Note that lights will still be considered for GI calculations, however in the end only the indirect lighting will be shown.

    Materials section

    Reflection/refraction - enables or disables the calculation of reflections and refractions in V-Ray maps and materials.

    Max depth - enables the user to limit globally the reflection/refraction depth. When this is unchecked, the depth is controlled locally by the materials/maps. When this option is checked, all materials and maps use the depth specified here.

    Maps - enables or disables texture maps.

    Filter maps - enables or disables texture map filtering. When enabled, the depth is controlled locally by the settings of the texture maps. When disabled, no filtering is performed.

    Filter maps for GI - enable or disable texture filtering during GI calculations and glossy reflections/refractions. When off (the default), texture maps are not filtered for GI and glossy reflections/refractions in order to speed up the calculations. If this option is on, textures will be filtered in these cases.

    Max. transp levels - this controls to what depth transparent objects will be traced.

    Transp. cutoff - this controls when tracing of transparent objects will be stopped. If the accumulated transparency of a ray is below this threshold, no further tracing will be performed.

    Override mtl - this option allows the user to override the scene materials when rendering. All objects will be rendered with the chosen material, if one is selected, or with their default wireframe materials if no material is specified.

    Override exclude - clicking this button brings up the 3ds Max Include/Exclude dialog which allows you to select exactly for which objects the material is overridden.

    Glossy effects - this option allows the user to replace all glossy reflections in the scene with non-glossy ones; useful for test renderings.

    Indirect illumination section

    Don't render final image - when this option is on, V-Ray will only calculate the relevant global illumination maps (photon maps, light maps, irradiance maps). This is a useful option if you are calculating maps for a fly-through animation.

    Raytracing section

    Secondary rays bias - a small positive offset that will be applied to all secondary rays; this can be used if you have overlapping faces in the scene to avoid the black splotches that may appear. See the Examples section for a demonstration of the effect of this parameter. This parameter is also useful when using the 3ds Max Render-to-texture feature.

    Compatibility section

    Legacy sun/sky/camera models - previous versions of V-Ray used slightly different calculation models for the VRaySun, VRaySky and VRayPhysicalCamera which were not entirely physically accurate. When this option is off (the default), V-Ray uses improved and more accurate models. When this is on, V-Ray will switch to the old models for compatibility with old scenes. When an old scene is opened, V-Ray will automatically display a dialog asking if you want to change this setting.

    Use 3ds Max photometric scale - when on (the default), this option aligns the VRayLight, VRaySun, VRaySky and VRayPhysicalCamera to the photometric units used by 3ds Max and its photometric lights. When this is off, these plugins operate in the internal V-Ray photometric space, like in older versions of V-Ray. Keeping this option on ensures that a VRayLight with a given power will match a 3ds Max photometric light with the same power.

  • Examples

    General

    In V-Ray, an image sampler refers to an algorithm for sampling and filtering the image function, and producing the final array of pixels that constitute the rendered image.

    V-Ray implements several algorithms for sampling an image. All image samplers support MAX's standard antialiasing filters, although at the cost of increased rendering time. You can choose between Fixed rate sampler, Adaptive DMC sampler and Adaptive subdivision sampler.

    Parameters

    [Image sampler rollout]

    Image sampler

    Type - specifies the image sampler type:

    Fixed - this sampler always takes the same number of samples per pixel;

    Adaptive DMC - this sampler takes a variable number of samples per pixel depending on the difference in the intensity of the pixels;

    Adaptive subdivision - this sampler divides the image into an adaptive grid-like structure and refines depending on the difference in pixel intensity.

    Antialiasing filter

    This section allows you to choose an antialiasing filter. All standard 3ds Max filters are supported with the exception of the Plate Match filter. See the Examples section for more information on antialiasing filters.

    Fixed rate sampler

    [Fixed sampler]This is the simplest image sampler, and it takes a fixed number of samples for each pixel.

    Subdivs - determines number of samples per pixel. When this is set to 1, one sample at the center of each pixel is taken. If this is greater than 1, the samples are distributed within the pixel. The actual number of pixels is the square of this parameter (e.g. 4 subdivs produce 16 samples per pixel).

    Adaptive DMC sampler

    [Adaptive DMC sampler]This sampler makes a variable number of samples per pixel based on the difference in intensity between the pixel and its neighbors.

    This is the preferred sampler for images with lots of small details (like VRayFur, for example) and/or blurry effects (DOF, motion blur, glossy reflections etc). It also takes up less RAM than the Adaptive subdivision sampler.

    Min subdivs - determines the initial (minimum) number of samples taken for each pixel. You will rarely need to set this to more than 1, except if you have very thin lines that are not captured correctly, or fast moving objects if you use motion blur. The actual number of pixels is the square of this number (e.g. 4 subdivs produce 16 samples per pixel).

    Max subdivs - determines the maximum number of samples for a pixel. The actual maximum number of sampler is the square of this number (e.g. 4 subdivs produces a maximum of 16 samples). Note that V-Ray may take less than the maximum number of samples, if the difference in intensity of the neighbouring pixels is small enough.

    Use DMC sampler threshold - when this is on (the default), V-Ray will use the threshold specified in the DMC sampler to determine if more samples are needed for a pixel. When this is off, the Color threshold parameter will be used instead.

    Color threshold - the threshold that will be used to determine if a pixel needs more samples. This is ignored if the Use DMC sampler threshold option is on.

    Show samples - if this is on, V-Ray will show an image where the pixel brightness is directly proportional to the number of samples taken at this pixel. This is useful for fine-tuning the antialiasing of the image.

    Adaptive subdivision sampler

    [Adaptive subdivision sampler]This is an advanced image sampler capable of undersampling (taking less than one sample per pixel). In the absence of blurry effects (direct GI, DOF, glossy reflection/reftaction etc) this is the best preferred image sampler in V-Ray. On average it takes fewer samples (and thus less time) to achieve the same image quality as the other image samplers. However, with detailed textures and/or blurry effects, it can be slower and produce worse results than the other two methods.

    Also note that this sampler takes up more RAM than the other two samplers - see the Notes below.

    Min. rate - controls minimum number of samples per pixel. A value of zero means one sample per pixel; -1 means one sample every two pixels; -2 means one sample every 4 pixels etc.

    Max. rate - controls maximum number of samples per pixel; zero means one sample per pixel, 1 means four samples, 2 means eight samples etc.

    Color threshold - determines the sensitivity of the sampler to changes in pixel intensity. Lower values will produce better results, while higher values will be faster, but may leave some areas of similar intensity undersampled.

    Randomize samples - displaces the samples slightly to produce better antialiasing of nearly horizontal or vertical lines.

    Object outline - this will cause the image sampler to always supersample object edges (regardless of whether they actually need to be supersampled). This option has no effect if DOF or motion blur is enabled.

    Normals - this will supersample areas with sharply varying normals. This option has no effect if DOF or motion blur is enabled.

    Show samples - if this is on, V-Ray will show an image where the pixel brightness is directly proportional to the number of samples taken at this pixel. This is useful for fine-tuning the antialiasing of the image.

    Notes

  • Which sampler to use for a given scene? The answer is best found with experiments, but here are some tips:

    • For smooth scenes with only a few blurry effects and smooth textures, the Adaptive subdivision sampler with its ability to undersample the image is unbeatable.

    • For images with detailed textures or lots of geometry detail and only a few blurry effects, the Adaptive DMC sampler performs best. Also in the case of animations involving detailed textures, the Adaptive subdivision sampler might produce jittering which the Adaptive DMC sampler avoids.

    • For complex scenes with lots of blurry effects and/or detailed textures, the Fixed rate sampler performs best and is very predictable with regards to the quality and render time.

  • A note on RAM usage: image samplers require substantial amount of RAM to store information about each bucket. Using large bucket sizes may take a lot of RAM. This is especially true for the Adaptive subdivision sampler, which stores all individual sub-samples taken within a bucket. The Adaptive DMC sampler and the Fixed rate sampler on the other hand only store the summed result of all sub-samples for a pixel and so usually require less RAM.

Examples

General

Approaches to indirect illumination

V-Ray implements several approaches for computing indirect illumination with different trade-offs between quality and speed:

  • Brute force - this is the simplest approach; indirect illumination is computed independently for each shaded surface point by tracing a number of rays in different directions on the hemisphere above that point.

    Advantages:
    • this approach preserves all the detail (e.g. small and sharp shadows) in the indirect lighting;
    • it is free from defects like flickering in animations;
    • no additional memory is required;
    • indirect illumination in the case of motion-blurred moving objects is computed correctly.

    Disadvantages:
    • the approach is very slow for complex images (e.g. interior lighting);
    • it tends to produce noise in the images, which can be avoided only by shooting a larger number of rays, thus slowing it even more.

  • Irradiance map - this approach is based on irradiance caching; the basic idea is to compute the indirect illumination only at some points in the scene, and interpolate for the rest of the points.

    Advantages:
    • the irradiance map is very fast compared to direct computation, especially for scenes with large flat areas;
    • the noise inherent to direct computation is greatly reduced;
    • the irradiance map can be saved an re-used to speed up calculations of different views for the same scene and of fly-through animations;
    • the irradiance map can also be used to accelerate direct diffuse lighting from area light sources.

    Disadvantages:
    • some details in indirect lighting can be lost or blurred due to the interpolation;
    • if low settings are used, flickering may occur when rendering animations;
    • the irradiance map requires additional memory;
    • indirect illumination with motion-blurred moving objects is not entirely correct and may lead to noise (although in most cases this is not noticeable).

  • Photon map - this approach is based on tracing particles starting from the light sources and bouncing around the scene. This is useful for interior or semi-interior scenes whith lots of lights or small windows. The photon map usually does not produce good enough results to be used directly; however it can be used as a rough approximation to the lighting in the scene to speed the calculation of GI through direct computation or irradiance map.

    Advantages:
    • the photon map can produce a rough approximation of the lighting in the scene very quickly;
    • the photon map can be saved an re-used to speed up calculation of different views for the same scene and of fly-through animations;
    • the photon map is view-independent.

    Disadvantages:
    • the photon map usually is not suitable for direct visualization;
    • requires additional memory;
    • in V-Ray's implementation, illumination involving motion-blurred moving objects is not entirely correct (although this is not a problem in most cases).
    • the photon map needs actual lights in order to work; it cannot be used to produce indirect illumination caused by environment lights (skylight).

  • Light cache - light caching is a technique for approximating the global illumination in a scene. It is very similar to photon mapping, but without many of its limitations. The light map is built by tracing many many eye paths from the camera. Each of the bounces in the path stores the illumination from the rest of the path into a 3d structure, very similar to the photon map. The light map is a universal GI solution that can be used for both interior or exterior scenes, either directly or as a secondary bounce approximation when used with the irradiance map or the brute force GI method.

    Advantages:

    • the light cache is easy to set up. We only have the camera to trace rays from, as opposed to the photon map, which must process each light in the scene and usually requires separate setup for each light.
    • the light-caching approach works efficiently with any lights - including skylight, self-illuminated objects, non-physical lights, photometric lights etc. In contrast, the photon map is limited in the lighting effects it can reproduce - for example, the photon map cannot reproduce the illumination from skylight or from standard omni lights without inverse-square falloff.
    • the light cache produces correct results in corners and around small objects. The photon map, on the other hand, relies on tricky density estimation schemes, which often produce wrong results in these cases, either darkening or brightening those areas.
    • in many cases the light cache can be visualized directly for very fast and smooth previews of the lighting in the scene.

    Disadvantages:

    • like the irradiance map, the light cache is view-dependent and is generated for a particular position of the camera. However, it generates an approximation for indirectly visible parts of the scene as well - for example, one light cache can approximate completely the GI in a closed room;
    • currently the light cache works only with V-Ray materials;
    • like the photon map, the light cache is not adaptive. The irradiance is computed at a fixed resolution, which is determined by the user;
    • the light cache does not work very well with bump maps; use the irradiance map or brute force GI if you want to achieve better results with bump maps.
    • lighting involving motion-blurred moving objects is not entirely correct, but is very smooth since the light cache blurs GI in time as well (as opposed to the irradiance map, where each sample is computed at a particular instant of time).


Which method to use? That depends on the task at hand. The Examples section can help you in choosing a suitable method for your scene.

Primary and secondary bounces

The indirect illumination controls in V-Ray are divided into two large sections: controls concerning primary diffuse bounces and controls concerning secondary diffuse bounces. A primary diffuse bounce occurs when a shaded point is directly visible by the camera, or through specular reflective or refractive surfaces. A secondary bounce occurs when a shaded point is used in GI calculations.

Parameters

[GI interface]On - turn indirect illumination on and off.

GI caustics

GI caustics represent light that has gone through one diffuse, and one or several specular reflections (or refractions). GI caustics can can be generated by skylight, or self-illuminated objects, for example. However, caustics caused by direct lights cannot be simulated in this way. You must use the separate Caustics section to control direct light caustics. Note that GI caustics are usually hard to sample and may introduce noise in the GI solution.

Refractive GI caustics - this allows indirect lighting to pass through transparent objects (glass etc). Note that this is not the same as Caustics, which represent direct light going through transparent objects. You need refractive GI caustics to get skylight through windows, for example.

Reflective GI caustics - this allows indirect light to be reflected from specular objects (mirrors etc). Note that this is not the same as Caustics, which represent direct light going through specular surfaces. This is off by default, becase reflective GI caustics usually contribute little to the final illumination, while often they produce undesired sublte noise.

Post-processing

These controls allow additional modification of the indirect illumination, before it is added to the final rendering. The default values ensure a physically accurate result; however the user may want to modify the way GI looks for artistic purposes.

Saturation - controls the saturation of the GI; a value of 0.0 means that all color will be removed from the GI solution and will be in shades of grey only. The default value of 1.0 means the GI solution remains unmodified. Values above 1.0 boost the colors in the GI solution.

Contrast - this parameter works together with Contrast base to boost the contrast of the GI solution. When Contrast is 0.0, the GI solution becomes completely uniform with the value defined by Contrast base. A value of 1.0 means the solution remains unmodified. Values higher that 1.0 boost the contrast.

Contrast base - this parameter determines the base for the contrast boost. It defines the GI values that remain unchanged during the contrast calculations.

Ambient occlusion

These controls allow you to add an ambient occlusion term to the global illumination solution.

On - enable or disable ambient occlusion.

Amount - the amount of ambient occlusion. A value of 0.0 will produce no ambient occlusion.

Radius - ambient occlusion radius.

Subdivs - determines the number of samples used for calculating ambient occlusion. Lower values will render faster, but might introduce noise.

Primary diffuse bounces

Multiplier - this value determines how much primary diffuse bounces contribute to the final image illumination. Note that the default value of 1.0 produces a physically accurate image. Other values are possible, but not physically plausible.

Primary GI engine - the list box specifies the method to be used for primary diffuse bounces.

Irradiance map - selecting this will cause V-Ray to use an irradiance map for primary diffuse bounces. See the Irradiance map section for more information.

Global photon map - selecting this option will cause V-Ray to use a photon map for primary diffuse bounces. This mode is useful when setting up the parameters of the global photon map. Usually it does not produce good enough results for final renderings when used as a primary GI engine. See the Global photon map section for more information.

Brute force - selecting this method will cause V-Ray to use direct computation for primary diffuse bounces. See the brute force GI section for more information.

Light cache - this chooses the light cache as the primary GI engine. See the Light cache section for more information.

Secondary diffuse bounces

Multiplier - this determines the effect of secondary diffuse bounces on the scene illumination. Values close to 1.0 may tend to wash out the scene, while values around 0.0 may produce a dark image. Note that the default value of 1.0 produces physically accurate results. While other values are possible, they are not physically plausible.

Secondary diffuse bounces method - this parameter determines how V-Ray will calculate secondary diffuse bounces.

None - no secondary bounces will be computed. Use this option to produce skylit images without indirect color bleeding.

Global photon map - selecting this option will cause V-Ray to use a photon map for primary diffuse bounces. This mode is useful when setting up the parameters of the global photon map. Usually it does not produce good enough results for final renderings when used as a primary GI engine. See the Global photon map section for more information.

Brute force - selecting this method will cause V-Ray to use direct computation for primary diffuse bounces. See the Brute force GI section for more information.

Light cache - this chooses the light cache as the primary GI engine. See the Light cache section for more information.

Notes

  • V-Ray does not have a separate skylight system. The skylight effect can be achieved by setting the background color or environment map in the 3ds Max environment dialog, or in V-Ray's own Environment rollout.

  • You will get physically accurate lighting if you set both the primary and secondary GI multipliers to their default value of 1.0. While other values are possible, they will not produce a physically accurate result.
  • Examples

    Search Keywords: brute force, direct calculation, GI

    General

    This section is available only if you have chosen Brute force as either the primary or the secondary GI engine.

    The brute force method for computing global illumination recomputes the GI values for every single shaded point separately and independently from other points. While very slow, this method is very accurate, especially if you have many small details in the scene.

    To speed up brute force GI, you can use a faster method (the photon map or the light map) for approximating secondary GI bounces, while using the brute force method for the primary bounces.

    Parameters

    [DMC GI rollout]Subdivs - this determines the number of samples used to approximate GI. Note that this is not the exact number of rays that V-Ray will trace. The number of rays is proportional to the square of this number, but also depends on the settings in the DMC sampler rollout.

    Secondary bounces - this parameter is available only if brute force GI is selected as a secondary GI engine. It controls the number of light bounces that will be computed.


  • This section allows the user to control and fine-tune various aspects of the irradiance map. This section is enabled only when the irradiance map is chosen as the GI method for primary diffuse bounces.

    Some background for understanding how the irradiance map works is necessary in order to grasp the meaning of these parameters.

    Irradiance is a function defined for any point in the 3D space and represents the light arriving at this point from all possible directions. In general, irradiance is different in every point and in every direction. However, there are two useful restrictions that can be made. The first is the surface irradiance - which is the irradiance arriving at points which lie on the surface of objects in the scene. This is a natural restriction since we are usually interested in the illumination of objects in the scene, and objects are usually defined through their surface. The second restriction is that of diffuse surface irradiance - which is the total amount of light arriving at a given surface point, disregarding the direction from which it comes.

    In more simple terms, one can think of the diffuse surface irradiance as being the visible color of a surface, if we assume that its material is purely white and diffuse.

    In V-Ray, the term irradiance map refers to a method of efficiently computing the diffuse surface irradiance for objects in the scene. Since not all parts of the scene have the same detail in indirect illumination, it makes sense to compute GI more accurately in the important parts (e.g. where objects are close to each other, or in places with sharp GI shadows), and less accurately in uninteresting parts (e.g. large uniformly lit areas). The irradiance map is therefore built adaptively. This is done by rendering the image several times (each rendering is called a pass) with the rendering resolution being doubled with each pass. The idea is to start with a low resolution (say a quarter of the resolution of the final image) and work up to the final image resolution.

    The irradiance map is in fact a collection of points in 3d space (a point cloud) along with the computed indirect illumination at those points. When an object is hit during a GI pass, V-Ray looks into the irradiance map to see if there are any points similar in position and orientation to the current one. From those already computed points, V-Ray can extract various information (i.e. if there are any objects close by, how fast the indirect illumination is varying etc). Based on that information, V-Ray decides if the indirect illumination for the current point can be adequately interpolated from the points already in the irradiance map, or not. If not, the indirect illumination for the current point is computed, and that point is stored in the irradiance map. During the actual rendering, V-Ray uses a sophisticated interpolation method to derive an approximation of the irradiance for all surfaces in the scene.

    Parameters

    [Irradiance map interface]

    Built-in presets

    Current preset - this dropdown list allows you to choose from several presets for some of the irradiance map parameters. You can use these to quickly set the color, normal and distance thresholds, as well as the min/max rates. The following presets are available:

    • Very low - this preset is only useful for preview purposes to show the general lighting in the scene.
    • Low - a low-quality preset for preview purposes
    • Medium - a medium quality preset; works fine in many situations in scenes which have don't small details.
    • Medium animation - a medium quality preset targeted at reducing flickering in animations - the Distance threshold is higher.
    • High - a high-quality preset that works in most situations, even for scenes with small details as well as for most animations.
    • High animation - a high-quality preset that can be used if the High preset produces flickering in animations - the Distance threshold is higher.
    • Very high - a very high quality preset; can be used for scenes with extremely small and intricate details.

    Note that the presets are targeted for a typical 640x480 image. Larger images usually can do with lower Min/Max rates than those specified in the presets.

    Basic parameters

    Min rate - this value determines the resolution for the first GI pass. A value of 0 means the resolution will be the same as the resolution of the final rendered image, which will make the irradiance map similar to the direct computation method. A value of -1 means the resolution will be half that of the final image and so on. You would usually want to keep this negative, so that GI is quickly computed for large and flat regions in the image. This parameter is similar to (although not the same as) the Min rate parameter of the Adaptive subdivision image sampler.

    Max rate - this value determines the resolution of the last GI pass. This is similar to (although not the same as) the Max rate parameter of the Adaptive subdivision image sampler.

    Color threshold (Clr thresh) - this parameter controls how sensitive the irradiance map algorithm is to changes in indirect lighting. Larger values mean less sensitivity; smaller values make the irradiance map more sensitive to light changes (thus producing higher quality images).

    Normal threshold (Nrm thresh) - this parameter controls how sensitive the irradiance map is to changes in surface normals and small surface details. Larger values mean less sensitivity; smaller values make the irradiance map more sensitive to surface curvature and small details.

    Distance threshold (Dist thresh) - this parameter controls how sensitive the irradiance map is to distance between surfaces. A value of 0.0 means the irradiance map will not depend on object proximity at all; higher values place more samples in places where objects are close to each other.

    Hemispheric subdivs (HSph. subdivs) - this controls the quality of individual GI samples. Smaller values make things faster, but may produce blotchy result. Higher values produce smoother images. This is similar to the Subdivs parameter for direct computation. Note that this is not the actual number of rays that will be traced. The actual number of rays is proportional to the square of this value and also depends on the settings in the DMC sampler rollout.

    Interpolation samples - this is the number of GI samples that will be used to interpolate the indirect illumination at a given point. Larger values tend to blur the detail in GI although the result will be smoother. Smaller values produce results with more detail, but may produce blotchiness if low Hemispheric subdivs are used. Note that if you use interpolated irradiance maps (i.e. the Mode is set to Animation (rendering)), V-Ray will actually multiply this value by the number of irradiance maps used. For example, if you have the Interpolation samples set to 20, and the Interpolation frames to 2, V-Ray will actually use 100 samples to interpolate. This is done in order to preserve the blurring of the GI solution compared to a single frame irradiance map, however it also slows down the rendering. To speed up the rendering in that case, you can decrease this value to 10 or 5.

    Interpolation frames - this determines the number of frames that will be used to interpolate GI when the Mode is set to Animation (rendering). In this mode, V-Ray interpolates the irradiance from the maps of several adjacent frames to help smooth out any flickering. Note that the actual number of frames used is 2*(interp. frames)+1 - e.g. the default value of 2 means that in total 5 irradiance maps will be interpolated. Higher values slow down the rendering and may produce "lagging" effect. Lower values render faster but may increase flickering. Note that increasing this value also increases the number of samples used for interpolation from the irradiance map - see the note for the Interpolation samples parameter.

    Options

    Show calc phase - when this option is on, V-Ray will show the irradiance map passes as the irradiance map is calculated. This will give you a rough idea of the indirect illumination even before the final rendering is complete. Note that turning this on slows the calculations a little bit, especially for large images. This option is ignored when rendering to fields - in that case, the calculation phase is never displayed.

    Show direct light - this option is only available when Show calc phase is on. It will cause V-Ray to show direct lighting for primary diffuse bounces in addition to indirect lighting while the irradiance map is being calculated. Note that V-Ray does not really need to compute this. The option is only for convenience. This does not mean that direct lighting is not calculated at all - it is, but only for secondary diffuse bounces (only for GI purposes).

    Show samples - when this option is on, V-Ray will show visually the samples in the irradiance map as small dots in the scene.

    Use camera path - when this option is on, V-Ray will calculate the irradiance map samples for the entire camera path, instead of just the current view. This is useful in the following cases:

    • Calculating irradiance maps for short fly-through animations in one go. Instead of using the Incremental add to current map mode and rendering the animation every Nth frame, you can turn the Use camera path option on, and render just one single frame - this will produce information for the entire camera path.

    • Using irradiance maps for anmations with moving objects where the camera also moves - either in Single frame, or Animation (prepass) mode. In this case, setting the Use camera path option on will help to further reduce any flickering, as the GI sample positions on static geometry will not change.

    If you use this option, you should not use interpolated glossy reflections/refractions in VRayMtl, as they will look odd.

    Detail enhancement

    Detail enhancement is a method for bringing additional detail to the irradiance map in the case where there are small details in the image. Due to its limited resolution, the irradiance map typically blurs the GI in these areas or produces splotchy and flickering results. The detail enhancement option is a way to calculate those smaller details with a high-precision brute-force sampling method. This is similar to how an ambient occlusion pass works, but is more precise as it takes into account bounced light.

    On - turns on detail enhancement for the irradiance map. Note that an irradiance map calculated in this mode should not be used without the detail option. When detail enhancement is On, you can use lower irradiance map settings and higher Interpolation samples. This is because the irradiance map is only used to capture the general far-off lighting, while direct sampling is used for the closer detail areas.

    Scale - this determines the units for the Radius parameter:

    Screen - the radius is in image pixels.

    World - the radius is in world units.

    Radius - this determines the radius for the detail enhancement effect. Smaller radius means that smaller parts around the details in the image are sampled with higher precision - this would be faster but may be less precise. Larger radius means that more of the scene will use the higher precision sampling and may be slower, but more precise. This is similar to a radius parameter for an ambient occlusion pass.

    Subdivs mult. - this determines the number of samples taken for the high-precision sampling as a percentage of the irradiance map Hemispheric subdivs. A value of 1.0 means that the same number of subdivs will be used as for the regular irradiance map samples. Lower values will make the detail-enhanced areas more noisy, but faster to render.

    Advanced options

    Interpolation type - this option is used during rendering. It selects the method for interpolating the GI value from the samples in the irradiance map.

    Weighted average - this method will do a simple blend between the GI samples in the irradiance map based on the distance to the point of interpolation and the difference in the normals. While simple and fast, this method tends to produce a blochiness in the result.

    Least squares fit - the default method; it will try to compute a GI value that best fits in among the samples from the irradiance map. Produces smoother results than the weighted average method, but is slower. Also, ringing artifacts may appear in places where both the contrast and density of the irradiance map samples change over a small area.

    Delone triangulation - all other methods of interpolation are blurry methods - that is, they will tend to blur the details in indirect illumination. Also, the blurry methods are prone to density bias (see below for a description). In difference, the Delone triangulation method is a non-blurry method and will preserve the detail while avoiding density bias. Since it is non-blurry, the result might look more noisy (blurring tends to hide noise). More samples will be needed to get a sufficiently smooth result. This can be done either by increasing the hemispheric subdivs of the irradiance map samples, or by decreasing the Noise threshold value in the brute force sampler rollout.

    Least squares with Voronoi weights - this is a modification of the least squares fit method aimed at avoiding the ringing at sharp boundaries by taking in consideration the density of the samples in the irradiance map. The method is quite slow and its effectiveness is currently somewhat questionable.

    Although all interpolation types have their uses, it probably makes most sense to use either Least squares fit or Delone triangulation. Being a blurry method, Least squares fit will hide noise and will produce a smooth result. It is perfect for scenes with large smooth surfaces. Delone triangulation is a more exact method, which usually requires more hemispheric subdivs and high Max irradiance map rate (and therefore more rendering time), but produces accurate results without blurring. This is especially obvious in scenes where there are a lot of small details.

    Sample lookup - this option is used during rendering. It selects the method of choosing suitable points from the irradiance map to be used as basis for the interpolation.

    Nearest - this method will simply choose those samples from the irradiance map which are closest to the point of interpolation. (How many points will be chosen is determined by the value of the Interpolation samples parameter.) This is the fastest lookup method and was the only one available in early versions of V-Ray. A drawback of this method is that in places where the density of the samples in the irradiance map changes, it will pick more samples from the area with higher density. When a blurry interpolation method is used, this leads to the so-called density bias which may lead to incorrect interpolation and aritfacts in such places (mostly GI shadow boundaries).

    Nearest quad-balanced - this is an extension of the nearest lookup method aimed at avoiding density bias. It divides the space about the interpolated point in four areas and tries to find an equal number of samples in all of them (hence the name quad-balanced). The method is a little slower than the simple Nearest lookup, but in general performs very well. A drawback is that sometimes, in its attempt to find samples, it may pick samples that are far away and not relevant to the interpolated point.

    Precalculated overlapping - this method was introduced in an attempt to avoid the drawbacks of the two previous ones. It requires a preprocessing step of the samples in the irradiance map during which a radius of influence is computed for each sample. This radius is larger for samples in places of low density, and smaller for places of higher density. When interpolating the irradiance at a point, the method will choose every sample that contains that point within its radius of influence. An advantage of this method is that when used with a blurry interpolation method it producses a continuous (smooth) function. Even though the method requires a preprocessing step, it is often faster than the other two. These two properties make it ideal for high-quality results. A drawback of this method is that sometimes lonely samples that are far-away can influence the wrong part of the scene. Also, it tends to blur the GI solution more than the other methods.

    Density-based - the default method; it combines the Nearest and the Precalculated overlapping methods and is very effective in reducing ringing artifacts and artifacts due to low sampling rates. This method also requires a preprocessing step in order to compute sample density, but it performs a nearest neighbour look-up to choose the most suitable samples while taking sample density in account.

    Being the fastest of the three methods, Nearest lookup may be used for preview purposes. Nearest quad-balanced performs fairly well in the majority of cases. Precalculated overlapping is fast and in many cases performs very well, but may tend to blur the GI solution. The Density-based method produces very good results in the majority of cases and is the default method.

    Note that the lookup method is mostly important when using a blurry interpolation method. When using Delone triangulation, the sample lookup method does not influence the result very much.

    Calc. pass interpolation samples - this is used during irradiance map calculation. It represents the number of already computed samples that will be used to guide the sampling algorithm. Good values are between 10 and 25. Low values may speed the calculation pass, but may not provide sufficient information. Higher values will be slower and will cause additional sampling. In general, this parameter should be left to the default value of 15.

    Use current pass samples - this is used during irradiance map calculation. When checked, this will cause V-Ray to use all irradiance map samples computed so far. Unchecking it will allow V-Ray to use only samples collected during previous passes, but not those computing earlier during the current pass. Keeping this checked will usually cause V-Ray to take less samples (and therefore compute the irradiance map faster). That means that on multiprocessor machines, several threads will be modifying the irradiance map at the same time. Because of the asynchronous nature of this process, there is no guarantee that the rendering the same image twice will produce the same irradiance map. Normally this is not a problem at all and it is recommended to keep this option checked.

    Randomize samples - this is used during irradiance map calculation. When it is checked, the image samples will be randomly jittered. Unchecking it will produce samples that are aligned in a grid on the screen. In general, this option should be kept checked in order to avoid artifacts caused by regular sampling.

    Check sample visibility - this is used during rendering. It will cause V-Ray to use only those samples from the irradiance map, which are directly visible from the interpolated point. This may be useful for preventing "light leaks" through thin walls with very different illumination on both sides. However it will also slow the rendering, since V-Ray will trace additional rays to determine sample visibility.

    Mode

    Mode - this groups of controls allow the user to select the way the irradiance map is (re)used.

    Bucket mode - in this mode, a separate irradiance map is used for each rendered region ("bucket"). Note that since each bucket is computed independently of the others, there may be differences at the bucket edges. They can be reduced by using higher settings for the irradiance map (the High preset, more hemispheric subdivs and/or smaller Noise threshold for the DMC sampler).

    Single frame - the default mode; a single irradiance map is computed for the whole image, and a new irradiance map is computed for each frame. This is the mode to use when rendering animations of moving objects. In doing so one must make sure that the irradiance map is of sufficiently high quality to avoid flickering.

    Multiframe incremental - this mode is useful when rendering a sequence of frames (not necessarily consequtive) where only the camera moves around (so-called fly-through animations). V-Ray will compute a new full-image irradiance map for the first rendered frame; for all other frames V-Ray will try to reuse and refine the irradiance map that has been computed so far.

    From file - in this mode V-Ray will simply load the irradiance map from the supplied file at the start of the rendering sequence and will use this map for all the frames in the animation. No new irradiance map will be computed. This mode can be used for fly-through animations and will work well in network rendering mode.

    Add to current map - in this mode V-Ray will compute a completely new irradiance map and will add it to the map that is already in memory. This mode is useful when compiling an irradiance map to render multiple views of a static scene. Note that this mode is not supported for distributed rendering.

    Incremental add to current map - in this mode V-Ray will use the irradiance map that is already in memory and will only refine it in places that don't have enough detail. This mode is useful when compiling an irradiance map to render multiple views of a static scene or a fly-through animation.

    Animation (prepass) - in this mode V-Ray calculates irradiance maps to be used later on for final rendering with the Animation (rendering) mode. One irradiance map is created for each frame and written into a separate file. Note that in this mode you have to render one map for each frame (i.e. you cannot render every Nth frame). V-Ray automatically disables rendering of the final image in this mode - only irradiance map prepasses are calculated.

    Animation (rendering) - in this mode V-Ray renders a final animation using irradiance maps created with the Animation (prepass) mode. Irradiance maps from several adjacent frames are loaded together and blended so as to reduce flickering. The number of irradiance maps that are interpolated is determined by the Interp. frames parameter.

    The irradiance map mode that should be used depends on the particular rendering task - a static scene, a static scene rendered from multiple views, a fly-through animation or an animation with moving objects. Refer to the tutorials section for more information.

    Irradiance map control buttons

    There are some more buttons in this group that allow one to perform certain operations on the irradiance map:

    Browse - this button allows the user to select the irradiance map file which will be loaded if the From file mode is selected. Alternatively, the user can enter the path and name of the file directly in the edit box.

    Save to file - this will save to file the irradiance map which is currently in memory. Note that the Don't delete option in the On render end group must be turned on. Otherwise V-Ray will automatically delete the irradiance map at the end of the rendering process.

    Reset irradiance map - this will clear the irradiance map from memory.

    On render end

    This group of controls instructs V-Ray what to do with the irradiance map at the end of the rendering process.

    Don't delete - the default for this option is on, which means that V-Ray will keep the irradiance map in memory until the next rendering. If this option is cleared, V-Ray will delete the irradiance map when rendering is complete. This means that you will not be able to save the map manually afterwards.

    Auto save - if this option is set, V-Ray will automatically save the irradiance map to the specified file at the end of the rendering. This mode is particularly useful if you want to send the irradiance map for rendering on a different machine through network rendering.

    Switch to saved map - this option is only available if the Auto save option is turned on. If Switch to saved map is on, then V-Ray will also automatically set the irradiance map mode to From file and will set the file name to be that of the map that was just saved.

    Notes

  • You can view, merge and save irradiance maps with the irradiance map viewer tool.

For animated irradiance maps, GI samples on different objects are not shared; this may lead to small objects to appear black in the final renders. To solve this issue, group those objects together - this will work as GI samples are shared for objects which are part of the same group.
Examples

General

The global photon map is somewhat similar to the irradiance map. It is also used to represent the lighting in the scene, and it is a collection of points in 3D space (a point cloud). However, the photon map is built in a different way. It is built by tracing particles (photons) emitted by the scene lights. Those photons bounce around the scene and hit various surfaces. The hit points are stored in the photon map.

Reconstructing the illumination from the photon map is also different from the irradiance map. With the irradiance map, a simple interpolation is used to blend the nearby GI samples. With the photon map, we need to estimate the photon density at a given point. The idea of density estimation is central to the photon map. V-Ray can use several methods for density estimation, each with its own advantages and disadvantages. Usually these methods are based on looking for the photons that are nearest to the shaded point.

Note that in general, the photon map provides a less accurate approximation of the scene illumination than the irradiance map, espcially when it comes to small details. The irradiance map is built adaptively, whereas the photon map is not. Also a major disadvantage of the photon map is the boundary bias. This unwanted effect is mostly visible around corners and object edges, which appear darker than they should be. The irradiance map can also exhibit boundary bias, however its adpative nature allows one to decrease the effect greatly. Another disadvantage of the photon map is that it cannot simulate illumination from skylight. This is because the photons need an actual surface to be emitted from. The skylight, at least in V-Ray, is not a surface actually present in the scene.

On the other hand, the photon map is view-independent and can be computed relatively quickly. This makes it ideal for approximating the scene illumination when used together with more accurate methods like direct computation or the irradiance map.

Parameters

[Photon map rollout]Note that the building of the photon map is also controlled by the photon settings of individual lights in the scene. See the Light settings dialog for more information.

Bounces - this parameter controls the number of light bounces approximated by the photon map. More bounces produce a more reallistic result, but take more time and memory.

Auto search dist - when this is on, V-Ray will try to compute a suitable distance within which to search for photons. Sometimes the computed distance is ok, in other cases it might be too big (which will slow down the rendering) or too small (which will produce a more noisy result).

Search dist - this option is only available when Auto search dist is off. It allows you to specify the photon search distance manually. Keep in mind that this value depends on the size of your scene. Lower values will speed up the rendering but may produce more noisy results. Larger values will slow down the rendering but may produce smoother results.

Max photons - this option specifies how many photons will be taken into consideration when approximating the irradiance at the shaded point. More photons mean a smoother (and more blurry) result and may also slow down the rendering. Smaller values mean a more noisy result but will render faster. When this value is 0, V-Ray will use all the photons in the given search range.

Multipler - this allows you to control the brightness of the photon map.

Max density - this parameter allows you to limit the resolution (and thus the memory) of the photon map. Whenever V-Ray needs to store a new photon in the photon map, it will first look if there are any other photons within a distance specified by Max density. If there is already a suitable photon in the map, V-Ray will just add the energy of the new photon to the one in the map. Otherwise, V-Ray will store the new photon in the photon map. Using this options allows you to shoot many photons (and thus get smoother results) while keeping the size of the photon map manageable.

Convert to irradiance map - this will cause V-Ray to precompute the irradiance at the photon hit points stored in the photon map. This allows fewer photons to be used when interpolated the irradiance during rendering, while keeping the result relatively smooth. It is important to note that the resulting map stores irradiance, but is not the same as the irradiance cache used by V-Ray for primary diffuse bounces.

Interp. samples - this controls how many irradiance samples will be taken from the photon map once it is converted to an irradiance map. Larger values produce smoother results, but may be slower; smaller values produces more noisy results but rendering is faster.

Convex hull area estimate - when this is off, V-Ray will use a simplified algorithm for computing the area, covered by a number of photons (by only taking the distance to the farthest photon). This algorithm may cause corners to be darker. Using the convex hull area estimate avoids the dark corners problem, but is slower and not as robust.

Store direct light - when this is on, V-Ray will store direct illumination in the photon map as well. This may speed up the irradiance map or brute force GI, when used as a primary engine, and there are lots of lights in the scene. When this is off, direct lighting will be computed always by tracing the necessary rays. This may slow things down if there are lots of lights in the scene.

Retrace threshold - when this is greater than 0.0, V-Ray will use brute force GI near corners, instead of the photon map, in order to obtain a more accurate result and to avoid splotches in these areas. This may slow down the rendering. When this is 0.0, the photon map will be used always, which will be faster, but may produce artifacts near corners or in places where objects are close to each other.

Retrace bounces - controls how many bounces will be made when retracing corners. If Retrace threshold is 0.0, then this parameter is ignored. Typically this should be equal to the Bounces parameter.

Notes

  • The photon map cannot simulate secondary illumination due to skylight. The photon map is mostly useful for interior scenes with artificial lighting or relatively small windows.
  • The photon map works only with V-Ray materials. Standard materials will receive GI, but will not generate any photons.

Examples

General

Light caching (sometimes also called light mapping) is a technique for approximating the global illumination in a scene. This method was developed originally by Chaos Group specifically for the V-Ray renderer. It is very similar to photon mapping, but without many of its limitations.

The light cache is built by tracing many many eye paths from the camera. Each of the bounces in the path stores the illumination from the rest of the path into a 3d structure, very similar to the photon map. On the other hand, in a sense, it is the exact opposite of the photon map, which traces paths from the lights, and stores the accumulated energy from the beginning of the path into the photon map.

Although very simple, the light-caching approach has many advantages over the photon map:

  • It is easier to set up. We only have the camera to trace rays from, as opposed to the photon map, which must process each light in the scene and usually requires separate setup for each light.

  • The light-caching approach works efficiently with any lights - including skylight, self-illuminated objects, non-physical lights, photometric lights etc. In contrast, the photon map is limited in the lighting effects it can reproduce - for example, the photon map cannot reproduce the illumination from skylight or from standard omni lights without inverse-square falloff.

  • The light cache produces correct results in corners and around small objects. The photon map, on the other hand, relies on tricky density estimation schemes, which often produce wrong results in these cases, either darkening or brightening those areas.

  • In many cases the light cache can be visualized directly for very fast and smooth previews of the lighting in the scene.

Even with these advantages, light caching is similar in speed to the photon map and can produce approximations to the global lighting in a scene very quickly. In addition, the light cache can be used successfully for adding GI effects to animations.

Of course, the light cache has some limitations:

  • Like the irradiance map, it is view-dependent and is generated for a particular position of the camera.

  • Like the photon map, the light cache is not adaptive. The illumination is computed at a fixed resolution, which is determined by the user.

  • The light cache does not work very well with bump maps.

Parameters

[Light cache rollout]

Calculation parameters

These parameters affect the calculation phase of the light cache; they do not affect the final rendering.

Subdivs - this determines how many paths are traced from the camera. The actual number of paths is the square of the subdivs (the default 1000 subdivs mean that 1 000 000 paths will be traced from the camera).

Sample size - this determines the spacing of the samples in the light cache. Smaller numbers mean that the samples will be closer to each other, the light cache will preserve sharp details in lighting, but it will be more noisy and will take more memory. Larger numbers will smooth out the light cache but will loose detail. This value can be either in world units or relative to the image size, depending on light cache Scale mode.

Scale - this parameter determines the units of the Sample size and the Filter size:

Screen - the units are fractions of the final image (a value of 1.0 means the samples will be as large as the whole image). Samples that are closer to the camera will be smaller, and samples that are far away will be larger. Note that the units do not depend on the image resolution. This value is best suited for stills or animations where the light cache needs to be computed at each frame.

World - the sizes are fixed in world units everywhere. This can affect the quality of the samples - samples that are close to the camera will be sampled more often and will apear smoother, while samples that are far away will be noisier. This value might work better for fly-through animations, since it will force constant sample density everywhere.

Number of passes - the light cache is computed in several passes, which are then combined into the final light cache. Each pass is rendered in a separate thread independently of the other passes. This ensures that the light cache is consistent across computers with different number of CPUs. In general, a light cache computed with smaller number of passes may be less noisy than a light cache computed with more passes, for the same number of samples; however small number of passes cannot be distributed effectively across several threads. For single-processor non-hyperthreading machines, the number of passes can be set to 1 for best results.

Store direct light - with this option, the light cache will also store and interpolate direct light. This can be useful for scenes with many lights and irradiance map or direct GI method for the primary diffuse bounces, since direct lighting will be computed from the light cache, instead of sampling each and every light. Note that only the diffuse illumination produced by the scene lights will be stored. If you want to use the light cache directly for approximating the GI while keeping the direct lighting sharp, uncheck this option.

Show calc. phase - turning this option on will show the paths that are traced. This does not affect the calculation of the light cache and is provided only as a feedback to the user. This option is ignored when rendering to fields - in that case, the calculation phase is never displayed.

Use camera path - when this option is on, V-Ray will calculate the light cache samples for the entire camera path, instead of just the current view, in the same way as this is done for the Fly-through mode. This is useful when rendering animations with moving objects where the camera also moves and the light cache needs to be in Single frame mode. In this case, setting the Use camera path option on will help to reduce any flickering, as the GI sample positions on static geometry will not change.

Adaptive tracing - when this option is on, V-Ray will store additional information about the incoming light for each light cache sample, and try to put more samples into the directions from which more light coming. This may help tp reduce the noise in the light cache, particularly in the case of caustics.

Use directions only - this option is only available when the Adaptive tracing option is on. It causes V-Ray to only use the optimized directions, generated from the light cache samples, rather than the accumulated irradiance from the samples themselves. This produces more accurate results, but also a noisier light cache.

Reconstruction parameters

These parameters control how the light cache is used in the final rendering, after is has been calculated.

Pre-filter - when this is turned on, the samples in the light cache are filtered before rendering. Note that this is different from the normal light cache filtering (see below) which happens during rendering. Prefiltering is performed by examining each sample in turn, and modifying it so that it represents the average of the given number of nearby samples. More prefilter samples mean a more blurry and less noisy light cache. Prefiltering is computed once after a new light cache is computed or loaded from disk.

Filter - this determines the type of render-time filter for the light cache. The filter determines how irradiance is interpolated from the samples in the light cache.

None - no filtering is performed. The nearest sample to the shaded point is taken as the irradiance value. This is the fastest option, but it may produce artifacts near corners, if the light cache is noisy. You can use pre-filtering (see above) to decrease that noise. This option works best if the light cache is used for secondary bounces only or for testing purposes.

Nearest - this filter looks up the nearest samples to the shading point and averages their value. This filter is not suitable for direct visualization of the light cache, but is useful if you use the light cache for secondary bounces. A property of this filter is that is adapts to the sample density of the light cache and is computed for a nearly constant time. The Interpolation samples parameter determines how many of the nearest samples to look up from the light cache.

Fixed - this filter looks up and averages all samples from the light cache that fall within a certain distance from the shaded point. This filter produces smooth results and is suitable for direct visualization of the light cache (when it is used as the primary GI engine). The size of the filter is determined by the Filter size parameter. Larger values blur the light cache and smooth out noise. Typical values for the Filter size are 2-6 times larger than the Sample size. Note that Filter size uses the same scale as the Sample size and its meaning depends on the Scale parameter.

Use light cache for glossy rays - if this option is on, the light cache will be used to compute lighting for glossy rays as well, in addition to normal GI rays. This can speed up rendering of scenes with glossy reflections quite a lot.

Mode

Mode - determines the rendering mode of the light cache:

Progressive path tracing - in this mode, the light cache algorithm is used to sample the final image progressively. For a discussion of this mode see the tutorial.

Single frame - this will compute a new light cache for each frame of an animation.

Fly-through - this will compute a light cache for an entire fly-through animation, assuming that the camera position/orientation is the only thing that changes. The movement of the camera in the active time segment only is taken in consideration. Note that it may be better to use World Scale for fly-through animations. The light cache is computed only at the first rendered frame and is reused without changes for subsequent frames.

From file - in this mode the light cache is loaded from a file. The light cache file does not include the prefiltering of the light cache; prefiltering is performed after the light cache is loaded, so that you can adjust it without the need to recompute the light cache.

File - specifies the file name to load the light cache from, when the Mode is set to From file.

Save to file - this button allows to save the light cache to a file on disk, for later re-use. Note that the Don't delete option must be on for this to work - otherwise, the light cache will be deleted as soon as rendering is complete and it will not be possible to save it.

On render end

This group of controls determine what happens with the light cache after rendering is complete.

Don't delete - when on (the default), the light cache remains in memory after the rendering. Turn this option off to automatically delete the light cache (and thus save memory).

Auto save - when on, the light cache will be automatically written to the specified file. Note that the light cache will be written as soon as it is calculated, rather than at the actual end of the rendering.

Switch to saved map - when on, after the rendeing is complete, the light cache Mode will be automatically set to From file and the name of the auto-saved light cache file will be copied to the File parameter.

Notes

  • Do not set the Adaptive amount in the DMC sampler rollup to 0.0 when using the light cache, as this will cause excessive render times.

  • Do not apply perfectly white or very close to white materials to a majority of the objects in the scene, as this will cause excessive render times. This is because the amount of reflected light in the scene will decrease very gradually and the light cache will have to trace longer paths. Also avoid materials that have one of their RGB components set to maximum (255) or above.

  • If you want to use the light cache for animation, you should choose a large enough value for the Filter size in order to remove the flickering in the GI.

  • There is no difference between light caches computed for primary bounces (direct visualization) and for secondary bounces. You can safely use light caches computed in one of these modes for the other.

  • Similar to the photon map, you can get "light leaks" with the light cache around very thin surfaces with substantially different illumination on both sides. Sometimes it may be possible to reduce this effect by assigning different GI Surface ID's to the objects on both sides of the thin surface (see the Object settings dialog); the effect can also be reduced by decreasing the Sample size and/or the filtering.
  • Examples

    General

    V-Ray supports the rendering of the caustics effects. In order to produce this effect you must have proper caustics generators and caustics receivers in the scene (for information how to make an object a caustics generator/receiver read the Object settings and Lights settings sections in Render parameters > System > Object/Light settings. The settings in this parameter section control the generation of the photon map (an explanation of the photon map can be found in the Terminology section).

    In order to calculate the caustics effects, V-Ray uses a technique known as photon mapping. It is a two-pass technique. The first pass consists of shooting particles (photons) from the light sources in the scene, tracing them as they bounce around the scene, and recording the places where the photons hit the object surfaces. The second pass is the final rendering, when the caustics are calculated by using density estimation techniques on the photon hits stored during the first pass.

    Parameters

    [Caustics parameters]On - turns rendering of caustics on and off.

    Multiplier - this multiplier controls the strength of the caustics. It is global and applies to all light sources that generate caustics. If you want different multipliers for the different light sources then you should use the local light settings. Note: this multiplier is cumulative with the multipliers in the local light settings.

    Search distance - when V-Ray needs to render the caustics effect at a given surface point, it searches for a number photons on that surface in the area surrounding the shaded point (search area). The search area in fact is a circle with center the original photon and its radius is equal to the Search distance value. Smaller values produce sharper, but perhaps more noisy caustics; larger values produce smooher, but blurrier caustics.

    Max photons - this is the maximum number of photons that will be considered when rendering the caustics effect on a surface. Smaller values cause less photons to be used and the caustucs will be sharper, but perhaps noisier. Larger values produce smoother, but blurrier caustics. The special value of 0 means that V-Ray will use all the photons that it can find inside the search area.

    Max density - this parameter allows you to limit the resolution (and thus the memory) of the caustics photon map. Whenever V-Ray needs to store a new photon in the caustics photon map, it will first look if there are any other photons within a distance specified by Max density. If there is already a suitable photon in the map, V-Ray will just add the energy of the new photon to the one in the map. Otherwise, V-Ray will store the new photon in the photon map. Using this options allows you to shoot many photons (and thus get smoother results) while keeping the size of the caustics photon map manageable.

    Mode - controls the mode of the irradiance map:

    New map - when this option is selected a new photon map will be generated. It will overwrite any previous photon map left over from previous rendering.

    Save to file - hit this button if you want to save an already generated photon map in a file.

    From file - when you enable this option V-Ray will not compute the photon map but will load it from a file. Hit the Browse button on the right to specify the file name.

    File - the file name with the caustics photon map to be loaded when the Mode is set to From file.


    Don't delete - when checked, V-Ray will keep the photon map in memory after the scene rendering has finished. Otherwise the map will be deleted and the memory it takes will be freed. This option can be especially useful if you want to compute the photon map for a particular scene only once and then reuse it for further rendering.

    Auto save - when this is turned on, V-Ray will automatically save the caustics photon map to the provided file when rendering is complete.

    Switch to saved map - this option is only available if Auto save is on. It will cause V-Ray to automatically set the Mode to From file with the file name of the newly saved map.

    Notes

  • Caustics also depend on the individual light settings (see Light settings dialog).


  • General

    The Environment section in V-Ray render parameters is where you can specify a color and a texture map to be used during GI and reflection/refraction calculations. If you don't specify a color/map then the background color and map specified in the 3ds Max Environment dialog will be used by default.

    Parameters

    [Environment rollout]

    GI Environment (skylight)

    This group allows you to override the 3ds Max Environment settings for indirect illumination calculations. The effect of changing the GI environment is similar to skylight.

    On - turns on and off the GI environment override.

    Color - lets you specify the environment (skylight) color. Note that this is ignored if there is an environment texture specified.

    Multiplier - a multiplier for the color value. Note that the multiplier does not affect the environment texture (if present). Use an Output map to control the brightness of the environment map if the map itself does not have brightness controls.

    Texture - lets you choose a GI environment texture. Note that if present, the texture overrides the specified Color.

    Reflection/refraction environment

    This group allows you to override the 3ds Max Environment settings when reflections and refractions are calculated. Note that you can also override the reflection/refraction environment on a per material basis (see VRayMtl) or a per map basis (see VRayMap). If you do not enable the Refraction override, this group of controls affects both reflections and refractions. If you enable the Refraction override, then this group affects only reflections.

    On - with this option turned on V-Ray will use the specified Color and Texture during reflection/refraction calculations.

    Color - lets you specify the environment color for reflections/refractions. This is ignored, if there is an environment texture specified.

    Multiplier - a multiplier for the color value. Note that the multiplier does not affect the environment texture (if present). Use an Output map to control the brightness of the environment map, if the map itself does not have brightness controls.

    Texture - lets you choose an environment texture texture. Note that if specified, this texture overrides the Color.

    Refraction environment

    This group allows to override the environment for refraction rays only. When this override is disabled, V-Ray will use the environment specified in the Reflection/refraction group when calculating refractions.


    On - enables the refraction environment override.


    Color - specifies the environment color for refractions. This color is ignored if there is an environment texture specified.


    Multiplier - a multiplier for the Color value. Note that the multiplier does not affect the environment texture (if present). Use an Output map to control the brightness of the environment map, if the map itself does not have brightness controls.


    Texture - specifies the environment texture for refractions. Note that if present, this texture overrides the specified Color.

  • General

    Monte Carlo (MC) sampling is a method for evaluating "blurry" values (anitaliasing, depth of field, indirect illumination, area lights, glossy reflections/refractions, translucency, motion blur etc). V-Ray uses a variant of Monte Carlo sampling called deterministic Monte Carlo (DMC). The difference between pure Monte Carlo sampling and deterministic Monte Carlo is that the first uses pseudo-random numbers which are different for each and every evaluation (and so re-rendering a single image will always produce slightly different results in the noise), while deterministic Monte Carlo uses a pre-defined set of samples (possibly optimized to reduce the noise), which allows re-rendering an image to always produce the exact same result. By default, the deterministic Monte Carlo method used by V-Ray is a modficiation of Schlick sampling, introduced by Christophe Schlick in [1] (see the References section below for more information).

    Note that there exists a sub-set of DMC sampling called quasi Monte Carlo (QMC) sampling, in which the samples are obtained from sequences of numbers, called low-discrepancy sequences, which have special numeric properties. V-Ray, however, does not use this technique.

    Instead of having separate sampling methods for each of the blurry values, V-Ray has a single unified framework that determines how many and what exactly samples to be taken for a particular value, depending on the context in which that value is required. This framework is called the "DMC sampler".

    The actual number of samples for any blurry value is determined based on three factors:

    • The subdivs value supplied by the user for a particular blurry effect. This is multiplied by the Global subdivs multiplier (see below).

    • The importance of the value (for example, dark glossy reflections can do with fewer samples than bright ones, since the effect of the reflection on the final result is smaller; distant area lights require fewer samples than closer ones etc). Basing the number of samples allocated for a value on importance is called importance sampling.

    • The variance (think "noise") of the samples taken for a particular value - if the samples are not very different from each other, then the value can do with fewer samples; if the samples are very different, then a larger number of them will be necessary to get a good result. This basically works by looking at the samples as they are computed one by one and deciding, after each new sample, if more samples are required. This technique is called early termination or adaptive sampling.

    For more information on the relationship and effects of these parameters, please refer to the tutorials section.

    Parameters

    [DMC Sampler interface]

    Amount - controls the extent to which the number of samples depends on the importance of a blurry value. It also controls the minimum number of samples that will be taken. A value of 1.0 means full adaptation; a value of 0.0 means no adaptation.

    Min samples - determines the minimum number of samples that must be made before the early termination algorithm is used. Higher values will slow things down but will make the early termination algorithm more reliable.

    Noise threshold - controls V-Ray's judgement of when a blurry value is "good enough" to be used. This directly translates to noise in the result. Smaller values mean less noise, more samples and higher quality. A value of 0.0 means that no adaptation will be performed.

    Global subdivs multiplier - this will multiply all subdivs values everywhere during rendering; you can use this to quickly increase/decrease sampling quality everywhere. This affects everything, except for the lightmap, photon map, caustics and aa subdivs. Everything else (dof, moblur, irradiance map, brute-force GI, area lights, area shadows, glossy reflections/refractions) is affected by this parameter.

    Time independent - when this option is On, the sampling pattern will be the same from frame to frame in an animation. Since this may be undesirable in some cases, you can turn this option Off to make the samping pattern change with time. Note that re-rendering the same frame will produce the same result in both cases.

    Path sampler - specifies what algorithm to use to generate sample values. V-Ray uses a modification of Schlick sampling (see the References section below for more details).

    References

    More information on deterministic Monte Carlo sampling for computer graphics can be found from the sources listed below.

  • [1] C. Schlick, An Adaptive Sampling Technique for Multidimensional Integraton by Ray Tracing, in Second Eurographics Workshop on Rendering (Spain), 1991, pp. 48-56
    Describes deterministic MC sampling for antialiasing, motion blur, depth of field, area light sampling and glossy reflections.

  • [2] K. Chiu, P. Shirley and C. Wang, Multi-Jittered Sampling, in Graphics Gems IV, 1994
    Describes a combination of jittered and N-rooks sampling for the purposes of computer graphics.

  • [3] Masaki Aono and Ryutarou Ohbuchi, Quasi-Monte Carlo Rendering with Adaptive Sampling, IBM Tokyo Research Laboratory Technical Report RT0167, November 25, 1996, pp.1-5
    An online version can be found at
    http://www.kki.yamanashi.ac.jp/~ohbuchi/online_pubs/eg96_html/eg96.htm

    Describes an application of low discrepancy sequences to area light sampling and the global illumination problem.

  • [4] M. Fajardo, Monte Carlo Raytracing in Action, in State of the Art in Monte Carlo Ray Tracing for Realistic Image Synthesis, SIGGRAPH 2001 Course 21, pp. 151-162;
    An online version can be found at
    http://www.cs.virginia.edu/~gfx/Courses/2003/ImageSynthesis/papers/Monte Carlo/Monte Carlo SIGGRAPH Course.pdf

    Describes the ARNOLD renderer employing randomized quasi-Monte Carlo sampling using low discrepancy sequences for pixel sampling, global illumination, area light sampling, motion blur, depth of field, etc.

  • [5] E. Veach, December, Robust Monte Carlo Methods for Light Transport Simulation, Ph. D. dissertation for Stanford University, 1997, pp. 58-65
    An online version can be found at http://graphics.stanford.edu/papers/veach_thesis/
    Includes a description of low discrepancy sequences, quasi-Monte Carlo sampling and its application to solving the global illumination problem.

  • [6] L. Szirmay-Kalos, Importance Driven Quasi-Monte Carlo Walk Solution of the Rendering Equation, Winter School of Computer Graphics Conf., 1998
    An online version can be found at http://www.fsz.bme.hu/~szirmay/imp1_link.html
    Describes a two-pass method for solving the global illumination problem employing quasi-Monte Carlo sampling, as well as importance sampling using low discrepancy sequences.

Examples

Search keywords: color mapping, tone mapping, burn-out, overexpose

General

Color mapping (also called tone mapping) can be used to apply color transformations on the final image colors. Sometimes an image can contain a higher range of colors that can be displayed on a computer screen. Color mapping has the task of re-mapping the image values to be suitable for display purposes.

Parameters

[Color mapping rollout]

Type - this is the type of transformation used. These are the possible types:

Linear multiply - this mode will simply multiply the final image colors based on their brightness are. Color components that are too bright (above 1.0 or 255) will be clipped. This can result in burnt out spots near bright light sources.

Exponential - this mode will saturate the colors based on their brightness. This can be useful to prevent burn-outs in very bright areas (for example around light sources etc). This mode will not clip bright colors, but will instead saturate them.

HSV exponential - this mode is very similar to the Exponential mode, but it will preserve the color hue and saturation, instead of washing out the color towards white.

Intensity exponential - this mode is similar to the Exponential one, but it will preserve the ratio of the RGB color components and will only affect the intensity of the colors.

Gamma correction - this mode applies a gamma curve to the colors. In this case, the Dark multiplier is a general multiplier for the colors before they are gamma-corrected. The Bright multiplier is the inverse of the gamma value (f.e. for gamma 2.2, the Bright multiplier must be 0.4545).

Intensity gamma - this mode applies a gamma curve to the intensity of the colors, instead of each channel (r/g/b) independently.

Reinhard - this mode is a blend between exponential-style color mapping and linear mapping. If the Burn value is 1.0, the result is linear color mapping and if the Burn value is 0.0, the result is exponential-style mapping.

Dark multiplier - this is the multiplier for dark colors.

Bright multiplier - this is the multiplier for bright colors.

Gamma - this parameter allows the user to control the gamma correction for the output image regardless of the color mapping mode. Note that the value here is the inverse of the one used for the Gamma correction color mapping type. For example, to correct the image for a 2.2-gamma display, you should set the Gamma parameter simply to 2.2.

Sub-pixel mapping - this option controls whether color mapping will be applied to the final image pixels, or to the individual sub-pixel samples. In older versions of V-Ray, this option was always assumed to be on, however its default value is now off as this produces more correct renderings, especially if you use the universal settings approach.

Clamp output - if this is on, colors will be clamped after color mapping. In some situations, this may be undesirable (for example, if you wish to antialias hdr parts of the image, too) - in that case, turn clamping off.

Clamp level - this option specifies the level at which color components will be clamped if the Clamp output option is on.

Affect background - if this is off, color mapping will not affect colors belonging to the background.


Don't affect colors (adaptation only) - when this parameter is on, the color mapping will not be applied to the final image, however V-Ray will proceed with all its calculations as though color mapping is applied (e.g. the noise levels will be corrected accordingly). This can be useful, for example, if you know that you will apply some color correction to the image later on, but wish to keep the rendering itself in linear space for compositing purposes. Note that the Clamp output option will have an effect regardless of the value of the Don't affect colors option.

Linear workflow - when this option is checked V-Ray will automatically apply the inverse of the Gamma correction that you have set in the Gamma field to all VRayMtl materials in your scene. Note that this option is intended to be used only for quickly converting old scenes which are not set up with proper linear workflow in mind. This option is not a replacement for proper linear workflow.

Examples

General

The camera rollout controls the way the scene geometry is projected onto the image. Note that if you use the VRayPhysicalCamera in your scene, most of the parameters in this section are ignored, with the exception of some of the motion blur parameters (those on the right-hand side of the dialog),

Parameters

[Camera rollout]

Camera type

The cameras in V-Ray generally define the rays that are cast into the scene, which essentially is how the scene is projected onto the screen. V-Ray supports several camera types: Standard, Spherical, Cylindrical (point), Cylindrical (ortho), Box and Fish eye. Orthographic views are supported too.

For V-Ray versions prior to SP3 the parameters in this section are ignored, if you are rendering from a VRayPhysicalCamera. V-Ray SP3 and later version take the settings in this menu into consideration.

Override FOV - with this setting you can override the 3ds Max's FOV angle. This is because some V-Ray camera types can take FOV ranges from 0 to 360 degrees, whereas the cameras in 3ds Max are limited to 180 degrees.

FOV - here you specify the FOV angle (only when Override FOV is turned on and the current camera type supports FOV angle).

Height - here you can specify the height of the Cylindrical (ortho) camera. This setting is available only when the Type is set to Cylindrical (ortho).

Auto-fit - this setting controls the auto-fit option of the Fish-eye camera. When Auto-fit is enabled V-Ray will calculate the Dist value automatically so that the rendered image fits horizontally with the image's dimensions.

Dist - this setting applies only to the Fish-eye camera. The Fish-eye camera is simulated as a Standard camera pointed to an absolutely reflective sphere (with a radius of 1.0) that reflects the scene into the camera's shutter. The Dist value contorts how far is the camera from the sphere's center (which is how much of the sphere will be captured by the camera). Note: this setting has no effect when the Auto-fit option is enabled.

Curve - this setting applies only to the Fish-eye camera. This setting contorts the way the rendered image is warped. A value of 1.0 corresponds to a real world Fish-eye camera. As the value approaches 0.0 the warping is increased. As the value approaches 2.0 the warping is reduced. Note: in fact this value controls the angle at which rays are reflected by the virtual sphere of the camera.

Type - from this list you can select the type of the camera. See the Examples section for a more detailed discussion on camera types.

Standard - this is a standard pinhole camera.

Spherical - this is a spherical camera which means that the camera lenses has spherical form.

Cylindrical (point) - with this type of camera all rays have a common origin - they are cast from the center of the cylinder. In the vertical direction the camera acts as a pinhole camera and in the horizontal direction it acts as a spherical camera.

Cylindrical (ortho) - in vertical direction the camera acts as an orthographic view and in the horizontal direction it acts as a spherical camera.

Box - the box camera is simply 6 standard cameras placed on the sides of a box. This type of camera is excellent for generation of environment maps for cube mapping. It may be very useful for GI too - you can calculate the irradiance map with a Box camera, save it to file and you can reuse it with a Standard camera that can be pointed at any direction.

Fish eye - this special type of camera captures the scene as if it is normal pinhole camera pointed at an absolutely reflective sphere which reflects the scene into the camera's shutter. You can use the Dist/FOV settings to control what part of the sphere will be captured by the camera. The red arc in the diagram corresponds to the FOV angle. Note that the sphere has always a radius of 1.0.

Warped spherical - another spherical camera with slightly different mapping formula.

Depth of field

These parameters control the depth of field effect when rendering with a standard 3ds Max camera or with a perspective viewport. The parameters are ignored if you render from a VRayPhysicalCamera view.


On - turns the depth-of-field effect on.

Aperture - this is the size of the virtual camera aperture, in world units. Small aperture sizes reduce the DOF effect, larger sizes produce more blur.

Center bias - this determines the uniformity of the DOF effect. A value of 0.0 means that light passes uniformly through the aperture. Positive values mean that light is concentrated towards the rim of the aperture, while negative values concentrate light at the center.

Focal distance - determines the distance from the camera at which objects will be in perfect focus. Objects closer or farther than that distance will be blurred.

Get from camera - when this option is on, the Focal distance is determined from the camera target, if the rendering is done froma camera view.

Sides - this option allows you to simulate the polygonal shape of the aperture of real-world cameras. When this option is off, the shape is assumed to be perfectly circular.

Rotation - specifies the orientation of the aperture shape.

Anisotropy - this option allows the stretching of the bokeh effect horizontally or vertically. Positive values stretch the effect in the vertical direction. Negative values stretch it in the horizontal direction.

Subdivs - controls the quality of the DOF effect. Lower values are computed faster, but produce more noise in the image. Higher values smooth out the noise, but take more time to render. Note that the quality of sampling also depends on the settings of the DMC sampler as well as on the chosen Image sampler.

Motion blur

On - turns motion blur on.

Duration - specifies the duration, in frames, during which the camera shutter is open.

Interval center - specifies the middle of the motion blur interval with respect to the 3ds Max frame. A value of 0.5 means that the middle of the motion blur interval is halfway between the frames. A value of 0.0 means that the middle of the interval is at the exact frame position.

Bias - this controls the bias of the motion blur effect. A value of 0.0 means that the light passes uniformly during the whole motion blur interval. Positive values mean that light is concentrated towards the end of the interval, while negative values concentrate light towards the beginning.

General motion blur parameters

These parameters are used whether you are rendering from a standard camera or from a VRayPhysicalCamera with motion blur enabled.

Prepass samples - this controls how many samples in time will be computed during irradiance map calculations.

Blur particles as mesh - this option controls the blurring of particle systems. When this is on, particles will be blurred like normal meshes. However, many particle systems change the number of particles between frames. You can turn off this option to compute the motion blur from the velocity of the particles instead.

Geometry samples - this determines the number of geometry segments used to approximate motion blur. Objects are assumed to move linearly between geometry samples. For fast rotating objects, you need to increase this to get correct motion blur. Note that more geometry samples increase the memory consumption, since more geometry copies are kept in memory. You can also control the number of geometry samples on a per-object basis from the Object settings dialog.

Subdivs - determines the quality of the motion blur. Lower values are computed faster, but produce more noise in the image. Higher values smooth out the noise, but take more time to render. Note that the quality of sampling also depends on the settings of the DMC sampler as well as on the chosen Image sampler.

Notes

  • Depth of field is supported only for the Standard camera type. Other camera types do not produce depth of field effect at this time.

  • When DOF and motion blur are both enabled, they are sampled together using the higher of the two Subdivs parameters.

  • General

    This section allows you to control displacement of objects with displacement materials, which do not have a VRayDisplacementMod modifier applied.

    Parameters

    [Default displacement interface]Override Max's - when this option is on, V-Ray will render objects with displacement materials using its own internal microtriangle displacement. When this option is off, the objects will be rendered with the standard 3ds Max displacement.

    Edge length - this determines the quality of the displacement. Each triangle of the original mesh is subdivided into a number of subtriangles. More subtriangles mean more detail in the displacement, slower rendering times and more RAM usage. Less subtriangles mean less detail, faster rendering and less RAM. The meaning of Edge length depends on the View-dependent parameter below.

    View-dependent - when this is on, Edge length determines the maximum length of a subtriangle edge, in pixels. A value of 1.0 means that the longest edge of each subtriangle will be about one pixel long when projected on the screen. When View-dependent is off, Edge length is the maximum subtriangle edge length in world units.

    Max. subdivs - this controls the maximum subtriangles generated from any triangle of the original mesh. The value is in fact the square root of the maximum number of subtriangles. For example, a value of 256 means that at most 256 x 256 = 65536 subtriangles will be generated for any given original triangle. It is not a good idea to keep this value very high. If you need to use higher values, it will be better to tesselate the original mesh itself into smaller triangles instead. From build 1.45.20 onward, the actual subdivisions for a triangle are rounded up to the nearest power of two (this makes it easier to avoid gaps because of different tesselation on neighboring triangles).

    Tight bounds - when this is on, V-Ray will try to compute the exact bounding volume of the displaced triangles from the original mesh. This requires pre-sampling of the displacement texture, but the rendering will be faster, if the texture has large black or white areas. However, if the displacement texture is slow to evaluate and varies a lot between full black and white, if may be faster to turn this option off. When it is off, V-Ray will assume worst-case bounding volumes, and will not presample the texture.

    Amount - this is a scaling parameter for the default displacement. Values larger than 1.0 increase the displacement amount, while values lower than 1.0 reduce it.

    Relative to bbox - if this parameter is on, the actual displacement amount is based on the bounding box of the objects, like this is done by 3ds Max itself by default. If this option is off, the displacement is expressed in generic world units where white areas in the displacement map correspond to displacement of 1 generic unit. You can use the Amount parameter to increase or decrease displacement amount.

    Notes

  • The default displacement amount is based on the bounding box of an object. Therefore, it is not a good choice when you have deforming objects. In that case, you can either turn off the Relative to bbox option, or you can apply a VRayDisplacementMod modifier, which supports constant displacement amount.

  • Search keywords: System, VRay System, raycaster, frame stamp, geometry

    General

    In this section you can adjust a variety of V-Ray parameters related to the overall operation of the renderer.

    Parameters

    [System rollout interface]

    Raycaster parameters

    Here you can control various parameters of V-Ray's Binary Space Partitioning (BSP) tree.

    One of the basic operations that V-Ray must perform is raycasting - determining if a given ray intersects any geometry in the scene, and if so - identifying that geometry. The simplest way to implement this would be to test the ray against every single render primitive (triangle) in the scene. Obviously, in scenes with thousands or millions of triangles this is going to be very slow. To speed this process, V-Ray organizes the scene geometry into a special data structure, called a binary space partitioning (BSP) tree.

    The BSP tree is a hierarchical data structure, built by subdividing the scene in two parts, then looking at each of those two parts and subdividing them in turn, if necessary and so on. Those "parts" are called nodes of the tree. At the top of the hierarchy is the root node - which represents the bounding box of the whole scene; at the bottom of the hierarchy are the leaf nodes - they contain references to actual triangles from the scene.

    Max tree depth - the maximum depth of the tree. Larger values will cause V-Ray to take more memory, but the rendering will be faster - up to some critical point. Values beyond that critical point (which is different for every scene) will start to slow things down. Smaller values for this parameter will cause the BSP tree to take less memory, but rendering will be slower.

    Min leaf size - the minimum size of a leaf node. Normally this is set to 0.0, which means that V-Ray will subdivide the scene geometry regardless of the scene size. By setting this to a different value, you can make V-Ray to quit subdividing, if the size of a node is below a given value.

    Face/level coef - controls the maximum amount of triangles in a leaf node. If this value is lower, rendering will be faster, but the BSP tree will take more memory - up to some critical point (which is different for every scene). Values below that critical point will make the rendering slower.

    Default geometry - internally V-Ray maintains four raycasting engines. All of them are built around the idea of a BSP tree, but have different uses. The engines can be grouped into raycasters for non-motion blurred and for motion blurred geometry, as well as for static and dynamic geometry. This parameter determines the type of geometry for standard 3ds Max mesh objects. Note that some objects (displacement-mapped objects, VRayProxy and VRayFur objects, for example) always generate dynamic geometry, regardless of this setting.

    Static - all geometry is precompiled into an acceleration structure at the beginning of the rendering and remains there until the end of the frame. The static raycasters are not limited in any way and will consume as much memory as necessary.

    Dynamic - geometry is loaded and unloaded on the fly depending on which part of the scene is being rendered. The total memory taken up by the dynamic raycasters can be controlled by the Dynamic memory limit parameter.

    Auto - some objects are compiled as static geometry, while others as dynamic. V-Ray makes the decision on which type to use based on the face count for an object and the number of its instances in the scene.

    Dynamic memory limit - the total RAM limit for the dynamic raycasters. Note that the memory pool is shared between the different rendering threads. Therefore, if geometry needs to be unloaded and loaded too often, the threads must wait for each other and the rendering performance will suffer.

    Render region division

    Here you can control various parameters of V-Ray's rendering regions (buckets). The bucket is an essential part of the distributed rendering system of V-Ray. A bucket is a rectangular part of the currently rendered frame that is rendered independently from other buckets. Buckets can be sent to idle LAN machines for processing and/or can be distributed between several CPUs. Because a bucket can be processed only by a single processor the division of the frame in too small a number of buckets can prevent the optimal utilization of computational resources (some CPUs stay idle all the time). However the division of the frame in too many buckets can slow down the rendering because there is a some time overhead related with each bucket (bucket setup, LAN transfer, etc).

    X - determines the maximum region width in pixels (Region W/H is selected) or the number of regions in the horizontal direction (when Region Count is selected)

    Y - determines the maximum region height in pixels (Region W/H is selected) or the number of regions in the vertical direction (when Region Count is selected)

    Region sequence - determines the order in which the regions are rendered. Note that the default Triangulation sequence is best if you use a lof of dynamic geometry (displacement-mapped objects, VRayProxy or VRayFur objects), since it walks through the image in a very consistent manner so that geometry that was generated for previous buckets can be used for the next buckets. The other sequences tend to jump from one end of the image to another which is not good with dynamic geometry.

    Reverse sequence - reverses the region sequence order.


    Previous render - this parameter determines what should be done with the previous image in the virtual frame buffer when rendering starts. Note that this parameter has no effect on the final result of the rendering; it is implemented simply as a convenient way to distinguish between parts from the current frame being rendered, and part left over from the previous rendering. The possible values are:

    Unchanged - no changes will be made - the virtual frame buffer remains the same;

    Cross - every second pixel of the image will be set to black;

    Fields - every other line of the image will be set to black;

    Darken - the colors in the image will be darkened.

    Blue - the previous image is tinted in blue.

    Distributed rendering

    Distributed rendering is the process of computing a single image over several different machines. Note that this is different from distributing the frame over several CPU's in a single machine, which is called multithreading. V-Ray supports multithreading, as well as distributed rendering.

    Before you can use the distributed rendering option, you must determine the machines that will take part in the computations. Both 3ds Max and V-Ray need to be properly installed on those machines, although they don't need to be authorized. You must make sure that the V-Ray spawner application is running on those machines - either as a service, or as a stand-alone application. Refer to the Installation section for more details on configuring and running the V-Ray spawner.

    For additional information on distributed rendering, please refer to the dedicated Distributed rendering section.

    Distributed rendering - this checkbox specifies whether V-Ray will use distributed rendering.

    Settings... - this button opens the V-Ray distributed rendering settings dialog. See the Distributed rendering section for more information.

    Frame stamp

    The frame stamp is a convenient way to put some short text over the rendered images. It can be useful in many ways - for example, in network rendering, to quickly determine which frames were rendered by which machine. The frame stamp is one line of text, which appears at the bottom of the image.

    Checkbox - turns the frame stamp on and off.

    Edit box - here you enter the text you wish to appear in the images. You can also use some special keywords, all of which begin with the percent symbol (%). The keywords are replaced by V-Ray with the corresponding value:

    Keyword Meaning
    %vrayversion the current version of V-Ray
    %filename the name of the current scene file
    %frame the number of the current frame
    %primitives * the number of unique intersectable primitives generated for the current frame*
    %rendertime the render time for the current frame
    %computername the network name of the computer
    %date the current system date
    %time the current system time
    %w the width of the image in pixels
    %h the height of the image in pixels
    %camera the name of the camera for this frame (if rendering from a camera, empty string otherwise)
    %"" the value of any V-Ray parameter, given its MaxScript name (see section on MaxScript). Note that you must enclose the parameter name in quotation marks ("). Also note that this option only works when rendering to the 3ds Max frame buffer.
    %ram the amount of physical memory (in KBytes) installed on the system
    %vmem the amount of virtual memory (in KBytes) available on the system
    %mhz the clock speed of the system CPU(s)
    %os the operating system


    * An intersectable primitive is a primitive that provides a direct method for intersection with a ray (such as a triangle, the infinite plane generated by a VRayPlane plugin etc). Most often, the number of these primitives is the same as the number of triangles (faces) processed by V-Ray for the current frame. Note that this may be different from the total number of triangles in the scene. With the dynamic raycaster, only geometry that is actually needed is generated and accounted for. Geometry that is not generated is not included in this count.

    Font - this button allows you to choose a font and font attributes for the text in the frame stamp.

    Full width - when this option is checked, the frame stamp will take the whole width of the image, otherwise the stamp will be only as wide as the text is.

    Justify - specifies the position of the stamp:

    Left - the stamp is placed on the left of the image.

    Center - the stamp is centered.

    Right - the stamp is placed on the right side of the image.

    Object Settings / Light Settings

    These buttons bring up the dialogs for the local object and light settings.

    Presets

    This button brings up the presets dialog.

    V-Ray log

    [V-Ray messages window]These parameters control the V-Ray messages window. During rendering, V-Ray writes various information in the file C:\VRayLog.txt. The messages window shows some of that information so that you can view it without the need to manually open that file.

    Each message can fall into one of four categories, which are colored in a different way in the messages window. Those catergories are errors (colored in red), warnings (colored in green), informative messages (colored in white) and debug messages (colored in black).

    Show window - when this is turned on, V-Ray will show the messages window at the start of every render.

    Level - this determines what kind of messages will be showed in the window:

    1 - only error messages

    2 - error and warning messages

    3 - errors, warnings and informative messages

    4 - all messages

    Log file - this parameter determines the location and the name of the log file. The default log file is C:\VRayLog.txt

    Other parameters

    MAX-compatible ShadeContext - V-Ray carries all its computations in world space. However, some 3ds Max plugins (notably atmospherics) take it as granted that the renderer works in camera space, because this is what the default scanline renderer does. To preserve compatibility with such plugins, V-Ray emulates work in camera space by converting the various points and vectors passed to and from other plugins. In addition to slowing down V-Ray by forcing it to convert values all the time, working in camera space messes up with camera modifiers such as the Technical camera script. This why you have the option of turning off the camera-space emulation.

    Check for missing files - when this is on, V-Ray will try to find any missing files in the scene and will put up a dialog listing them, if there are any. The missing files will also be printed to the C:\VRayLog.txt file. If this option is on, and you render the scene with distributed rendering, and if a render servers detects missing files, it will refuse to render the scene.

    Optimized atmospheric evaluation - normally in 3ds Max, atmospherics are avaluated after the surface behind them has been shaded. This may be unnecessary if the atmospheric is very dense and opaque. Turning this option on will cause V-Ray to first evaluate the atmospheric effects, and shade the surface behind them only if the atmospherics are sufficiently transparent.

    Low thread priority - turning this on will cause V-Ray to use threads of lower priority when rendering.

  • source : http://www.spot3d.com/vray/help/150SP1/

Getting started in max (tutorials)

...