Beruflich Dokumente
Kultur Dokumente
Theory:
Practice:
o
Buckets Options
Miscellaneous options
Conclusion
management in the rendering immediately becomes clear. But, of course, we wouldnt just
stop on this and will follow the order of rendering step by step.
Once data is loaded into memory, V-Ray rendering can begin. The calculating of each pixel
starts with the basic operation, namely the "probing" the geometry. This is done by using a
special algorithm, the so-called ray casting. The essence of this algorithm is that camera
shoots a ray, which that flies until it hits some object in the scene. Each ray intersection is
fixed and thus V-Ray determines the location of geometry in the scene, its basic properties
and other information required for further rendering.
He will have to approach first leaf and see whether it is yellow. Then, come up to the
second and look if he needs the second leaf. After this, he has to go to the third one, and
again check if that is yellow. Thereby, our ant needs to go through literally every leaf until he
finds the desired yellow one.
The situation when the ant reaches the yellowish leaf at the beginning of his search is
probable. However, there is also absolutely no guarantee that the yellow leaf not be the
latest in pile. In such case, to find a single yellow leaf, our ant would have to go over the
whole pile of greens.
A similar situation can occur with unorganized data on the scene geometry. Raycasting
algorithm will be forced to sequentially go through all the geometry for determining the
properties of a single point in the scene, which was intersected by raycasting ray.
This method of finding the required information is too tedious for our imaginary ant, as
well as for the computers CPU, which instead of actual rendering has to busy oneself with
non-rational searching of data in memory.
If we do not throw the leaves to a disordered heap, but carefully arrange them on the
branches of a tree, we can significantly speed up the process of finding a yellow leaf. In such
situation, our ant, avoiding all unnecessary branches, can go straight to the needed
destination. That happens because he does not need to check all the leaves. Instead, he can
almost immediately see the path that could lead him to the place where the yellow leaf
grows, and quickly climb there by his strong legs.
According to this principle, V-Ray structures the geometry in the scene, catching the one
more opportunity to save our precious time, even on such seemingly insignificant operations.
The basic principle of rendering at this level is quite simple: load, structure, found the
necessary properties, and render :)
Now, when we met with the principle of structuring data for raycaster, we can proceed to
the next step, which users come across on the way of rendering big scenes in V-Ray.
However, as we mentioned at the start of the lesson, there is one rendering issue left.
Everything goes smoothly during rendering, as long as the RAM amount, physically installed
on your computer, is enough to contain the whole scene geometry.
The fact is the V-Ray has different types of raycasting algorithms. The simplest of them is
the so-called Static Raycaster. It loads the geometry of entire scene into memory at once.
Imagine that we are going to start rendering a scene with many millions of polygons, so
for its entire loading the available RAM amount is not enough. What happens then?
Unfortunately, in this case the one of the most unpleasant V-Ray surprises occurs. It is the
program crash.
Software crash is the appearing of the unexpected critical error that prevents further
normal work of the program. This like V-Ray fault happens when the free RAM has been
exhausted and further filling of the geometry to the memory is simply impossible. The
message about creating in memory the geometry tree structure Current Task: Buliding
static raycast accelerator ... is usually the last thing rendering artists see Rendering
information window. After that, the rendering, together with the work of 3ds Max and V-Ray,
spontaneously break off, causing the error report window.
In our analogy, for example, it is an attempt to use excessively branched tree for the
location of leaves. Too heavy tree that carries a huge amount of leaves and branches simply
collapses, rooting out from the holding it ground.
The only way out of this situation without increasing the amount of RAM is to abandon the
one-time entire scene loading approach. Instead, we have to load sequentially its certain
parts, rendering of which should occur only at given moment of time.
As might be expected, V-Ray has such a way to load the geometry into the memory. This
method is embodied in a special, dynamic type of raycaster, which is designed exactly for
such situations.
Rendering using dynamic raycaster eliminates the memory overflow problems not only
due to the exact memory limit. Dynamic raycaster knows how to use the operating systems
potential in memory management. This means that even if the current image area
calculation needs to load objects, the total size of which exceeds the established memory
limit, the operating system still is able to allocate a resource for the successful continuation
of the rendering. In particular, Windows will use the so-called paging (or swapping), which is
the ability to save the data that cannot fit in the physical memory to HDD.
Despite the aforementioned advantages of dynamic geometry loading, we must realize
that if dynamic raycaster was the really universal solution, then an unreliable crashing static
raycaster would be simply needless. However, V-Ray uses the static raycasting engine by
default.
The loading and unloading of the data spends our precious time, as any other operation.
Even if we set the ideal (for our situation) RAM limit, the use of dynamic raycaster will
significantly increase the overall rendering time. Moreover, in case of need to use paging, the
rendering time will increase even more.
Shortly, these are the all the basics of raycaster work with memory and the problems of
its using. Now, when we met with the principle of raycaster, let us look at its practical
configuration and management tricks.
10 or 20 final renders, and the rendering speed of each frame will increase by 20 seconds,
such effort is very useful. After all, this optimization can easily save about 5 hours of
computing time.
In practice of static rendering, the need to change the values of these parameters exists
only in theory. It can only make sense when we want to free memory to suit some other
needs, so we reduce the size of the BSP tree at the price of slowing the rendering time.
In the best V-Ray settings, the parameters responsible for the BSP tree structure should
be set to the default V-Ray values, without making any changes without well-considered
necessity.
4.0
Window s 7
Next Default geometry parameter determines the method of loading the geometry into
memory. Here we can select the type of raycaster, which will calculate the geometry of the
current scene. The default geometry parameter is a drop-down list from which you can
choose the type of raycaster.
Before
describing
the default
geometry options,
we
should
mention
the VRayProxy and VRayFur objects. The feature of rendering such objects is that no matter
what is selected in default geometry; these exact objects are calculated by dynamic
raycaster. Such a feature is implemented because these like objects are extra high polygonal,
and it is better to load them by portions for avoiding the program crash.
Static is the most trivial raycasting mode. When we select static, all the data about the
scene geometry is entirely loaded into memory before rendering.
Dynamic is the compromise mode of default geometry. Dynamic raycaster does not load
all the scene geometry into memory at once. It loads the geometry data by portions. The
number of megabytes set in dynamic memory limit determines the maximum portion size.
Auto is the initial default geometry option. In this mode, V-Ray decides which objects in
the scene are better to calculate with static raycaster, and which are with dynamic. This
decision is based on the properties of the particular object. Whether this object should be
calculated with dynamic or static raycaster depends on the polygons and instances number
of this exact object. This is a hybrid method of loading geometry, which combines the work
of static and dynamic raycasters.
If we compare the types of raycasters, then we can conclude that dynamic is the most
unpretentious, but also the slowest raycaster. Using it, we are free from the 3ds Max
memory overflow issues, however, due to the need to fill and clean the limited amount of
memory continually, rendering speed substantially slows down. When rendering with static
raycaster, it on its one manages all RAM resource, available to the system. Static is the
most productive, but also the most unstable mode. If all the geometry can completely fit in
memory, then the rendering is as fast as possible. After all, we do not need to dose the
geometry, wait for clearing the memory to load the next portion of data, and use the
sluggish paging. However, if we have more data than can fit in available RAM, it will
immediately cause the downfall of the program. Just recall the picture with a broken tree :)
Nominally, the default geometry set to auto. Auto is the most universal mode, so it is
reasonable to use it in the Best V-Ray Settings.
Buckets Options
The settings of render region division zone of V-Ray system configurations let us choose
the size of rendering portions and the order of their calculation.
Render region division or, as it is called, the bucket is the minimum region, to which the
final image is divided for sequential multi-threaded rendering. The idea of such a partitioning
is similar to the idea of Number of passes function work in Light Cache. Buckets are these
little squares that quickly (and sometimes not :D) running around the frame buffer, gradually
opening the final result of rendering to our view.
It may sound banal, but the actual rendering process,
which is considered a model of multitasking, is not multitasked actually. The exact computation cannot be
performed by more than one core, even with the multicore CPU. You can imagine how long will the rendering
last, if we use only a single processing core, while other
are idle. This situation is completely unacceptable and, of
course, we need a way out it. The solution for this is the
equal division of the rendering process between different computing threads. The rendering
is divided into many independent parts, in other words, into many small renderers, and the
each of them can be computed by a separate processing thread. Thus, uniform computation
is divided into several parts, allowing the full load of all computing pipelines of the system.
This is how the little images, called buckets, render. When the bucket is rendered, it is
displayed in a frame buffer. The rendering result is like a puzzle, assembled from small
pieces into one final image :) In order for the final render does not look like a jigsaw puzzle
or a mosaic, with clearly distinguished borders of neighboring cells, buckets are the subject
for mutual interpolation.
Let us take a look at the exact buckets parameters.
X and Y values determine the size of the bucket in pixels horizontally and vertically. By
default, these two numeric fields are dependent and equal. Although, it is enough to press
the button L (lock) and the independent Y value becomes available. The X and Ydetermine
the size of bucket in pixels until the drop-down list next to X is set to Region W/H. If it set
to Region Count, then the numerical values in the X and Y determine the number of buckets,
to which the final render will be divided horizontally and vertically.
Obviously, if the final image is divided into many portions, then the more computing
resources V-Ray have to spend on interpolating their neighboring boundaries. At the same
time, the small bucket is a guarantee that one rendering portion catches the minimum
amount of geometry. That is good factor, because bucket is exactly that portion, which the
dynamic raycaster loads into RAM. Reducing the size of the bucket can be useful, when
filling the bucket objects exceed the limit of memory, available to a single thread. A smaller
bucket could theoretically take less amount of geometry, so it can possibly save rendering
from the use of paging. The long and short of it, this situation is difficult to predict, so the
default values 64x64 and Region W/H are the best for starting V-Ray configuration.
Region sequence is the option that specifies the type of portions rendering sequence or,
in other words, the pattern of buckets rendering. We can choose the one of the six rendering
patterns - Top/bottom, Left/right, Checker, Spiral, Hilbert curve, andTriangulation.
From the name of the first four of them it is quite to guess a way they render. With
the Hilbert curve mode, the buckets follow each other in a form of a snake out of blocks, just
like in game on first mobile phones :)
The last and the most interesting mode is Triangulation. With it, buckets plot the triangles
of different sizes, consistently covering all areas of the frame buffer. The main feature
of Triangulation is that its pattern gradually covers very dense image areas, what is very
useful for dynamic raycaster work. With such a pattern, there is a high chance that the part
of geometry used for rendering previous bucket, can be used for rendering the current one.
This certainly saves computational resources, avoiding unnecessary operations of loading and
unloading of data to limited memory amount. It is for this reason, even if you like a snake or
a checker pattern, in starting V-Ray settings always use a Triangulation as a pattern for
rendering buckets.
Reverse sequence can reverse the direction of buckets calculation. For example, if the
rendering pattern is set to Left/right, the activation of reverse sequence option will make the
buckets computed from right to left, i.e. in the reverse direction. This feature does not really
affect the rendering process. However, it can be very useful in cases when rendering of the
scene stopped before completion for some reason. Then the rendering can be resumed by
activating the reverse direction so we can continue to render the scene from the notrendered part of the image. In the Best V-Ray settings, the changing of this option has no
practical sense.
Previous render is an parameter to specify an action performed with the previous image
into a frame buffer during rendering of the new one. The Unchanged mode allows us leave
the previous rendering unchanged. Cross and Fields modes let us cover the previous render
with the corresponding pattern. Darken and Blue modes allow us to darken or give a blue tint
to the previous renderer for highlighting the contrast. The most useful of these modes is the
default Unchanged, which allows us easily watch the changes in the new render, comparing
to the previous. That is the mode we should use in the optimal V-Ray configuration.
On this, all the important system configurations of V-Ray end. Following zones and setups
of V-Ray:: System rollout are secondary and do not significantly affect the actual rendering.
However, we will surely learn how to use them also.
Frame stamp enables adding the stamp with statistical information to the image of final
rendering. With this feature on, we can add to a render a stripe with different technical
information. This info can be the current frame rendering time, the name of the CPU, the
current version of V-Ray, and even the size of the final image in pixels. This particular feature
is designed for special occasions. For example, it may be useful when testing the scene for
determining the optimal size of a BSP tree. Enabling Frame Stamp also may help you to
boast before colleagues the new computer and the speed it renders the most difficult
scene :) Of course, enabling this function is useless as for the starting V-Ray settings.
This is one of the most revolutionary features of modern rendering engines. Distributed
rendering allows us to render a single image using the computational power of multiple
computers. To do this, the computers must be properly configured and be in a common
network. V-Ray can distribute and send separate buckets to different available computers,
and then collect the results of their calculation in a single frame buffer.
This is a very rich and interesting topic, which will be revealed on the RenderStuff pages in
future. For now, the rendering of an image by multiple computers is far from the idea of
starting V-Ray settings, so we do not need to activate the distributed renderingfunction.
Miscellaneous options
Next, are the Miscellaneous options. This zone contains all the remaining secondary
system parameters of V-Ray.
MAX-compatible ShadeContext (work in camera space) is a feature that allows VRay to work with so-called camera space.
The case is that V-Ray nominally performs all calculations in the scene space. In other
words, the V-Ray itself uses geometry coordinates relative to the whole scene space.
However, some plug-ins, especially the older ones, work with coordinates relative to the
current camera. Activation of work in the camera space allows V-Ray to work with these
plug-ins, bypassing the problem of incompatibility. That is why, in the starting V-Ray
configuration, we must always keep the MAX-compatible ShadeContext option active.
The option Check for missing files enables check for missing files, such as not found
textures or proxies in the current scene. The result of this check is immediately displayed as
a warning in the log. Nevertheless, we usually know about the missing files in the scene. Just
remember the popping out list of missing files when the scene is loaded into 3ds Max. In
practice, the missing files check before actual rendering is more annoying than useful, and
therefore, we are better turn off this function when setting the starting configuration of VRay.
Conclusion
That is the all the system settings and features of V-Ray that every V-Ray rendering artist
must know.
We hope that this tutorial will help you in difficult situation when project deadlines are
close, and 3ds Max suddenly crashes. Now, when you understand the basic principles of
working with V-Ray renderer system settings, you are able to manage the rendering of huge
scenes, regardless of your computers RAM amount.
All, have easy settings and beautiful 3d renderings!