Volumetrics is written in C++. It is quite portable (works under Linux and Windows; the MojoWorld plugin did work on Macs). Currently, the core renderer is a DLL with special API that allows to use this DLL in your project.

Software architecture:

The software is made from multiple components.

Volumetrics render engine component simulates the propagation and scattering of light in atmosphere, clouds, and on surfaces (landscape or ocean). Render engine have subcomponents, functions of which would be too long and technical to describe here. On most basic level, render engine calculates the brightness and/or transparency values along the line of sight, from the optical properties of scene, and the lighting. Other components listed below are connected to the Volumetrics render engine to construct a scene.

Cloud and atmosphere parameter components provide optical properties of atmosphere at any point in space on deman, along with some additional information used to accelerate rendering. When using multiple clond and atmosphere objects, optical effect is combined.

Surface shaper components provide some value in space which is greater than 0 outside the surface and less than 0 inside surface. This value is used by render engine to find collisions of light with surface.

Surface parameter components provide optical properties of surface.

Control and interfacing component processes the command-line, reads parameter and scene files, camera pathe for animation, layering data for composition. Then it does the coordinate conversion if necessary, sets up all other components for the rendering, manages the animation rendering and handles the output (writes rendered images, logs, statistics, ...)

Interfacing with other software

For interfacing the volumetrics with other software, the "bridge" parameter components are used. Such component could receive calls from render engine and then for example pass calls to your custom cloud shaping function or to software of your choice, which can shape the cloud in any way you like.

(C) 2004..2013 Dmytry Lavrov.
Want to say something or ask some question? Contact: