Kącik graficzny: woksel.

article-thumbnail

Woksel (czyli wolumetryczny element obrazu) to trójwymiarowy piksel, który istnieje w odniesieniu do innych i który może mieć reprezentację zarówno w postaci sześcianów (czyli również w sposób jaki został zbudowany świat Minecrafta), jak i również zmienioną na wielokąty za pomocą algorytmu „Marching Cubes„.                                                                                             

Kącik graficzny:
WOKSEL

SPIS TREŚCI
Wstęp.
Czym jest woksel?
Historia wokseli.
Edytory graficzne.

Wstęp

Obecnie większość aplikacji trójwymiarowych, takich jak gry komputerowe, edytory graficzne czy wizualizacje architektoniczne korzystają z obiektów stworzonych za pomocą siatki punktów (w technice polygonowej). Istnieje jednak drugie podejście do grafiki komputerowej, jaką jest grafika złożona z trójkątnych pikseli, czyli wokseli. Ostatnimi laty przeżywała ona renesans dzięki grom takim jak Minecraft, które korzystały z kanciastej stylistyki, upraszczając ją. Jednak ta gra sama w sobie nie korzysta stricte z silnika wokselowego, jednak używa rozwiązań które mają pewne cechy wokseli, takie jak ścisłe ułożenie w siatce obiektów.

Czym jest woksel?

Woksel (czyli wolumetryczny element obrazu) to trójwymiarowy piksel, który istnieje w odniesieniu do innych i który może mieć reprezentację zarówno w postaci sześcianów (czyli również w sposób jaki został zbudowany świat Minecrafta), jak i również zmienioną na wielokąty za pomocą algorytmu „Marching Cubes„.

Model wykonany z wokseli i wyrenderowany za pomocą sześcianów oraz za pomocą algorytmu Marching Cubes w programie MagicaVoxel: https://ephtracy.github.io/

Zaletami tego podejścia do danych graficznych jest między innymi pełna możliwość edycji otoczenia (co możemy zauważyć na przykładzie aplikacji takich jak Ace of Spades* oraz Voxelstein), dokładne odwzorowanie map wysokości oraz brak pewnych problemów, które posiadają obiekty zbudowane na podstawie polygonów (obiekty zbudowane z polygonów są puste w środku). Wadami tego systemu graficznego jest specyficzny wygląd, problematyczna animacja (często wymagająca konwersji modeli złożonych z wokseli na obiekty polygonowe) oraz wysoka zasobożerność przy dużej szczegółowości.

*Obecnie jako Build And Shoot jest dostępne pod linkiem: http://buildandshoot.com/

Historia wokseli.

Jedną z pierwszych gier które używały wokseli do wyświetlania modeli bądź terenu nie był wcale Minecraft czy Infiniminer. Jednymi z pierwszymi gier, które używały modeli złożonych z trójwymiarowych pikseli były gry oparte na silniku Kena Silvermana, czyli Build Engine. To były takie tytuły jak Shadow Warrior (obecnie na rynku jest również jego re-make) oraz Blood.


Blood, Monolith Productions – 1997.

Build Engine jednak nie był stricte silnikiem wokselowym (był to silnik używający metody ray castingu). Używał jedynie modeli  opartych na wokselach (na powyższej grafice są to nagrobki) w formacie kvx i vox. Jednak kolejne aplikacje, które stworzył Ken Silverman, za pośrednictwem swoich kolejnych silników graficznych, były już w pełni złożone z wokseli. Mowa o tytułach takich jak Voxelstein, która pozwała na ograniczoną (przez twórcę gry), dokładną destrukcję otoczenia (woksel po wokselu) z ograniczonym silnikiem fizycznym, oraz o Ace of Spades, która wykorzystywała destrukcję otoczenia w mechanice rozgrywki wieloosobowej. Obie gry działały na silniku VoxLab.

Voxelstein, Ken Silverman – 2009: http://voxelstein3d.sourceforge.net/

Jednak woksele były również wykorzystywane również w produkcjach takich jak Hexplore, Command And Conquer 2: Red Alert lub częściowo także w Worms 3D (otoczenie gracza). Obecnie najlepszym przykładem gry korzystającej z założeń silników wokselowych jest gra Voxatron.

Edytory graficzne.

Obecnie możemy korzystać z kilku programów, które obsługują formaty grafiki wokselowej. Są to między innymi programy płatne takie jak Qubicle Constructor, jednak występuję również ich darmowe alternatywy takie jak SLAB6 oraz MagicaVoxel.

MagicaVoxel: https://ephtracy.github.io/

Podstawowe modelowanie obiektów przestrzennych z wokseli jest proste i przyjemne, jednakże warto zwrócić uwagę że mało silników zawiera algorytm pozwalający zobrazować modele wokselowe, przez co jest wymagana konwersja do formatu grafiki polygonowej i w konsekwencji optymalizację modelu trójwymiarowego. Poza tym, animacja wokseli jest dość problematyczna i może być realizowana albo za pomocą siatki następujących po sobie ułożeń (trójwymiarowe sprite), bądź przy przeniesieniu modelu z wokseli na wielokąty i odwzorowanie anatomii obiektu (stworzenie jego „kości”, tzw. rigging).