Professional Documents
Culture Documents
“Without the RealFlow RenderKit, we never would have been able to push
the fluid renders to the resolution and quality that we delivered on The
Curious Case of Benjamin Button. The RFRK allowed us to deliver higher
resolution and better-looking CG water than previously possible, and in far
less time than traditional meshes would have required.“
2 FlowerMesher Overview , 4
2.01 Core/Splash Filter , 10
2.02 Motion Blur , 14
2.03 Normals , 14
2.04 RealWave , 15
2.05 Subdivisions , 16
RealFlow RenderKit in Maxwell Render Manual Version 0.20
Introduction | 3
1 INTRODUCTION
The RealFlow RenderKit is a set of tools that has been designed to facilitate the complex
task of rendering RealFlow™ fluids. The RenderKit enables you to generate procedural
geometry at render time, in situations where you want a polygonal mesh representation
from your fluid particles. It also provides you with tools for rendering individual fluid
particles. The RenderKit will dramatically simplify and accelerate your workflow.
For the past decade simulation tools like RealFlow™ have been used to achieve realistic
animation of fluids. Thanks to the exponential growth of computation power, these
simulations have become more and more realistic, which has often meant that users have
to deal with ever-increasing numbers of particles.
In a typical RealFlow™ workflow, the user creates a fluid simulation and exports the file
sequences containing the particles which represent the fluid. When it comes to rendering,
users are usually interested in having a polygonal mesh rather than particles. This involves
another step in the workflow, where the polygonal mesh is generated in RealFlow™ and a
sequence of files containing those polygonal meshes is produced.
This extra step in the workflow creates a significant storage restriction for the polygonal
meshes, and yet another problem arises when millions of these particles or vertices have
to be imported into a standard 3D application for rendering. Often these applications
cannot cope with such a vast amount of data.
2 FLOWMESHER OVERVIEW
Meshing is the internal process by which FlowMesher converts the particles into a mesh
geometry. Various parameters, such as scale, resolution, smoothness, radius and polygon
size are taken into account during the meshing process. To get the perfect look for the
fluid, it is very important to configure these parameters correctly.
For instance, to get a fluid with high/low detail, the resolution, scale or polygonSize
parameters must be configured accordingly. These parameters configure the size of the
polygons that make up the fluid mesh.
Specifying high values for the resolution parameter will give you smaller values for the
polygon size of your mesh and vice versa. It is critical that the scale parameter in the RFRK
is IDENTICAL to the scale value in your scene in RealFlow.
To find the optimal resolution value, you could start by trying with the same value as
your emitter in the RealFlow scene (i.e. FlowMesher resolution = 1.0 x RFemitter). If you
want a more detailed mesh, try something like FlowMesher resolution = 10.0 x RFemitter
(always leaving the scale parameter constant).
Using the resolution and scale parameters is a quick, easy way to configure the level of
detail for the fluid mesh.
1. Scale = 1 (Scale in RF scene); Resolution = 1 (RFemitter = 1) 2. Scale = 1 (Scale in RF scene); Resolution = 1 (RFemitter = 1)
1. Scale = 1 (Scale in RF scene) Resolution = 10 (RFemitter = 1) 2. Scale = 1 (Scale in RF scene) Resolution = 12 (RFemitter = 1) Another key aspect involved in the final appearance of the mesh is the level of smoothness
used – i.e. whether you are looking for smooth- or blobby-looking fluid. For this, you will
Alternatively, you can configure the size of the polygons manually by using the polygonSize have to configure the smooth parameter. This parameter tells the algorithm how far it
parameter. (This parameter is also related to the resolution parameter.) To configure this should go to gather environment information to compute a given point of the mesh. The
parameter correctly, start by considering the dimensions of your fluid. This parameter is further the algorithm goes to gather information, the smoother the surface will be. Bear
indicated in world units. If the polygonSize parameter is greater than zero, the scale and in mind that using high values in the smooth parameter will greatly increase computation
resolution parameters will have no effect on the appearance of the mesh. The images below time.
show the effect of changes in polygonSize. If you use a low value for the polygonSize, the
render will be slower because of the resolution increment of polygons in the geometry. Thus, the smooth parameter is the distance of search radius and is related to polygonSize.
For the same value of smooth, this search distance will vary depending on the resolution
you are using (see Figures 1, 2, and 3 for further explanation of this concept).
The best way to get great results is to follow this golden table:
Resolution Smooth
1.0 x resemitter 0.3
10.0 x resemitter 0.5
Figure 1 shows how the mesh resolution works with values of 1.0 *RF emitter resolution.
For example, if your emitter has a resolution value of 5, you could use this value in the
RenderKit resolution parameter. Figure 1 shows the smooth values which would give you
the optimal result.
In Figure 2 below you can view the values for resolution when multiplied by 10 - i.e. the
Mesh Resolution would be (10 * RF emitter resolution). As in the last example, if your
RealFlow emitter has a resolution value of 5 and the RenderKit is set to 50, the optimal
value for the smooth parameter would be 0.5.
In Figure 3, the value for resolution is (Mesh Resolution = 0.5 * RF emitter resolution).
In our example the RenderKit resolution parameter is 2.5 and, for optimal results ,the
smoothing value is 0.2.
Figure 2
Figure 1
Figure 3
The table below gives you some examples of how the smooth and resolution parameters work in each case. Smooth and mesh resolution are directly related to getting a good final
mesh.
10*RFemitter= 50 0.0 1.0 0.4 0.3 Some smoothing 0.0 0.0 1000.0
0.5*RFemitter =2.5 0.0 1.0 0.4 0.25 Optimal 0.0 0.0 1000.0
0.5*RFemitter =2.5 0.0 1.0 0.4 0.3 Aggressive 0.0 0.0 1000.0
There is one more parameter involved in the appearance of your mesh: the radius.
The fluid is represented by particles that don’t have any real volume in 3D space. With
the radius parameter, therefore, you can assign a volume (or radius of the sphere) to the
particles.
So, with this parameter you indicate the thickness of your fluid. It is measured in distance
units relative to the resolution of the mesh, and is indicated in the following way:
The examples on the next page shows the behavior of the filter parameters.
1. core = 0 4. splash = 0
This table represents adjustments to obtain the ideal result for the mesh, using Core and Splash filters combined with various meshing parameters. Note that Resolution 5 is the RF
emitter resolution in this case.
2.02 Motion Blur Don’t forget to set the frames per second (24, 25, 30 fps) in the scene, using the fps
parameter, to get the right motion blur values.
Motion blur helps to increase the realism of the scene and give a sense of scale. You
can achieve very realistic results by adding motion blur to your renders. The RealFlow
RenderKit contains several parameters to control the appearance of motion blur, such
as maxVel, shutter or frames. You can see the render with Motion Blur activated or
deactivated in the images below: 2.03 Normals
By default, the mesh will always have its normals facing the right direction, but if you need
to invert them, simply use the flipNormals setting.
Motion Blur can be controlled by the parameter maxVel, which allows you to clamp the
module of the velocity of the particles to this value. In other words, if the velocity modules 1. flipNormals = NO 2. flipNormals = YES
of the particles are higher than the maxVel value, the velocity module for each particle will
be replaced by this value . This is a way to control the quantity of motion blur in the fluid
render. By indicating low values for maxVel, you can see subtle motion blur in the render.
The following images show low values in the maxVel parameter.
Each particle is distributed in the RealWave mesh polygon according to the value for
rwTessellation. To get optimal results for the RealWave mesh, you must take the smooth
values into account when selecting a value for the rwTesselation parameter.
YZX (LightWave system)
In this table below you can see different values for the RealWave mesh.
uu NOTE: The rwTesselation parameter only affects the realwave_file. The realwave_file can
be mixed with the reaflow_file to generate a seamless mesh.
2.04 RealWave
Resolution rwTessellation Image
RealWave objects created in RealFlow can also be meshed by the RenderKit, just like
RealFlow fluids. The RenderKit tessellates the RealWave mesh internally, using the 1.0 3.0
Tesellation parameter. It uses the value of the tessellation parameter to calculate the
number of particles per polygon. So, to increase the resolution for a RealWave mesh you
simply modify the rwTessellation parameter. The default value for rwTessellation is 3. This
indicates how the particles are distributed in each polygon of the RealWave mesh. The
image below illustrates how the distribution of particles works.
1.0 5.0
10.0 5.0
10.0 10.0
2.05 Subdivisions
Generating very high resolution meshes can cause problems with memory management.
FlowMesher can handle these meshes by making volume subdivisions automatically.
Subdivision is the process by which the bounding box of the RealFlow particles is subdivided
into several subvolumes, so each one computes the mesh independently. When all the
subvolumes have been computed, the individual meshes are reunited to form a complete
high-resolution mesh. In this way, these type of meshes can be rendered easily with
low memory consumption. Although the RealFlow RenderKit generates this subdivision
internally, you also have the option to control this process manually.
All images in this book have been reproduced with the knowledge and prior consent of the artists concerned and
no responsibility is accepted by producer, publisher, or printer for any infringement of copyright or otherwise,
arising from the contents of this publication. Every effort has been made to ensure that credits accurately
comply with information supplied.