Volume Rendering

New in blender is a physically based volume material type, intended for rendering participating media, such as smoke, clouds, fog, and other volumetric effects. All procedural textures are supported as data sources, as well as two new textures for rendering voxels (such as our the smoke simulator) and point clouds. 

Shading

Several shading modes are available, providing a range of options between fast to render and physically accurate.

Shadeless is the simplest, useful for thin, wispy mist or steam. Shadowed is similar, but with shadows of external objects. Shaded uses a volumetric single-scattering method, for self-shading the volume as light penetrates through.

A multiple scattering approximation is also implemented, though not fully working in alpha 0. This will be fixed soon.

 

Appearance

Volumes are shaded with a physically based model, with some additional tweaks. Shading volumes involves a few parameters: Emission, Scattering, and Transmission, which can all be textured with any 3D texture.

Emission controls the light being generated by the volume (such as incandescent media like fire). Scattering controls how much light is scattered out of the volume or absorbed by it, making it seem wither bright or dark and dense (like black smoke). Transmission determines the colour of the volume after result colour that light becomes after it is transmitted through the volume.

Initial documentation with more detailed descriptions of the shading parameters are available on the Blender wiki.


Voxel Data

Alongside the volume material itself are additional 3D textures, used for texturing volume properties such as density and color. One of the new textures is Voxel Data.

The default voxel data source, Smoke, is used for rendering Blender's internal smoke simulations. Other sources include binary raw formats, and Image Sequence, which can be used to stack a sequence of images into a 3D representation, which is a common format for medical volume data such as CT scans. 

Point Density

Another new texture useful for volume rendering is Point Density. Point density renders a given point cloud (object vertices or particle system) as a 3D volume, using a user-defined radius for the points. Internally, the system uses a BVH data structure for fast range lookups.

The rendered points are spherical by default, with various smooth falloff options, as well as simple Turbulence options for displacing the result with noise, adding fine detail. When using Point Density with a particle system, additional particle info such as particle velocity, age, and speed, can be visualized using a color/alpha ramp gradient.