Voxel

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:

  1. vagy lapos sokszögek felhasználásával - ez egy üreges modellt hoz létre belső kitöltés nélkül, de a 3D-t figyelőknek gyakran nem kell tudniuk, hogy például egy 3D-s macskában nincs semmi. A megfigyelő számára csak a macska háromszög alakú sokszögekből jól összevarrt felülete elegendő.
  2. vagy volumetrikus kockák segítségével - voxelek, amelyek teljesen kitöltik a 3D-s modell belsejét, ahol minden ilyen kocka információt hordoz arról, hogy mi is az, például bőr, izmok, csontok stb.

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. .

Memóriaábrázolás

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.

Ritka voxel octree

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.

Doxels

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 .

Alkalmazások

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.

Orvosi információk

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.

Vizualizáció

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.

Volumetrikus kijelzők

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.

Voxelek a számítógépes játékokban

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:

Lásd még

Jegyzetek

  1. Volumetrikus kijelzők: a következő lépés a tömeggyártás felé Archiválva : 2009. december 25., Compulent's Wayback Machine , 2008.12.24.
  2. Valóban háromdimenziós kép. Computerworld Oroszország, 2002.08.06
  3. Voxelstein 3D webhely

Linkek