Voxel
A voxel represents a value on a regular grid in three-dimensional space. 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.
The word voxel is based on a contraction of vox ("volume") and el (for "element");[1] similar formations with el for "element" include the words pixel and texel.[1]
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.
Another technique for voxels involves Raster graphics where you simply raytrace every pixel of the display into the scene. 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.[2]
Outcast and other 1990's 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".[3] Although Outcast is often cited as a forerunner of voxel technology,[4] 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".[5] The engine is purely software-based; it does not rely on hardware-acceleration via a 3D graphics card.[6]
John Carmack also experimented with Voxels for the Quake III engine.[7] One such problem cited by Carmack is the lack of graphics cards designed specifically for such rendering requiring them to be software rendered, which still remains an issue with the technology to this day.
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 [8](written entirely in Assembly language) to create open landscapes.[9] This rendering technique allowed for much more detailed and realistic terrain compared to simulations based on vector graphics at that time.[6]
Gallery
-
3D rendering of a µCT scan of a leaf piece, resolution circa 40 µm/voxel when viewed at the full size
-
A (smoothed) rendering of a data set of voxels for a macromolecule
Voxel 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.
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.[10]: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).
Computer games
- 3D Dot Game Heroes uses voxels to present retro-looking graphics.
- 7 Days to Die is a voxel based open world survival horror game developed by The Fun Pimps Entertainment.
- Ace of Spades used Ken Silverman's Voxlap engine before being rewritten in a bespoke OpenGL engine.
- Amok is a video game for the Sega Saturn makes use of voxels in its scenarios.
- Armored Fist 3 is a computer game made by Novalogic that used voxel-based rendering technology.
- Blade Runner is a video game that used voxels to render characters and artifacts.
- Block Ops, a voxel based First Person Shooter game.
- Castle Story, a castle building Real Time Strategy game in development, has terrain consisting of smoothed voxels
- Comanche series, a series of computer games made by NovaLogic that used the Voxel Space voxel rasterization for terrain rendering.[11]
- Command & Conquer: Tiberian Sun, Command & Conquer: Red Alert 2 and Command & Conquer: Yuri's Revenge are computer games made by Westwood Studios that used voxels to render most vehicles.
- Crysis, as well as Cryengine 2 and Cryengine 3, use a combination of heightmaps and voxels for its terrain system.
- Cube World, an Indie voxel based game with RPG elements.
- Cubiverse a webGL sandbox game crafter, uses voxels for the terrain.
- Delta Force is a computer game made by Novalogic that used the proprietary Voxel Space rendering engine.
- EverQuest Next and EverQuest Next: Landmark, upcoming MMORPGs by Sony Online Entertainment, make extensive use of voxels for world creation as well as player generated content
- Hexplore, a multi-player role playing game, uses a voxel engine allowing the player to rotate the isometric rendered playfield.
- 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.
- Medieval Engineers is the second voxel-based engineering game by Keen Software House inspired from medieval technology.
- Minecraft is a sandbox video game that uses voxels to store terrain data,[12] but does not use voxel rendering techniques. Instead it uses polygon rendering to display each voxel as a cubic "block." Minecraft also contains "entities," such as the player and creatures, that exist outside of the voxel data structure.[13]
- Miner Wars 2081 is a 6DOF open world game made by Keen Software House that uses its own VRage voxel rendering engine to let the user deform the terrain of asteroids allowing tunnels to be formed.
- Oort Online[14] is a voxel-based multi-player sandbox game with building elements in connected voxel-worlds that is being developed and published by Wonderstruck Games.[15]
- Outcast, is a third-person action computer game made by former Belgian video game developer Appeal,[16] with landscapes rendered by a voxel engine.[17]
- Planet Coaster is a 2016 construction and management simulation developed and published by Frontier Developments which uses a voxel-based terrain editor.
- Resogun is a 2013 voxel-based side-scrolling shoot 'em up video game developed by Finnish developer Housemarque.
- Roblox also uses voxels for terrain.
- 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.
- Shadow Warrior and Blood use Build engine for first-person shooter game voxel rendering, instead of sprites, as an option for many of the items pickups and scenery. Duke Nukem 3D has an fan-created pack in a similar style.
- Shattered Steel featured deforming landscapes using voxel technology.
- Sid Meier's Alpha Centauri uses voxel models to render units.
- Space Engineers is a voxel-based sandbox game set in space, developed and published by Keen Software House
- StarMade, a voxel-based sandbox game set in space, developed and published by Robin "Schema" Promesberger.
- Trove is a voxel-based MMORPG with building elements, being developed and published by Trion Worlds.[18]
- Vangers is a computer game uses voxels for its two-level terrain system.[19]
- Vox, released in 2012, is a voxel based exploration/RPG game focused on player generated content.
- Voxatron, a computer game produced by Lexaloffle, is composed and generated fully using voxels.[20][21]
- Werewolf is a computer game made by Novalogic that used voxel-based rendering technology. It was originally bundled and shipped with the Comanche 2 game although they were two separate games.
- Worms 4: Mayhem uses a voxel-based engine to simulate land deformation similar to the older 2D Worms games.
Voxel editors
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
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.
- Slice based fan-made Voxel Section Editor III for Command & Conquer: Tiberian Sun and Command & Conquer: Red Alert 2.[22]
- SLAB6 and VoxEd are sculpture based voxel editors used by Voxlap engine games,[23][24] including Voxelstein 3D and Ace of Spades.
- The official Sandbox 2 editor for CryEngine 2 games (including Crysis) has support for sculpting voxel based terrain.[25]
- The C4 Engine and editor support multiple detail level (LOD) voxel terrain by implementing the patent-free Transvoxel algorithm.[26][27]
- Qubicle [28] is a simple, professional voxel editor. It has export support to the Unity game engine, as well as many of the more common 3d modeling formats.
- Atomontage Engine is a professional voxel engine also including physics engine.
General purpose voxel editors
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
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
- Pixel – picture element
- Resel – resolution element
- Sparse voxel octree
- Texel – texture element
- Maxel - material element
- Tixel
- Volume rendering
References
- 1 2 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 0-201-12110-7.
These cells are often called voxels (volume elements), in analogy to pixels.
- ↑ http://www.tnlc.com/eep/voxels.html
- ↑ Outcast manual. Infogrames. 1999. p. 34.
- ↑ Bertuch, Manfred (2009). "'Klötzchenwelten' [Worlds of little blocks] in c't Magazin issue 04/2009". Hannover: Heise Zeitschriften Verlag GmbH & Co. KG: 183. ISSN 0724-8679.
- ↑ Engine Technology
- 1 2 "Voxel terrain engine", introduction. In a coder's mind, 2005.
- ↑ http://www.tomshardware.com/reviews/voxel-ray-casting,2423-2.html
- ↑ http://patents.justia.com/inventor/kyle-g-freeman
- ↑ http://www.flightsim.com/vbfs/content.php?2994-NovaLogic-Awarded-Patent-For-Voxel-Space-Graphics-Engine
- ↑ Novelline, Robert. Squire's Fundamentals of Radiology. Harvard University Press. 5th edition. 1997. ISBN 0-674-83339-2.
- ↑ http://projectorgames.net/blog/?p=168
- ↑ "Chunk format: Block format". Minecraft Wiki. Retrieved 2016-02-07.
- ↑ "Chunk format: Entity format". Minecraft Wiki. Retrieved 2016-02-07.
- ↑ http://oortonline.com/
- ↑ http://wonderstruckgames.com/
- ↑ http://www.mobygames.com/company/appeal-sa
- ↑ "OUTCAST - Technology: Paradise". outcast-thegame.com. Archived from the original on 2010-06-15. Retrieved 2009-12-20.
- ↑ http://trovegame.com
- ↑ "VANGERS". kdlab.com. Retrieved 2009-12-20.
- ↑ Ars Technica. "We <3 voxels: why Voxatron is an exciting indie shooter".
- ↑ "Lexaloffle BBS :: Voxatron". lexaloffle.com. Retrieved 2011-01-12.
- ↑ "Project Perfect Mod". Ppmsite.com. 2007-04-04. Retrieved 2012-05-19.
- ↑ "Ken Silverman's Projects Page". Advsys.net. Retrieved 2012-05-19.
- ↑ "Ken Silverman's Voxlap Page". Advsys.net. Retrieved 2012-05-19.
- ↑ "CryEngine2 Sandbox2 Tutorial". Konakona.nbtxathcx.net. Retrieved 2012-05-19.
- ↑ "C4 Engine Features". Terathon.com. Retrieved 2012-05-19.
- ↑ "The Transvoxel Algorithm for Voxel Terrain". Terathon.com. Retrieved 2012-05-19.
- ↑ "Qubicle's Main Page". minddesk.com. Retrieved 2014-07-06.
External links
|