This page provides information on the System rollout in the Render Settings.
In this section you can control a variety of V-Ray parameters related to the overall operation of the renderer.
UI Path: ||Render Settings window|| > Settings tab > System rollout
One of the basic operations that V-Ray must perform is raycasting, the process of determining if a given ray intersects any geometry in the scene, and if so, identifying that geometry. From a technical perspective, the simplest way to implement raycasting would be to test the ray against every single renderable triangular face in the scene. Obviously, in scenes with thousands or millions of triangles, this would 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 into two parts, then subdividing those two parts, then subdividing the four resulting parts, and so on. Those "parts" are called the 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, which contain references to actual triangles from the scene.
The settings in this area of the System rollout control various parameters of V-Ray's Binary Space Partitioning ( BSP ) tree.
Abort rendering on missing asset – When enabled, the scene will not render if an asset fails to load.
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 frequently, the threads must wait for each other and the rendering performance will suffer. Geometry and EXR tiles share the same memory pool, so this parameter also controls the memory limit for tiled EXR files with mip-maps. In V-Ray 3.0 for Maya, you can set this value to 0 to remove any limit, in which case V-Ray will take as much memory as needed. It's also possible to enter a negative number, which will cause actual memory usage to depend on the physical memory of the particular machine.
Default Geometry – Internally V-Ray maintains four raycasting engines. All of them are built around the idea of a BSP tree, but each has 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 Maya mesh objects. Note that some objects (displacement-mapped objects and Proxy Objects | VRayProxy for example) always generate dynamic geometry, regardless of this setting.
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.
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.
Use global hair tree – When enabled, a single BSP tree is created for all hair geometry.
Use Embree – Enables the Intel® Embree raycaster. For more information, please see the Embree parameter example below.
Use Embree for Motion Blur – Enables the usage of the Embree library for motion-blurred objects.
Use Embree for hair – When enabled, V-Ray will use the Embree library to speed up the rendering of hair.
Conserve Memory – Embree will use a more compact method for storing triangles, which is slightly slower but reduces memory usage.
Use Ray Packets – When enabled, the raycasting process traces packets (groupings) of rays instead of single rays. This is an experimental feature which might (or might not) improve rendering speed depending on the scene.
Example: The Embree Parameter
The Embree raycaster process dynamically builds algorithms that best match the instruction set of the CPU, thus speeding up the raycasting process overall. Currently, in V-Ray, the Embree process accelerates only the calculation of rays for static geometry (as opposed to dynamic or render-time geometry). To get the best performance, setting the Default geometry parameter to Static is recommended as this will use more memory (any instances will be replicated), but the rendering will be much faster. You can also use Embree to accelerate 3D displacement and subdivision surfaces if you enable the Geometry generation option in VRayDisplacementMod (however, doing so can drastically increase the memory requirements for your scene).
VRayProxy objects, VRayFur and all hair geometry are not currently accelerated with Embree, although support for VRayProxy objects is planned for a future release.
The following images were rendered with the Progressive image sampler over a set period of time. Using Intel® Embree allowed the progressive sampler to compute almost twice as many passes within the rendering time, thus producing a smoother image.
Use Embree is Off, the image reached 62 passes
Use Embree is On, the image reached 118 passes
Note that the Embree raycaster derives its speed partly from the usage of single-precision floating point numbers, whereas the standard V-Ray raycaster selectively uses double precision. This lower precision of Embree might sometimes result in artifacts in scenes with very large extents.
Frame Stamp Parameters
The frame stamp is a convenient way to tag or record information about the scene as text on rendered images. For example, frame stamps can be used with network rendering to record which frames were rendered by which machine. The frame stamp appears as one line of text at the top or bottom of the image.
Show Frame Stamp – Turns the frame stamp on and off.
Frame Stamp – The keywords used to render the stamp tokens or keyboards (see table below). These keywords are replaced by V-Ray with the corresponding value:
|%vrayversion||Current version of V-Ray|
|%filename||Name of the current scene file|
|%frame||Number of the current frame|
|%primitives *||Number of unique intersectable primitives generated for the current frame*|
|%rendertime||Render time for the current frame|
|%computername||Network name of the computer|
|%date||Current system date|
|%time||Current system time|
|%w||Width of the image in pixels|
|%h||Height of the image in pixels|
|%camera||Name of the camera for this frame if rendering from a camera (if not rendering from a camera, an empty string)|
|%ram||Amount of physical memory (in KBytes) installed on the system|
|%vmem||Amount of virtual memory (in KBytes) available on the system|
|%mhz||Clock speed of the system CPU(s)|
* 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.
Vertical Alignment – Specifies where to print the information. The available values are Top and Bottom
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.
V-Ray Log Parameters
These parameters control the V-Ray messages displayed in the Output Window. During rendering, V-Ray writes various information in the file vray4maya_log.txt located in the Windows temporary folder. The Output Window shows some of that information so that you can view it without the need to manually open that file.
Each message falls into one of four categories: Errors, Warnings, Informative messages and Debug messages.
Log message level – Determines which messages, if any, are going to be displayed in the Output Window.
Progress increment – Controls the intervals at which V-Ray prints out messages. The default value of 10 means that V-Ray prints out messages at every 10% of the render time.
Tiled Texture Parameters
Tiled texture cache size – Specifies the size, in megabytes (MB), of a separate texture cache to be used for tiled OpenEXR files. Note: The cache size can not be decreased from its initial render value. If you set it lower, the value will not be used by Maya until you restart the application.
Advanced System Parameters
When Use Embree is enabled, the BSP tree will not be taken into account and the Max tree depth, Min leaf size, and Face/level coef parameters will be hidden.
Max tree depth – The maximum depth of the BSP tree. Larger values will cause V-Ray to take more memory, but the rendering will be faster up to a certain critical point. Values beyond that critical point (which is different for every scene) will start to slow down calculations. 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. At values other than 0, V-ray will stop subdividing when the size of the leaf nodes falls below this 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 a certain critical point (which is different for every scene). Values below that critical point will make the rendering slower.
Max render threads – Determines how many threads will be used by V-Ray for rendering. When this value is set to 0, V-Ray will use all the CPU cores available on the machine.
Low thread priority – When enabled, the rendering process will have a lower thread priority to allow other processes to run faster.