TheInfoList

In 3D computer graphics, a voxel represents a value on a regular grid in three-dimensional space. As with pixels in a 2D bitmap, voxels themselves do not typically have their position (i.e. coordinates) explicitly encoded with their values. Instead, rendering systems infer the position of a voxel 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, polygons are often explicitly represented by the coordinates of their vertices (as points). A direct consequence of this difference is that polygons can efficiently represent simple 3D structures with much empty or homogeneously filled space, while voxels excel at representing regularly sampled spaces that are non-homogeneously filled.

Voxels are frequently used in the visualization and analysis of medical and scientific data (e.g. GIS).[1] Some volumetric displays use voxels to describe their resolution. For example, a cubic volumetric display might be able to show 512×512×512 voxels.

The word voxel originated analogously to the word "pixel", with vo representing "volume" and el representing "element";[2] similar formations with el for "element" include the words "pixel" and "texel".[2]

One of the definitions is: "Voxel is an image of a three-dimensional space region limited by given sizes, which has its own nodal point coordinates in an accepted coordinate system, its own form, its own state parameter that indicates its belonging to some modeled object, and has properties of modeled region." This definition has the following advantage. If fixed voxel form is used within the whole model it is much easier to operate with voxel nodal points, i.e. three coordinates of this point. Yet, there is the simple form of record – indexes of the elements in the model set, i.e. integer coordinates. Model set elements in this case are state parameters, indicating voxel belonging to the modeled object or its separate parts, including their surfaces.[3]

## Rendering

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

Both ray-tracing and ray-casting, as well as rasterisation, can be applied to voxel data to obtain 2D raster graphics to depict on a monitor.

### Incremental error rasterisation

Another technique for voxels involves raster graphics where one simply raytraces every pixel of the display into the scene, tracking an error term to determine when to step. A typical implementation will raytrace each pixel of the display starting at the bottom of the screen using what is known as a y-buffer. When a voxel is reached that has a higher y value on the display it is added to the y-buffer overriding the previous value and connected with the previous y-value on the screen interpolating the color values. There is a major downside to voxel rasterization when transformation is applied which causes severe aliasing. The advantage was the ability to rasterise using cheap integer calculations on a CPU without hardware acceleration.[4]

Outcast, and other 1990s video games employed this graphics technique for effects such as reflection and bump-mapping and usually for terrain rendering. Outcast's graphics engine was mainly a combination of a ray casting (heightmap) engine, used to render the landscape, and a texture mapping polygon engine used to render objects. The "Engine Programming" section of the games credits in the manual has several subsections related to graphics, among them: "Landscape Engine", "Polygon Engine", "Water & Shadows Engine" and "Special effects Engine".[5] Although Outcast is often cited as a forerunner of voxel technology,[6] this is somewhat misleading. The game does not actually model three-dimensional volumes of voxels. Instead, it models the ground as a surface, which may be seen as being made up of voxels. The ground is decorated with objects that are modeled using texture-mapped polygons. When Outcast was developed, the term "voxel engine", when applied to computer games, commonly referred to a ray casting engine (for example the VoxelSpace engine). On the engine technology page of the game's website, the landscape engine is also referred to as the "Voxels engine".[7] The engine is purely software-based; it does not rely on hardware-acceleration via a 3D graphics card.[8]

John Carmack also experimented with Voxels for the Quake III engine.[9] One such problem cited by Carmack was the lack of graphics cards designed specifically for such rendering requiring them to be software rendered.

Comanche was also the first commercial flight simulation based on voxel technology. NovaLogic used the proprietary Voxel Space engine developed for the company by Kyle Freeman[10] (written entirely in Assembly language) to create open landscapes.[11] This rendering technique allowed for much more detailed and realistic terrain compared to simulations based on vector graphics at that time.[8]

## Data

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.

In computed tomography (abdominal CT pictured), voxels are generated by multiplying the field of view (FOV) by the scan range.

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.[12]: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

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).

## Data

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 repr

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.

CT scans, the values are Hounsfield units, giving the opacity of material to X-rays.[12]: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

A generalization of a voxel is the toxel, or temporal voxel.[23] 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.

## References

1. ^ Chmielewski, Sz., Tompalski, P. (2017). "Estimating outdoor advertising media visibility with voxel-based approach". Applied Geography, 87:1–13 doi:10.1016/j.apgeog.2017.07.007. Preprint download: "Archived copy". Archived from the original on 2017-10-02. Retrieved 2017-10-02.CS1 maint: archived copy as title (link)
2. ^ a b Foley, James D.; Andries van Dam; John F. Hughes; Steven K. Feiner (1990). "Spatial-partitioning representations; Surface detail". Computer Graphics: Principles and Practice. The Systems Programming Series. Addison-Wesley. ISBN 978-0-201-12110-0. These cells are often called voxels (volume elements), in analogy to pixels.
3. ^ Shchurova, Catherine I. (2015). A methodology to design a 3D graphic editor for micro-modeling of fiber-reinforced composite parts. Advances in Engineering Software Volume 90, December 2015, Pages 76-82. doi:10.1016/j.advengsoft.2015.07.001.
4. ^ "Voxels". tnlc.com. Archived from the original on 2014-04-17.
5. ^ Outcast manual. Infogrames. 1999. p. 34.
6. ^ Bertuch, Manfred (2009). "'Klötzchenwelten' [Worlds of little blocks] in c't Magazin issue 04/2009". C't : Magazin für Computertechnik. Hannover: Heise Zeitschriften Verlag GmbH & Co. KG: 183. Extensions

A generalization of a voxel is the toxel, or temporal voxel.[23] This is used in the case of a 4D dataset, for example, an image sequence that represents 3D space together with another dimension such

A generalization of a voxel is the toxel, or temporal voxel.[23] 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.