Volumes
Until now, Cinema 4D almost only focused on an object’s surface for specifications - a polygon object is defined by the coordinate values and its surface points, which define the respective polygons. This is adequate for solid objects but for other objects such as fluids, fog or fire, this approach doesn’t work as well. These objects do not have an easily definable solid surface but a volumetric surface that often changes rapidly. Such effects can be better described as Voxels.
What are Voxels? Simply put, they are three-dimensional pixels. Similar to bitmaps, which are made up of two-dimensional pixels that each contain a color value, Voxels are arranged in a three-dimensional, cube-shaped grid that also contains a value (this can, for example, be the distance from a surface of a volume-generating object (Volume Type Signed Distance Field) (SDF) or, for more complex, imported applications, the temperature or gaseous density of a flame, for example (Volume Type Fog).
This differentiation is not referenced in the following descriptions. When Voxels or Voxel Layers are discussed, it will always be referencing active Voxels.
With the introduction of R20, Cinema 4D can also work with Voxel-defined objects (for this, the Oscar Award-winning open source library OpenVDB was integrated). Voxels can be converted to polygon objects or polygon objects to Voxels at any time.
Some tasks (e.g., Boolean operations) can be executed more effectively using Voxels than with polygon objects. This is why the conversion works smoothly in both directions.
The
Note that modeling with Voxels is very restricted. Very precise modeling is very difficult (the Voxel Size would have to be very small, which in turn requires a lot of computing power). Nevertheless, fully parametric complex shapes can be easily created.
To render Voxels they must be converted to polygon surfaces (see
Voxels can be created in the following way in Cinema 4D:
Voxels can, by the way, not only be used for modeling but also to create Volume Vectors. Each Voxel will then contain one vector.