Voxel

From Wikipedia, the free encyclopedia
Jump to: navigation, search
A series of voxels in a stack with a single voxel shaded
3D rendering of a µCT scan of a leaf piece, resolution circa 40 µm/voxel when viewed at the full size

A voxel (volumetric pixel or Volumetric Picture Element) is a volume element, representing a value on a regular grid in three dimensional space. This is analogous to a texel , which represents 2D image data in a bitmap (which is sometimes referred to as a pixmap). As with pixels in a bitmap, voxels themselves do not typically have their position (their coordinates) explicitly encoded along with their values. Instead, the position of a voxel is inferred based upon its position relative to other voxels (i.e., its position in the data structure that makes up a single volumetric image). In contrast to pixels and voxels, points and polygons are often explicitly represented by the coordinates of their vertices. A direct consequence of this difference is that polygons are able to efficiently represent simple 3D structures with lots of empty or homogeneously filled space, while voxels are good at representing regularly sampled spaces that are non-homogeneously filled.

Voxels are frequently used in the visualization and analysis of medical and scientific data. Some volumetric displays use voxels to describe their resolution. For example, a display might be able to show 512×512×512 voxels.

Contents

Voxel data [edit]

A (smoothed) rendering of a data set of voxels for a macromolecule

A voxel represents a single sample, or data point, on a regularly spaced, three dimensional grid. This data point can consist of a single piece of data, such as an opacity, or multiple pieces of data, such as a color in addition to opacity. A voxel represents only a single point on this grid, not a volume; the space between each voxel is not represented in a voxel-based dataset. Depending on the type of data and the intended use for the dataset, this missing information may be reconstructed and/or approximated, e.g. via interpolation.

The value of a voxel may represent various properties. In CT scans, the values are Hounsfield units, giving the opacity of material to X-rays.[1]:29 Different types of value are acquired from MRI or ultrasound.

Voxels can contain multiple scalar values - essentially vector (tensor) data; in the case of ultrasound scans with B-mode and Doppler data, density, and volumetric flow rate are captured as separate channels of data relating to the same voxel positions.

While voxels provide the benefit of precision and depth of reality, they are typically large data sets and are unwieldy to manage given the bandwidth of common computers. However, through efficient compression and manipulation of large data files, interactive visualization can be enabled on consumer market computers.

Other values may be useful for immediate 3D rendering, such as a surface normal vector and color.

Uses [edit]

Common uses of voxels include volumetric imaging in medicine and representation of terrain in games and simulations. Voxel terrain is used instead of a heightmap because of its ability to represent overhangs, caves, arches, and other 3D terrain features. These concave features cannot be represented in a heightmap due to only the top 'layer' of data being represented, leaving everything below it filled (the volume that would otherwise be the inside of the caves, or the underside of arches or overhangs).

Visualization [edit]

A volume containing voxels can be visualized either by direct volume rendering or by the extraction of polygon iso-surfaces which follow the contours of given threshold values. The marching cubes algorithm is often used for iso-surface extraction, however other methods exist as well.

