Jump to content

Voxel: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Computer gaming: MOO3 was dog slow
Elaborated on comparison of polygons to voxels, since it shows an important difference in meaning. Re-worded and moved paragraph about uses, but it may still be too redundant to keep long-term.
Line 1: Line 1:
[[Image:voxels.svg|thumb|a series of voxels in a stack. A single voxel is highlighted]]
[[Image:voxels.svg|thumb|a series of voxels in a stack. A single voxel is highlighted]]


A '''voxel''' (a [[portmanteau]] of the words ''[[volumetric]]'' and ''[[pixel]]'') is a volume element, representing a value on a [[regular grid]] in [[3D computer graphics|three dimensional]] space. This is analogous to a [[pixel]], which represents [[2D computer graphics|2D]] image data. Voxels are frequently used in the visualization and analysis of [[medical imaging|medical]] and [[science|scientific]] data. Some [[volumetric display|volumetric displays]] use voxels to describe their resolution. For example, a display might be able to show 512×512×512 voxels.
A '''voxel''' (a [[portmanteau]] of the words ''[[volumetric]]'' and ''[[pixel]]'') is a volume element, representing a value on a [[regular grid]] in [[3D computer graphics|three dimensional]] space. This is analogous to a [[pixel]], which represents [[2D computer graphics|2D]] image data in a [[bitmap]] (which is sometimes referred to as a [[Raster graphics|pixmap]]). As with pixels in a bitmap, voxels themselves do not typically have their position (their [[coordinate]]s) 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, [[Point (geometry) |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 imaging|medical]] and [[science|scientific]] data. Some [[volumetric display|volumetric displays]] use voxels to describe their resolution. For example, a display might be able to show 512×512×512 voxels.
As with pixels, voxels themselves typically do not contain their position in space (their [[coordinate]]s) - but rather, it is inferred based on their position relative to other voxels (i.e., their position in the data structure that makes up a single volume image).


== Voxel data ==
== Voxel data ==
Line 18: Line 18:


Other values may be useful for immediate 3D [[rendering (computer graphics)|rendering]], such as a surface [[surface normal|normal vector]] and [[color]].
Other values may be useful for immediate 3D [[rendering (computer graphics)|rendering]], such as a surface [[surface normal|normal vector]] and [[color]].

There are different kind of voxels, one is to see a voxel as a way to represent volumetric objects as 3D bitmaps instead of vectors (by opposition, polygonal objects are made of vectors).
Another popular one is voxel terrain which is generally used in games and simulations.
Most commonly, 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 would not be possible in a heightmap due to only the top 'layer' of data being rendered, leaving the bottom layer (making up the inside of said caves, or the underside of arches or overhangs) not to be displayed.


== Uses ==
== Uses ==
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 are not be possible to represent 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 said caves, or the underside of arches or overhangs).



=== Visualization ===
=== Visualization ===

Revision as of 22:11, 28 July 2009

a series of voxels in a stack. A single voxel is highlighted

A voxel (a portmanteau of the words volumetric and pixel) is a volume element, representing a value on a regular grid in three dimensional space. This is analogous to a pixel, 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.

Voxel data

a data set of voxels for a macromolecule

A voxel represents the sub-volume box with constant scalar/vector value inside which is equal to scalar/vector value of the corresponding grid/pixel of the original discrete representation of the volumetric data. The boundaries of a voxel are exactly in the middle between neighboring grids. Voxel data sets have a limited resolution, as precise data is only available at the center of each cell. Under the assumption that the voxel data is sampling a suitably band-limited signal, accurate reconstructions of data points in between the sampled voxels can be attained by low-pass filtering the data set. Visually acceptable approximations to this low pass filter can be attained by polynomial interpolation such as tri-linear or tri-cubic 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 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.

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

Uses

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 are not be possible to represent 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 said caves, or the underside of arches or overhangs).

Visualization

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

  • Many NovaLogic games have used voxel-based rendering technology, including the Delta Force series and the 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.
  • The videogame Amok for the Sega Saturn makes use of voxels in its scenarios.
  • The computer game "Thunder Brigade" was based entirely on a voxel renderer, according to BlueMoon Interactive making videocards redundant and offering increasing detail instead of decreasing detail with proximity.
  • 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.
  • 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 uses 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.
  • Voxelstein 3D also uses voxels for destructible environments.[2]

Extensions

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. Although storage and manipulation of such data uses a lot of computer memory, this allows the study of spacetime systems.

See also

References

  1. ^ Novelline, Robert. Squire's Fundamentals of Radiology. Harvard University Press. 5th edition. 1997. ISBN 0674833392.
  2. ^ http://voxelstein3d.sourceforge.net/