Woksel
Część serii poświęconej |
grafice gier wideo |
---|
W grafice komputerowej 3D woksel reprezentuje wartość na regularnej siatce w przestrzeni trójwymiarowej . Podobnie jak w przypadku pikseli w bitmapie 2D , same woksele zwykle nie mają swojej pozycji (tj. współrzędnych ) jawnie zakodowanej wraz z ich wartościami. Zamiast tego renderujące określają pozycję woksela na podstawie jego pozycji względem innych wokseli (tj. jego pozycji w strukturze danych , która tworzy pojedynczy obraz wolumetryczny ).
W przeciwieństwie do pikseli i wokseli, wielokąty są często jawnie reprezentowane przez współrzędne ich wierzchołków (jako punkty ). Bezpośrednią konsekwencją tej różnicy jest to, że wielokąty mogą skutecznie reprezentować proste struktury 3D z dużo pustą lub jednorodnie wypełnioną przestrzenią, podczas gdy woksele przodują w reprezentowaniu regularnie próbkowanych przestrzeni, które są niejednorodnie wypełnione.
Woksele są często wykorzystywane do wizualizacji i analizy danych medycznych i naukowych (np. systemy informacji geograficznej (GIS)). Niektóre wyświetlacze wolumetryczne używają wokseli do opisania swojej rozdzielczości . Na przykład sześcienny wyświetlacz wolumetryczny może wyświetlać 512 × 512 × 512 (czyli około 134 milionów) wokseli.
Jedna z definicji to:
Woksel jest obrazem trójwymiarowego obszaru przestrzeni ograniczonego zadanymi rozmiarami, który posiada własne współrzędne punktu węzłowego w przyjętym układzie współrzędnych, własną postać , własny parametr stanu wskazujący na przynależność do jakiegoś modelowanego obiektu oraz posiada właściwości modelowany region.
Ta definicja ma następującą zaletę. Jeśli w całym modelu zastosowano ustaloną postać woksela, znacznie łatwiej jest operować punktami węzłowymi wokseli (tj. trzema współrzędnymi tego punktu). Istnieje jednak prosta forma zapisu: indeksy elementów w zbiorze modelu (tj. współrzędne całkowite). Elementami zestawu modelu są w tym przypadku parametry stanu, wskazujące woksel przynależny do modelowanego obiektu lub jego poszczególnych części, w tym ich powierzchni.
Etymologia
Słowo woksel pochodzi analogicznie do słowa „ piksel ”, gdzie vo reprezentuje „ objętość ” (zamiast „obrazu” piksela), a el reprezentuje „element”; podobna formacja z el dla „elementu” to słowo „ texel ”. Termin hiperwoksel jest uogólnieniem terminu woksel dla przestrzeni o wyższych wymiarach .
Wykonanie
Objętość opisaną jako woksele można wizualizować albo przez bezpośrednie renderowanie objętości , albo przez ekstrakcję wielokątnych izopowierzchni, które podążają za konturami zadanych wartości progowych. Algorytm maszerujących kostek jest często używany do ekstrakcji izopowierzchni, jednak istnieją również inne metody.
Zarówno śledzenie promieni , jak i rzutowanie promieni , a także rasteryzacja , mogą być stosowane do danych wokselowych w celu uzyskania grafiki rastrowej 2D do wyświetlenia na monitorze.
Przyrostowa rasteryzacja błędów
Inna technika dla wokseli obejmuje grafikę rastrową, w której po prostu śledzi się każdy piksel wyświetlacza w scenie, śledząc składnik błędu, aby określić, kiedy wykonać krok . Typowa implementacja będzie śledzić każdy piksel wyświetlacza, zaczynając od dołu ekranu, używając tak zwanego bufora y. Po osiągnięciu woksela, który ma wyższą wartość y na wyświetlaczu, jest dodawany do bufora y, zastępując poprzednią wartość i łączony z poprzednią wartością y na ekranie, interpolując wartości kolorów. Istnieje poważna wada rasteryzacji wokseli po zastosowaniu transformacji, która powoduje poważne aliasing . Zaletą była możliwość rasteryzacji przy użyciu tanich obliczeń na liczbach całkowitych na procesorze bez akceleracji sprzętowej .
Outcast i inne gry wideo z lat 90. wykorzystywały tę technikę graficzną do tworzenia efektów, takich jak odbicia i mapowanie wypukłości , a także zwykle do renderowania terenu . Silnik graficzny Outcast był głównie połączeniem silnika raycastingu ( highmap ), używanego do renderowania krajobrazu, oraz silnika poligonowego mapującego tekstury używanego do renderowania obiektów. Sekcja „Programowanie silnika” napisów gry w podręczniku zawiera kilka podsekcji związanych z grafiką, między innymi: „Silnik krajobrazu”, „Silnik wielokąta”, „Silnik wody i cieni” oraz „Silnik efektów specjalnych”. Chociaż Outcast jest często cytowany jako prekursor technologii wokseli, co jest nieco mylące. Gra w rzeczywistości nie modeluje trójwymiarowych objętości wokseli. Zamiast tego modeluje ziemię jako powierzchnię, którą można postrzegać jako złożoną z wokseli. Ziemia jest ozdobiona obiektami, które są modelowane za pomocą wielokątów odwzorowanych teksturą. Kiedy Outcast , termin „silnik wokselowy” stosowany w grach komputerowych był powszechnie określany jako silnik do odlewania promieni (na przykład VoxelSpace silnik). Na stronie technologii silnika w witrynie internetowej gry silnik krajobrazu jest również określany jako „silnik Voxels”. Silnik jest oparty wyłącznie oprogramowaniu ; nie polega na akceleracji sprzętowej za pośrednictwem karty graficznej 3D .
John Carmack eksperymentował także z wokselami w silniku Quake III . Jednym z takich problemów, o których wspomniał Carmack, był brak kart graficznych zaprojektowanych specjalnie do takiego renderowania, które wymagały renderowania programowego.
Comanche był także pierwszą komercyjną symulacją lotu opartą na technologii wokselowej. NovaLogic wykorzystał zastrzeżony silnik Voxel Space opracowany dla firmy przez Kyle'a Freemana (napisany w całości w języku asemblera ) do tworzenia otwartych krajobrazów. Ta technika renderowania pozwoliła na uzyskanie znacznie bardziej szczegółowego i realistycznego terenu w porównaniu z symulacjami opartymi na grafice wektorowej w tamtym czasie.
Galeria
Renderowanie 3D skanu µCT kawałka liścia, rozdzielczość około 40 µm/woksel przy oglądaniu w pełnym rozmiarze
(Wygładzone) renderowanie zestawu danych wokseli dla makrocząsteczki
Dane
Woksel reprezentuje pojedynczą próbkę lub punkt danych na regularnie rozmieszczonej trójwymiarowej siatce. Ten punkt danych może składać się z pojedynczego fragmentu danych, takiego jak krycie, lub wielu fragmentów danych, takich jak kolor oprócz krycia. Woksel reprezentuje tylko pojedynczy punkt na tej siatce, a nie objętość; przestrzeń między każdym wokselem nie jest reprezentowana w zbiorze danych opartym na wokselach. W zależności od rodzaju danych i zamierzonego wykorzystania zbioru danych, te brakujące informacje można zrekonstruować lub przybliżyć, np. poprzez interpolację.
Wartość woksela może reprezentować różne właściwości. W komputerowej wartościami są jednostki Hounsfielda , określające nieprzezroczystość materiału dla promieni rentgenowskich. Różne rodzaje wartości uzyskuje się z MRI lub USG .
Woksele mogą zawierać wiele wartości skalarnych , zasadniczo dane wektorowe (tensorowe); w przypadku ultrasonograficznych z danymi w trybie B i Dopplera , gęstość i objętościowe natężenie przepływu są rejestrowane jako oddzielne kanały danych odnoszące się do tych samych pozycji wokseli.
Podczas gdy woksele zapewniają korzyści w postaci precyzji i głębi rzeczywistości, są to zazwyczaj duże zbiory danych i są nieporęczne w zarządzaniu, biorąc pod uwagę przepustowość typowych komputerów. Jednak dzięki wydajnej kompresji i manipulacji dużymi plikami danych można włączyć interaktywną wizualizację na komputerach konsumenckich.
Inne wartości mogą być przydatne do natychmiastowego renderowania 3D , takie jak wektor normalny powierzchni i kolor .
Trwają badania nad technologiami rozszerzania wokseli na 4 i 5 wymiary danych.
Używa
Typowe zastosowania wokseli obejmują obrazowanie wolumetryczne w medycynie oraz reprezentację terenu w grach i symulacjach. Teren woksela jest używany zamiast mapy wysokości ze względu na jego zdolność do przedstawiania nawisów, jaskiń, łuków i innych elementów terenu 3D. Tych wklęsłych cech nie można przedstawić na mapie wysokości, ponieważ reprezentowana jest tylko górna „warstwa” danych, pozostawiając wszystko poniżej wypełnione (objętość, która w innym przypadku byłaby wnętrzem jaskiń lub spodem łuków lub nawisów).
Oprogramowanie do grafiki komputerowej 3D
- 3D-Coat oferuje tryb rzeźbienia wokseli.
- Blender (2.81+) pozwala na stworzenie efektu podobnego do woksela przez Quad Remesh (z algorytmem Quadriflow) lub Voxel Remesh (z OpenVDB ).
- Cinema 4D (R20+) pozwala na stworzenie efektu podobnego do woksela (z OpenVDB ).
- ZBrush wykorzystuje podobną do wokseli technologię Unified Skin dla DynaMesh i innych narzędzi. Tworzy inteligentny piksel, który nazywa się „pixol”.
- Mega Voxels to darmowy edytor wokseli opracowany przez Go Real Games, LLC do projektowania modeli 3D przy użyciu wokseli.
- Voxel Builder , internetowy plac zabaw typu open source oparty na Babylon.js .
Gry komputerowe
- 3D Dot Game Heroes wykorzystuje woksele do prezentacji grafiki w stylu retro.
- 7 Days to Die to oparta na wokselach gra typu survival horror z otwartym światem, opracowana przez The Fun Pimps Entertainment.
- Ace of Spades wykorzystywał silnik Voxlap Kena Silvermana , zanim został przepisany w specjalnie zaprojektowanym silniku OpenGL .
- Amok używa wokseli w swoich środowiskach.
- Armored Fist 3 to gra komputerowa stworzona przez Novalogic , która wykorzystywała technologię renderowania opartą na wokselach.
- Blade Runner to gra wideo, która używała wokseli do renderowania postaci i artefaktów.
- Castle Story , będąca w fazie rozwoju gra strategiczna czasu rzeczywistego budująca zamek, ma teren składający się z wygładzonych wokseli.
- Cloudpunk , cyberpunkowa gra przygodowa, jest prawie w całości oparta na wokselach.
- Seria Comanche , seria gier komputerowych stworzonych przez NovaLogic , które wykorzystywały rasteryzację wokseli Voxel Space do renderowania terenu.
- Command & Conquer: Tiberian Sun , Command & Conquer: Red Alert 2 i Command & Conquer: Yuri's Revenge to gry komputerowe stworzone przez Westwood Studios , które wykorzystywały woksele do renderowania większości pojazdów.
- Crysis , podobnie jak Cryengine 2 i Cryengine 3 , używają kombinacji map wysokości i wokseli w swoich systemach terenu.
- Cube World , fabularna gra akcji , zawiera generowane proceduralnie krajobrazy wokselowe.
- Delta Force to gra komputerowa stworzona przez Novalogic , która wykorzystywała wewnętrzny silnik renderujący Voxel Space .
- Dual Universe to gra MMORPG z pojedynczym odłamkiem wszechświata, która wykorzystuje woksele do budowy statków kosmicznych, cywilizacji i stacji kosmicznych.
- EverQuest Next i EverQuest Next: Landmark , anulowane gry MMORPG firmy Sony Online Entertainment , szeroko wykorzystują woksele do tworzenia świata, a także treści generowanych przez graczy
- Hexplore , wieloosobowa gra fabularna, wykorzystuje silnik wokseli, który pozwala graczowi obracać renderowane izometrycznie pole gry.
- Hytale to gra RPG Sandbox oparta na wokselach, opracowana przez Hypixel Studios i finansowana przez Riot Games , data premiery jest ustalona najwcześniej na 2023 rok.
- Master of Orion III wykorzystuje grafikę wokselową do renderowania bitew kosmicznych i układów słonecznych. Bitwy wyświetlające jednocześnie 1000 okrętów były renderowane powoli na komputerach bez sprzętowej akceleracji grafiki.
- Medieval Engineers to druga oparta na wokselach gra inżynierska autorstwa Keen Software House, inspirowana średniowieczną technologią.
- Minecraft to gra wideo typu sandbox , która wykorzystuje woksele do przechowywania danych o terenie , ale nie wykorzystuje technik renderowania wokseli . Zamiast tego używa renderowania wielokątów do wyświetlania każdego woksela jako sześciennego „bloku”.
- Miner Wars 2081 to gra z otwartym światem 6DOF stworzona przez Keen Software House , która wykorzystuje własny silnik renderujący woksele VRage, aby umożliwić użytkownikowi deformowanie terenu asteroid, umożliwiając tworzenie tuneli.
- No Man's Sky to gra o eksploracji kosmosu, składająca się z proceduralnie generowanych układów gwiezdnych zawierających możliwe do eksploracji planety, księżyce i asteroidy złożone z wokseli. Silnik wokselowy pozwala zarówno na niszczenie, jak i tworzenie terenu.
- Outcast , to komputerowa gra akcji z perspektywy trzeciej osoby, stworzona przez byłego belgijskiego twórcę gier wideo, Appeal, z krajobrazami renderowanymi przez silnik wokselowy.
- Phase Zero to niewydana gra wideo z gatunku strzelanek akcji z 2002 roku dla Atari Jaguar , z krajobrazami odtworzonymi przez silnik Voxel Space .
- Planet Coaster to symulacja budowy i zarządzania z 2016 roku opracowana i opublikowana przez Frontier Developments , która wykorzystuje edytor terenu oparty na wokselach.
- Resogun to oparta na wokselach strzelanka typu side-scrolling z 2013 roku, opracowana przez fińskiego programistę Housemarque .
- Roblox używa wokseli do terenu.
- Robocraft , samochodowa gra walki, w której gracze budują maszyny bojowe z wokseli i gotowych komponentów
- ScrumbleShip , będący w fazie rozwoju symulator kosmiczny MMO składający się z bloków (od 2017 r.), Renderuje każdy komponent w grze i uszkodzenia tych komponentów przy użyciu dziesiątek do tysięcy wokseli.
- Shadow Warrior i Blood używają silnika Build do renderowania wokseli w strzelankach z perspektywy pierwszej osoby zamiast sprite'ów jako opcji dla wielu przedmiotów i scenerii. Duke Nukem 3D ma paczkę stworzoną przez fanów w podobnym stylu.
- Shattered Steel przedstawiał deformujące się krajobrazy przy użyciu technologii wokselowej.
- Alpha Centauri Sida Meiera wykorzystuje modele wokseli do renderowania jednostek.
- SkySaga: Infinite Isles to sandboksowa gra MMORPG oparta na wokselach, opracowywana przez Radiant Worlds i publikowana przez Smilegate .
- Space Engineers to oparta na wokselach gra typu sandbox osadzona w kosmosie, opracowana i opublikowana przez Keen Software House
- Starbase , internetowa gra fabularna dla wielu graczy oparta na wokselach , osadzona w kosmosie, opracowywana i publikowana przez Frozenbyte .
- StarMade , osadzona w kosmosie gra typu sandbox oparta na wokselach, opracowana i opublikowana przez Robina „Schema” Promesbergera.
- Subnautica , oparta na wokselach gra survivalowa osadzona na planecie 4546B, opracowana i opublikowana przez Unknown Worlds Entertainment.
- Teardown , gra oparta na wokselach z całkowicie zniszczalnymi środowiskami, opracowana i wydana przez studio Tuxedo Labs
- Piaskownica
- Trove to oparta na wokselach gra MMORPG z elementami budowlanymi, opracowana i opublikowana przez Trion Worlds .
- Vangers to gra komputerowa wykorzystująca woksele w swoim dwupoziomowym systemie terenu.
- Vox , wydany w 2012 roku, to gra eksploracyjna / RPG oparta na wokselach, skupiająca się na treściach generowanych przez graczy.
- Voxatron , gra komputerowa wyprodukowana przez Lexaloffle, jest skomponowana i wygenerowana w całości przy użyciu wokseli.
- Werewolf to gra komputerowa stworzona przez Novalogic , która wykorzystywała technologię renderowania opartą na wokselach. Pierwotnie był dołączony i dostarczany z Comanche 2 , chociaż były to dwie oddzielne gry.
- Worms 4: Mayhem wykorzystuje silnik oparty na wokselach do symulacji deformacji terenu, podobnie jak starsze gry 2D Worms.
- Minetest używa ich do renderowania węzłów
Redaktorzy
Podczas gdy naukowa wizualizacja objętości nie wymaga modyfikowania rzeczywistych danych wokseli, edytory wokseli mogą być używane do tworzenia grafiki (zwłaszcza grafiki pikselowej 3D ) i modeli do gier opartych na wokselach. Niektórzy redaktorzy koncentrują się na jednym podejściu do edycji wokseli, podczas gdy inni mieszają różne podejścia. Niektóre typowe podejścia to:
- Oparte na plasterkach: objętość jest dzielona na plasterki w jednej lub kilku osiach, a użytkownik może edytować każdy obraz indywidualnie za pomocą narzędzi edytora rastrowego 2D . Zwykle przechowują one informacje o kolorach w wokselach.
- Rzeźba: podobna do odpowiednika wektorowego , ale bez ograniczeń topologicznych. Zazwyczaj przechowują one informacje o gęstości w wokselach i nie zawierają informacji o kolorze.
- Klocki konstrukcyjne: Użytkownik może dodawać i usuwać klocki, tak jak zabawki z zestawu konstrukcyjnego .
Dostępnych jest kilka edytorów wokseli, które nie są powiązane z konkretnymi grami lub silnikami. Mogą być stosowane jako alternatywa lub uzupełnienie tradycyjnego modelowania wektorów 3D.
Rozszerzenia
Uogólnieniem woksela jest toxel lub woksel czasowy. Jest to używane w przypadku 4D , na przykład sekwencji obrazów reprezentujących przestrzeń 3D wraz z innym wymiarem, takim jak czas. W ten sposób obraz mógłby zawierać 100×100×100×100 tokseli, co można by postrzegać jako serię 100 klatek obrazu o objętości 100×100×100 (odpowiednikiem obrazu 3D byłoby pokazanie przekroju 2D obrazu w każdej klatce). Chociaż przechowywanie i manipulowanie takimi danymi wymaga dużej ilości pamięci, umożliwia reprezentację i analizę czasoprzestrzennych .
Zobacz też
- Maxel – element materialny
- Piksel – element obrazu
- Podział płaszczyzny
- Resel – element rozdzielczości
- Rzadkie oktree woksela
- Texel – element tekstury
- Tixel - element dotykowy
- Tomografia
- Siatka objętościowa
- Renderowanie objętościowe