Voxel
Voxel (zusammengesetzt aus dem englischen volume vox und el von elements[1]) bezeichnet in der Computergrafik einen Gitterpunkt („Bild“punkt, Datenelement) in einem dreidimensionalen Gitter. Dies entspricht einem Pixel in einem 2D-Bild, einer Rastergrafik. Wie bei Pixeln wird bei Voxeln üblicherweise die Position nicht explizit gespeichert, sondern implizit aus der Position zu anderen Voxeln hergeleitet. Im Gegensatz dazu werden bei Punkten oder Polygonen die Positionen der Eckkoordinaten gespeichert. Eine direkte Konsequenz dieses Unterschiedes ist, dass man mit Polygonen eine 3D-Struktur mit viel leerem oder homogen gefülltem Raum effizient darstellen kann. Voxel hingegen sind gut bei der Repräsentation eines äquidistant gesampelten Raums, der nicht homogen gefüllt ist.
Beschreibung
Voxel bezeichnet zwei Dinge:
Räumlicher Datensatz
Bei einem räumlichen Datensatz, der in diskretisierter Form in kartesischen Koordinaten vorliegt, bezeichnet Voxel den diskreten Wert an einer XYZ-Koordinate des Datensatzes. Bei dieser Definition handelt es sich um das dreidimensionale Äquivalent eines Pixels, somit hat ein Voxel keine bestimmte Form. Man spricht hier auch vom isotropen Voxel oder „Volumenpixel“. Häufig handelt es sich bei den in Voxelgittern enthaltenen Daten um Farbwerte, die mit den Mitteln der Volumengrafik zur Visualisierung bestimmt sind. Anwendungen findet diese Form der Datenrepräsentation vor allem in den bildgebenden Verfahren der Medizin, hier können die diskreten Werte als Dichte (Knochen, Fettgewebe) aufgefasst werden und entsprechend visualisiert werden.
Für die Darstellung dieser Voxel gibt es spezialisierte Algorithmen. Der Marching-Cubes-Algorithmus erlaubt das Umwandeln von Voxeldaten in Polygone. Dazu bedarf es allerdings eines Schwellenwerts, weil die Polygone üblicherweise nicht transparent sind. Eine andere Methode ist das direkte Rendering der Voxeldaten. Dies kann mit Raycasting geschehen, indem man einen Strahl durch das Voxelgitter wirft und die Farbwerte verrechnet. Abgebrochen wird, falls Opazität erreicht wird.[2]
Raytracing
In anderen Fällen bezeichnet ein Voxel eine quaderförmige Zelle innerhalb eines regelmäßig aufgeteilten Quaders oder unbegrenzten Raumes. Am häufigsten wird diese Bedeutung bei bestimmten Techniken zur Beschleunigung von Raytracing verwendet. Da sie sich allerdings nicht an die lokalen Gegebenheiten anpasst, ist diese Methode nicht sehr effizient. Besser ist es, eine Beschleunigungsstruktur wie den k-d-Baum zu verwenden.
Verwendung
Üblicherweise werden Voxel in der Medizin oder bei der Darstellung von Landschaften in Computerspielen und Simulation eingesetzt. Voxelterrain wird statt eines Höhenfelds (Heightmap) eingesetzt, weil es Überhänge, Höhlen, Bögen und andere 3D-Merkmale einer Landschaft darstellen kann. Diese konkaven Merkmale können mit einem Höhenfeld nicht repräsentiert werden, weil es nur die oberste Ebene der Landschaft speichert, und alles darunter als gefüllt angenommen wird.
Computerspiele
Zu den voxelbasierten Computerspielen gehören:
Voxelbasiertes Rendering
Spiele bei denen einzelne Objekte oder die gesamte Spielwelt als Voxel gerendert werden.
- 1997: Shadow Warrior und Blood nutzten eine spätere Version der Build-Engine, die Voxel-Objekte verwendet
- 2008: Voxelstein 3D verwendet Voxel um eine vollständig zerstörbare Umgebung zu ermöglichen. Das Spiel basiert auf Ken Silvermans Voxlap-Engine.[3]
- 2020: Teardown verwendet Voxel ähnlich wie Voxelstein 3D.
Voxelobjekte innerhalb isometrischer Welten
Spiele mit isometrischer Perspektive, bei denen Objekte aus Voxeln bestehen.
- 1999: Command & Conquer: Tiberian Sun und Command & Conquer: Alarmstufe Rot 2, Fahrzeuge und Gleiter werden mit Voxelgrafik dargestellt
- 1999: Sid Meier’s Alpha Centauri, Strategiespiel, nutzt Voxel-Modelle, um Einheiten zu zeichnen
Voxel als Grafikstil
Spiele, die Voxel als Grafikstil verwenden aber Polygone zur Darstellung verwenden.
- 2009: 3D Dot Game Heroes, voxelbasierte Welt
- 2009: Minecraft, voxelbasiertes Open-World Sandbox
- 2011: Minetest, ähnlich Minecraft
- 2011: Castle Story, ein Echtzeit-Strategiespiel
- 2012: Ace of Spades, ein Open-World-Ego-Shooter
- 2014: Planets³, Rollenspiel
- 2015: Trove MMORPG
- 2017: Castle Story
- 2019: Cube World
- 2020: The Sandbox, ähnlich Minecraft mit NFTs
Heightmap Raycasting
Um den hohen Gebrauch an Speicherplatz und CPU-Leistung von vollständigen Voxelwelten zu minimieren und somit eine dreidimensionale Darstellung von Umgebungen zu Laufzeit zu ermöglichen, vereinfachten Entwickler die auf Raytracing basierenden Rendering-Algorithmen soweit, dass lediglich ein Höhenfeld dargestellt wird. Durch den deutlichen reduzierbaren Rechenaufwand war somit eine Darstellung von dreidimensionalen Umgebungen in Echtzeit möglich und dabei lediglich Speicherplatz für zweidimensionale Karten mit Höhen- und Farbinformationen nötig. Dies entspricht zwar keinen Voxeln im eigentlichen Sinn, wurde aber von verschiedenen Herstellern trotzdem als Voxel-Grafik beworben. Die Darstellung von überhängenden Gebilden ist so nicht möglich. Objekte innerhalb der Spielwelt wurden deshalb mit Sprites oder Polygonen dargestellt.
- 1992: Comanche, eine Helikopterflugsimulation, benutzt eine frühe Implementierung von Heightmap Raycasting
- 1998: Delta Force, Ego-Shooter, nutzt die Engine VoxelSpace
- 1999: Outcast, ein Spiel des belgischen Entwicklers Appeal, das das Höhenfeld-Terrain mit einer sogenannten Voxel-Engine rendert. Objekte in der Spielwelt bestehen allerdings aus Polygonen.
Weitere
- 2007: Crysis, verwendet eine Kombination von Höhenfeld und Voxel für sein Terrain-System.
- 2013: Space Engineers verwendet eine Kombination aus auf Voxeln und Polygonen basierenden Strukturen
- 2014: Rising World, Open-World-Sandbox-Spiel
- 2015: Empyrion - Galactic Survival, ähnlich Space Engineers
- 2016: Dual Universe Sci-Fi-MMO. Ein Universum für alle Spieler gleichzeitig. Die Welten und von Spielern gebaute Konstrukte sind aus editierbaren Voxeln.
- 2005: C4 Engine, eine Spieleengine die Voxel zur Darstellung des Terrains verwendet. Zum Editieren gibt es einen Voxeleditor innerhalb des Leveleditors.
Einzelnachweise
- Voxel statt Pixel: Aktuelle Methoden der 3D-Darstellung. In: computerwoche.de. Computerwoche, 31. Mai 1991, abgerufen am 19. Januar 2017.
- Alan Watt (2002): 3D-Computergrafik, 3. Auflage, Addison-Wesley
- http://voxelstein3d.sourceforge.net/