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
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