Computer gaming [edit]

  • Planet Explorers is a 3D building game that uses voxels for rendering equipment, buildings, and terrain. Using a voxel editor, players can actually create their own models for weapons and buildings, and terrain can be modified similar to other building games.
  • C4 Engine is a game engine that uses voxels for in game terrain and has a voxel editor for its built- in level editor. C4 Engine uses a LOD system with its voxel terrain that was developed by the game engine's creator. All games using the current or newer versions of the engine have the ability to use voxels.
  • Miner Wars 2081 uses its own Voxel Rage engine to let the user deform the terrain of asteroids allowing tunnels to be formed.
  • Minecraft has popularized the voxel aesthetics, becoming a global phenomenon. It technically uses a poxel engine (polygon-based voxels).
  • Many NovaLogic games have used voxel-based rendering technology, including the Delta Force, Armored Fist and Comanche series.
  • Westwood Studios' Command & Conquer: Tiberian Sun and Command & Conquer: Red Alert 2 use voxels to render most vehicles.
  • Westwood Studios' Blade Runner video game used voxels to render characters and artifacts.
  • Outcast, a game made by Belgian developer Appeal, sports outdoor landscapes that are rendered by a voxel engine.[2]
  • The videogame Amok for the Sega Saturn makes use of voxels in its scenarios.
  • The computer game Vangers uses voxels for its two-level terrain system.[3]
  • Master of Orion III uses voxel graphics to render space battles and solar systems. Battles displaying 1000 ships at a time were rendered slowly on computers without hardware graphic acceleration.
  • Sid Meier's Alpha Centauri uses voxel models to render units.
  • Build engine first-person shooter games Shadow Warrior and Blood use voxels instead of sprites as an option for many of the items pickups and scenery. Duke Nukem 3D has an optional voxel model pack created by fans, which contains the high resolution pack models converted to voxels.
  • Crysis, as well as the Cryengine 2 and 3, use a combination of heightmaps and voxels for its terrain system.
  • Worms 4: Mayhem uses a "poxel" (polygon and voxel) engine to simulate land deformation similar to the older 2D Worms games.
  • The multi-player role playing game Hexplore uses a voxel engine allowing the player to rotate the isometric rendered playfield.
  • The computer game Voxatron, produced by Lexaloffle, is composed and generated fully using voxels.[4][5]
  • Ace of Spades used Ken Silverman's Voxlap engine before being rewritten in a bespoke OpenGL engine.
  • 3D Dot Game Heroes uses voxels to present retro-looking graphics.
  • Unreal Engine 4 utilises real-time global illumination with full secondary lighting and specular reflections via voxel raycasting.[6]
  • Vox, an upcoming voxel based exploration/RPG game focusing on player generated content.
  • ScrumbleShip, a block-building MMO space simulator game in development, renders each in-game component and damage to those components using dozens to thousands of voxels.
  • Castle Story, a castle building Real Time Strategy game in development, has terrain consisting of smoothed voxels
  • Block Ops, a voxel based First Person Shooter game.

Voxel editors [edit]

While scientific volume visualization doesn't require modifying the actual voxel data, voxel editors can be used to create art (especially 3D pixel art) and models for voxel based games. Some editors are focused on a single approach to voxel editing while others mix various approaches. Some common approaches are:

  • Slice based – The volume is sliced in one or more axes and the user can edit each image individually using 2D raster editor tools. These generally store color information in voxels.
  • Sculpture – Similar to the vector counterpart but with no topology constraints. These usually store density information in voxels and lack color information.
  • Building blocks – The user can add and remove blocks just like a construction set toy.

Voxel editors for games [edit]

Many game developers use in-house editors that are not released to the public, but a few games have publicly available editors, some of them created by players.

General purpose voxel editors [edit]

There are a few voxel editors available that are not tied to specific games or engines. They can be used as alternatives or complements to traditional 3D vector modeling.

Extensions [edit]

A generalization of a voxel is the doxel, or dynamic voxel. This is used in the case of a 4D dataset, for example, an image sequence that represents 3D space together with another dimension such as time. In this way, an image could contain 100×100×100×100 doxels, which could be seen as a series of 100 frames of a 100×100×100 volume image (the equivalent for a 3D image would be showing a 2D cross section of the image in each frame). Although storage and manipulation of such data requires large amounts of memory, it allows the representation and analysis of spacetime systems.

See also [edit]

References [edit]

  1. ^ Novelline, Robert. Squire's Fundamentals of Radiology. Harvard University Press. 5th edition. 1997. ISBN 0-674-83339-2.
  2. ^ "OUTCAST - Technology: Paradise". outcast-thegame.com. Archived from the original on 2010-06-15. Retrieved 2009-12-20. 
  3. ^ "VANGERS". kdlab.com. Retrieved 2009-12-20. 
  4. ^ Ars Technica. "We <3 voxels: why Voxatron is an exciting indie shooter". 
  5. ^ "Lexaloffle BBS :: Voxatron". http://lexaloffle.com. Retrieved 2011-01-12. 
  6. ^ Andre Burnes (8 June 2012). "Epic Reveals Stunning Elemental Demo, & Tim Sweeney On Unreal Engine 4". NVIDIA. Retrieved 12 June 2012. 
  7. ^ "Project Perfect Mod". Ppmsite.com. 2007-04-04. Retrieved 2012-05-19. 
  8. ^ "Ken Silverman's Projects Page". Advsys.net. Retrieved 2012-05-19. 
  9. ^ "Ken Silverman's Voxlap Page". Advsys.net. Retrieved 2012-05-19. 
  10. ^ "CryEngine2 Sandbox2 Tutorial". Konakona.nbtxathcx.net. Retrieved 2012-05-19. 
  11. ^ "C4 Engine Features". Terathon.com. Retrieved 2012-05-19. 
  12. ^ "The Transvoxel Algorithm for Voxel Terrain". Terathon.com. Retrieved 2012-05-19. 

External links [edit]