Nothing Special   »   [go: up one dir, main page]

Voxel

Volumenelement, kubisches Pixel

Voxel (analog zu Pixel aus dem Englischen volume und el von element[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.

Eine Menge von gestapelten Voxeln.
Ein einziges ist hervorgehoben.

Beschreibung

Bearbeiten

Voxel bezeichnet zwei Dinge:

 
Bildliche Veranschaulichung eines Voxelgitters. Jedes Voxel enthält einen Farbwert, hier ersichtlich durch die unterschiedliche Graufärbung der Kugeln.

Räumlicher Datensatz

Bearbeiten

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

Bearbeiten

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

Bearbeiten

Ü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

Bearbeiten

Zu den voxelbasierten Computerspielen gehören:

Voxelbasiertes Rendering

Bearbeiten

Spiele, bei denen einzelne Objekte oder die gesamte Spielwelt als Voxel gerendert werden:

Voxelobjekte innerhalb isometrischer Welten

Bearbeiten

Spiele mit isometrischer Perspektive, bei denen Objekte aus Voxeln bestehen:

Voxel als Grafikstil

Bearbeiten

Spiele, die Voxel als Grafikstil aber Polygone zur Darstellung verwenden.

Heightmap Raycasting

Bearbeiten

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 so weit, 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 Reihe von Helikopterflugsimulationen, benutzt eine frühe Implementierung von Heightmap Raycasting
  • 1998: Delta Force, Ego-Shooter, nutzt ebenfalls die Voxel-Space-Engine
  • 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.
  • 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

Bearbeiten
  1. Voxel statt Pixel: Aktuelle Methoden der 3D-Darstellung. In: computerwoche.de. Computerwoche, 31. Mai 1991, abgerufen am 19. Januar 2017.
  2. Alan Watt (2002): 3D-Computergrafik, 3. Auflage, Addison-Wesley
  3. https://voxelstein3d.sourceforge.net/