Atomontage Engine™ is a thin game engine that provides basic data management functionality combined with a modern physics simulation and
a vector and voxel content rendering capability.
The engine also features volumetric content generation and processing functionality.
Atomontage Engine was originally designed as a physics simulator with support for volumetric collision structures.
Later a real-time voxel rendering functionality was added as well as a number of content generators and filters.
This unusual approach made Atomontage Engine a powerful volumetric tool rather than a pure voxel renderer with limited usage modes.
It is critical for a modern volumetric game engine to provide a compression method that shrinks a typical voxel to less than one bit.
Atomontage Engine features an elegant compression scheme that makes it possbile to store a large, multi-gigavoxel scene into a few hundred megabytes.
The engine also provides efficient means to alter volumetric content in real-time and make it ready for physics simulation and rendering instantly.
The actual implementation of the content generators supports distributed computing.
Multiple instances of the engine may run in parallel on one computer as well as on a number of networked computers.
Volumetric Scene Model
Atomontage engine supports both vector content (polygon meshes) with bounding volumes and hierarchies of collision primitives as well as complex volumetric content.
The volumetric scene data model is extremely flexible.
A virtually unlimited number of attributes can be assigned to any voxel.
For example a particular voxel can "carry" a 32bit color information with a normal and a specular component while its neighbour will carry none.
It is possible to store kilobytes of information "into" any of the voxels of the volumetric scene.
It is also possible to store a number of attributes related to a single property, for example color.
This way any voxel can carry a number of color records of different formats, bit depths and compressions.
A particular attribute can be shared among a group of voxels, too.
It is also possible to make a voxel be of a number of physical materials.
This is helpful in resolving complex physical situations.
Formats And Compression
The engine features an elegant content compression scheme.
There are up to three levels of compression of particular data while the data itself can be present in a number of formats or a number of compression formats.
Some of the data can also be specified procedurally.
The engine tries to manage the most optimal representation of the content by choosing the right formats, bit depths, LODs and compression formats of voxel attributes.
For example the actual implementation of the engine supports 4 color formats and compressions - a 32bit R11G11B10 format primarily used by generators and filters,
16bit helper R5G6B5 format and 4bit and 2bit compressed color formats.
The implementation of a final 1bit compressed color format is to be finished soon.
Currently most of the color information of the content is stored in 2bit compressed color format.
A small fraction of the color information is stored in 4bit compressed color format.
Usually less than 1 in 1000 color records are of the 32bit RGB color format.
The data model allows the engine to optimize formats and compressions on the fly.
It is useful to optimize local data after it has been altered by a physical process or by the user.
The fact that the geometry as well as other attributes of voxels are unique makes it easy to modify data instantly during the particular process and
to optimize the data later after necessary resources become available.
With multiple formats and compressions it is easy to control the quality and memory requirements of the dynamic content.
Generators And Filters
The engine provides a system of content generators and filters.
The generators are useful in preparing tons of testing and presentation data.
Content generators are easy to parametrize and can be used to generate final data for some computer games.
The generators also support supersampling.
Supersampling or other kind of multisampling is necessary to achieve antialiasing of properties in 3D.
It is also useful in avoiding banding artifacts and unwanted noise in the final data.
The engine provides a set of filters to handle data in both compilation time and real-time.
Some are useful in, for example, voxelization of polygon meshes.
The filters are necessary for removing invalid content, fixing defect data, optimizing content on the fly and other tasks.
Physics simulation with destructions is dependent on an optimized implementation of related filters.
Atomontage engine supports physics simulation of vector content as well as of the volumetric content.
The engine was designed so that the processes inside a game powered by Atomontage Engine would correspond to the physical processes in the real world.
Therefore the volumetric scene model was designed so that it would allow the physics simulator to alter all relevant data in real-time.
The physics simulator interprets the volumetric scene as being composed entirely of standalone small-scale objects.
This is an analogy to the real-world atoms.
The most important atom-like entities are voxels.
The engine also simulates bound and unbound particles useful for simulating fluid physics and interaction between objects and force fields and fluids.
A Quantum-Mechanical World
Quantum-mechanics in a computer game might sound crazy but here it is for real.
The methods of physics simulation in Atomontage Engine are based on two totally different approaches.
The first one is a standard in real-time computer games, it is the Newtonian physics.
The second one, the quantum-mechanical approach, is a natural solution to what makes the volumetric scene an analogy to the real world.
It's the simulation of atom-like entities.
The quantum-mechanics performed by the engine is basically a simple way to optimize processes that would otherwise be much too difficult to simulate in real-time.
It is an intelligent (non brute-force) solution to massive particle simulation and interaction between particles and the volumetric content.
The interaction events occur in a pseudostochastic manner depending on the properties of the interacting entities and their particular time-frames.
The entities manage their own time.
Therefore the simulation is a partly asynchronous process with a number of discrete events of interaction between the simulated entities.
Atomontage engine supports content erosion and destruction as a response to physics-simulated processes.
The very basics of the content alteration is addition and removal of voxels as weel as modification of voxel atrributes.
The actual implementation of the simulator allows alteration of data defined on different LODs, too.
This is useful in simulating large-scale destructions so that for example a large scale explosion can be simulated with a comparable use of resources as a small scale explosion.
The fact that the scene is defined as a volumetric model makes it possible to simulate shooting through objects.
The resulting simulation of all related objects can show a high level of apparent physical accuracy.
The engine is designed to support thermodynamics and many related features.
Heat transfer and physical responses related to thermodynamics will be demonstrated and explained soon.
Impulse And Sound Propagation
The engine is designed so that sound and vibrations and other volumetric mechanical energy related effects can be simulated easily.
The multiple-LOD scene model makes it possible to simulate these volumetric effects in real-time.
More information on this subject will be available soon.
Atomontage Engine features an efficient volumetric content renderer.
The goal of the renderer is to render the content on the highest possible level of quality given the limited resources that are available in a polygon-friendly hardware.
The renderer features a simple AI-based data management that analyzes and quantifies the importance of particular data to be rendered.
The rendering algorithm determines the LOD of the data based on the availability of a compiled version of the data and of its importance.
It also determines the cost of compilation and rendering of the data and determines the way the data has to be handled in respect to a number of following frames.
The data is compiled into a hardware-friendly form if it is useful in the context of the actual frame or the following frames and if necessary resources are currently available.
Software Aided Hardware Accelerated Rendering
The renderer is actually a combination of a 3D to 3D software renderer and a conventional hardware accelerated 3D to 2D renderer.
The software renderer is responsible for compiling the complex volumetric data into a simpler form whenever the rendering hardware requests data of an uncompiled part of the scene.
The hardware renderer does the rest.
Such an approach in rendering seems to be necessary bacause of the complexity and high level of dynamics of the volumetric content.
We call this hybrid 2-step approach a Software-Aided Hardware-Accelerated Rendering.
A Volumetric Approach
The actual implementation of the renderer features basic versions of a number of effects.
The most interesting ones are global dynamic volumetric fog, casting of soft shadows of dynamic objects and global cast shadows of clouds.
The volumetric approach in rendering makes it easy to apply expensive effects in cases when they affect only a small part of the rendered content.
A ray-cast version of the volumetric fog and lighting will be implemented soon.
Atomontage Engine supports distributed computing.
The actual implementation features compile-time distributed generation of content.
Multiple instances of the generators can be run on a multi-core CPU.
The volumetric content can be segmented easily so the amount of volumetric data generated in a given period of time would be multiplied by the number of cores or processors the system provides.
The engine can be run in parallel on a number of networked computers, too.
It is often necessary to use all the computational capacity the developer can provide to lower the amount of time necessary for the creation of the volumetric data.
Some of the presented scenes (see Gallery) can take up to a few dozen hours to generate with supersampling on a single CPU core.
Another problem is that the uncompressed version of a just-generated scene may take up to tens of gigabytes.
In such cases it is necessary that the content is optimized in generation-time or that it is generated on a number of computers and synchronized in a compressed form.
The engine is designed to run on multiple cores in real-time.
The real-time multi-core support will be implemented soon.
Interactive 3D Movies
We are currently evaluating the possibility to develop a 3D codec powered by Atomontage Engine.
Such codec would make it possible to handle a 3D scene data in a way similar to a common 2D video codec.
The viewer of a 3D movie would be allowed to control a virtual camera and focus on anything he would find interesting.
The amounts of streamed/processed data would not necesarilly significantly exceed the amounts of data common for the usual video streams.
Usually a 3D scene is comparable to a 2D scene except for the fact that the 3D scene contains 2D information in a form "projected" onto a 3D geometry.
The amounts od data are higher because of the larger total surface of the 3D objects rather than due to the fact that the content is present in a 3D form.
Atomontage Engine™ has passed a number of milestones since 2004.
These are a few of the unlimited number of features that are to be adressed in the coming months and years:
Fire, heat, phase transition: The support for simulation of phase transitions will be addressed just after the implementation of thermodynamics is finished.
Large-scale destruction: The engine should be well capable of handling large-scale destructions like a collapse of a multi-store building or even an explosion of a small nuke.
Liquids: A high-quality simulation and rendering of liquids is to be addressed later in 2011. A necessary prerequisite is a well-working observation-driven quantum-based simulator.
Electricity: The volumetric model seems to be friendly with physics-based effects like conduction and insulation of both electricity and heat. Heat is easy to simulate because of the limited speed it propagates. Simulating electricity will be tricky.
3D movie codec: 3D movies might soon become a very attractive branch of the entertainment industry. We hope to take part in the circus!
Chemistry: Future games of most genres will benefit a lot from realistic physics and chemistry. The potential of volumetric technologies might prove virtually unlimited in this field, too.
Extreme weather: A high-quality realistic simulation of extreme weather might become a standard in the coming years. Atomontage Engine must provide an over-state-of-the-art solution in this field.
MORE INFORMATION ON THE PRESENTED TOPIC WILL BE AVAILABLE SOON.
PLEASE COME BACK LATER.