Voxel (köznyelvben voxel , angolul Voxel - a volumetric ( angolul vo lumetric ) és pixel ( angol pixel) szavakból képzett ) - egy háromdimenziós kép eleme , amely háromdimenziós térben egy raszterelem értékét tartalmazza . A voxelek a kétdimenziós pixelek analógjai a háromdimenziós térben. A Voxel modelleket gyakran használják orvosi és tudományos információk megjelenítésére és elemzésére.
A számítógépes grafikában a voxeleket a sokszögek alternatívájaként használják . A kezdők néha tévesen úgy vélik, hogy a voxelek a fizikai pixelek (megjelenítési mátrixelemek) helyettesítői. Valójában a voxel alatt általában hat téglalap alakú sokszög halmazának megfelelő virtuális elemet értünk. A virtuális világban mindent – virtuális pixeleket, sokszögeket és voxeleket – a fizikai képernyő képpontjaira kell vetíteni:
Vagyis a sokszögekkel és pixelekkel ellentétben a voxelek valódi 3D-s tégla, nem pedig 2D-s sík, amely az üres 3D-s teret „körbeveszi”.
A virtuális pixelekben történő modellezés szinte soha nem található meg a 3D grafika gyártása során. Manapság a 3D modellezésben az objektumokat gyakran csak kétféle módon hozzák létre:
Tekintettel arra, hogy a sokszögmodellek természetüknél fogva üresek, nagyon nehéz modellezni viselkedésüket a 3D világban. Például, ha egy programozónak a víz viselkedését kell szimulálnia egy 3D-s kalózjátékban, akkor egy problémával kell szembenéznie: hogyan lehet hullámokat szimulálni a víz felszínén? Hogyan lehet vízfröccsenést szimulálni, mert a játékban a víz csak egy kék háromszögekből szőtt szőnyeg, e sík alatt nincs semmi, de közben meg kell mutatni a habzó és fröcskölő vizet. Vagyis meg kell mutatni a víz részeinek elválasztását egymástól hab és fröccsenés formájában. Új objektumokat kell bevinni a számítógép memóriájába, és ezeknek a további objektumoknak a kezelése nem a tervezőtől, hanem a programozótól igényel nagy szakértelmet.
Ha a vizet voxeleken keresztül modellezik, akkor minden sokkal egyszerűbbé válik, mert az óceán felszínétől a fenékig minden víz „atomokból” áll, amelyek a programozó szemszögéből természetes módon könnyen „leválaszthatók” egymástól. .
A pixelekhez hasonlóan maguk a voxelek sem tartalmaznak információt a térbeli koordinátáikról . Koordinátáikat egy háromdimenziós mátrixban elfoglalt helyzetükből számítják ki - egy olyan szerkezetben, amely egy háromdimenziós objektumot vagy paraméterértékek mezőjét modellezi háromdimenziós térben.
Így különböznek a voxelek a vektorgrafikus objektumoktól , amelyek referenciapontjainak (csúcsaik) koordinátái és egyéb paramétereik ismertek.
A Voxel modellek bizonyos felbontással rendelkeznek . Minden voxelnek meghatározott jelentése van, például egy szín.
A voxelmodell tárolásához egy X×Y×Z méretű tömb használható. A tömörítetlen voxelmodellek (a vektoros modellekhez képest) sokkal több memóriát fogyasztanak a feldolgozáshoz. Például egy 256×256×256 voxel méretű tömörítetlen modell 32 MB memóriát foglal el (256*256*256=16777216 voxel és voxelenként legalább 2 bájt még 256 szürkeárnyalatban is, mivel 256 színátmenetet kell hozzáadni átlátszóságuk, összesen 16777216*2=33554432 bájt=33554432/1024=32768 KB = 32768/1024=32 MB ), míg egy vektoros modellhez több tízszer vagy akár százszor kevesebb is lehet.
Az egyik legújabb ígéretes technológia, amely lehetővé teszi a voxelobjektumok hatékony részletezését, a ritka voxeloktre ( ritka voxeloktre ). Előnyei: jelentős memóriamegtakarítás, természetes részletgazdagság (a mipmap térképekhez hasonlóan ) és nagy feldolgozási sebesség a raycastingban .
A fa első csomópontja, a gyökér, egy kocka, amely a teljes objektumot tartalmazza. Minden csomópontnak vagy 8 gyermekkockája van, vagy nincs gyermeke. Az összes felosztás eredményeként a voxelek szabályos háromdimenziós rácsát kapjuk.
A doxelek olyan voxelek, amelyek idővel változnak. Ahogyan egy képsorozat alkot animációt , úgy idővel voxelmodellek sorozata is 3D-s animációt alkothat .
Tekintettel arra, hogy egy háromdimenziós mátrix a térfogati tér minden egyes eleméhez tárolja a voxel értékét, a voxelmodellek kiválóan alkalmasak folytonos környezetek és értékmezők modellezésére (például a szén-monoxid eloszlása a város feletti légkör), míg a vektoros modellek alkalmasabbak diszkrét objektumok modellezésére.
Számos orvosi eszköz, mint például a számítógépes tomográfiás szkennerek , a háromdimenziós ultrahang , az MRI , rétegzett információt szolgáltat a szkennelés során. A szkennelés befejezése után egy voxel modell készül. A voxelértékek ebben az esetben az eszköz adatait tükrözik. A számítógépes tomográfiában például ez a test átlátszósága a Hounsfield-skálán , vagyis a röntgensugárzás átlátszósága.
Voxelmodellek esetén (például egy MRI -szkennerből származó orvosi adatok ) a modell bármely szakaszának kimenete egyszerűen implementálva van. Ez lehetővé teszi az adatok bármely szeletének vizsgálatát.
Számos renderelő algoritmus létezik a voxelmodellekhez . Az egyik leggyorsabb módszer az úgynevezett "hógolyó dobás" (eng. splatting ). A voxeleket a nézőfelületre „dobják” a tőle való távolság sorrendjében, a legtávolabbitól a legközelebbiig. Az így létrejövő "hógolyónyomok" (splats) korongokként jelennek meg, amelyek színe és átlátszósága az átmérőtől függően a normál (Gauss-eloszlásnak megfelelően) változik . A különböző megvalósítások különböző elemeket vagy különböző allokációkat használhatnak.
A képminőség javítása érdekében bonyolultabb renderelő algoritmusokat használnak: a Marching cubes algoritmust és másokat. A Marching Cubes algoritmus egy izofelületet épít fel a voxeladatok alapján. Az algoritmus szokásos megvalósítása 8 szomszédos voxel értékét használja fel egy sokszög rajzolására a koordinátáik alapján kialakított kocka belsejében. Mivel csak 256 lehetséges kombináció létezik, ezeket előre elkészítheti, és tipikus "téglákat" használ (már a képernyő koordinátáiban) nagy mennyiségű adat jó minőségben történő megjelenítéséhez.
Vannak más algoritmusok is, például a maximális intenzitású vetítés , amely jól megjeleníti a háromdimenziós objektum legfényesebb részeinek helyzetét a háromdimenziós térben.
A 3D kijelzők 3D -ben jeleníthetik meg a modelleket. Az ilyen kijelzők különféle fizikai mechanizmusokat használnak a világító pontok egy bizonyos térfogaton belüli megjelenítésére. Például állhatnak sok, egymás felett elhelyezkedő, képet alkotó síkból, vagy olyan síkpanelekből, amelyek térbeli elforgatásuk miatt háromdimenziós hatást keltenek [1] [2] .
Néha az ilyen kijelzők felbontását voxelben adják meg, például 128x128x128.
A voxeleket már régóta használják számítógépes játékokban , de használatuk korlátozott a súlyos hardverkövetelmények miatt. Leggyakrabban a játékokban a voxeleket modellek rajzolására használják. Néha a szokásos magasságmező helyett voxel tájakat használnak - ez lehetővé teszi, hogy bonyolultabb tereket hozzon létre barlangokkal és hidakkal. A voxel tájak, belső terek és objektumok egyik legfontosabb jellemzője, hogy képesek dinamikusan megváltoztatni és valós időben megsemmisíteni őket .
Voxel motorokat találtak a játékokban:
![]() |
---|