Voxel (i daglig tale voxel , engelsk Voxel - dannet af ordene: volumetric ( engelsk vo lumetric ) og pixel ( engelsk pi xel )) - et element i et tredimensionelt billede, der indeholder værdien af et rasterelement i tredimensionelt rum . Voxels er analoger af todimensionelle pixels til tredimensionelt rum. Voxel-modeller bruges ofte til at visualisere og analysere medicinsk og videnskabelig information.
I computergrafik bruges voxels som et alternativ til polygoner . Begyndere betragter nogle gange fejlagtigt voxels som erstatninger for fysiske pixels (displaymatrixelementer). Faktisk forstås en voxel normalt som et virtuelt element svarende til et sæt af seks rektangulære polygoner. Alt i den virtuelle verden - virtuelle pixels, polygoner og voxels - skal projiceres på pixels på den fysiske skærm:
Det vil sige, i modsætning til polygoner og pixels er voxels en ægte 3D-klods, ikke et 2D-plan, der "omgiver" tomt 3D-rum.
Modellering i virtuelle pixels findes næsten aldrig i produktionen af 3D-grafik. Nu i 3D-modellering skabes objekter ofte hovedsageligt på kun to måder:
På grund af det faktum, at polygonmodeller er tomme af natur, er det meget vanskeligt at modellere deres adfærd i 3D-verdenen. For eksempel, hvis en programmør skal simulere vandets adfærd i et 3D-piratspil, står han over for et problem: hvordan simulerer man bølger på overfladen af vandet? Sådan simulerer du vandsprøjt, fordi vandet i spillet kun er et tæppe vævet af blå trekanter, er der intet under dette fly, men i mellemtiden skal du vise skummende og sprøjtende vand. Det vil sige, at det er nødvendigt at vise adskillelsen af dele af vand fra hinanden i form af skum og stænk. Du skal indføre nye objekter i computerens hukommelse, og håndtering af disse ekstra objekter kræver stor dygtighed fra programmøren, ikke fra designeren.
Hvis vand modelleres gennem voxels, så bliver alt meget enklere, fordi alt vand fra havets overflade til bunden består af "atomer", der let "adskilles" fra hinanden på en naturlig måde, set fra programmørens synspunkt .
Som det er tilfældet med pixels, indeholder voxels i sig selv ikke information om deres koordinater i rummet. Deres koordinater beregnes ud fra deres position i en tredimensionel matrix - en struktur, der modellerer et tredimensionelt objekt eller et felt af parameterværdier i tredimensionelt rum.
Dette er, hvordan voxels adskiller sig fra vektorgrafikobjekter , for hvilke koordinaterne for deres referencepunkter (hjørnepunkter) og andre parametre er kendte.
Voxel-modeller har en vis opløsning . Hver voxel har en bestemt betydning, såsom en farve.
For at gemme voxel-modellen bruges et array med dimensionerne X×Y×Z. Ukomprimerede voxel-modeller (sammenlignet med vektormodeller) bruger meget mere hukommelsesplads til behandling. For eksempel vil en ukomprimeret model på 256×256×256 voxels i størrelse optage 32 MB hukommelse (256*256*256=16777216 voxel og mindst 2 bytes pr. voxel selv i 256 gråtoner, da 256 gradueringer skal tilføjes til dem gennemsigtighed, i alt 16777216*2=33554432 bytes=33554432/1024=32768 KB = 32768/1024=32 MB ), mens en vektormodel kan kræve tiere eller endda hundredvis af gange mindre.
En af de nyeste lovende teknologier, der giver dig mulighed for at udføre effektiv detaljering af voxel-objekter, er en sparse voxel octree ( sparse voxel octree ). Dens fordele: betydelige hukommelsesbesparelser, naturlig generering af detaljeringsniveauer (analogt med mipmap - kort) og høj behandlingshastighed i raycasting .
Træets første knude, roden, er en terning, der indeholder hele objektet. Hver node har enten 8 underordnede terninger eller har ingen underordnede. Som et resultat af alle underinddelinger opnås et regulært tredimensionelt gitter af voxels.
Doxels er voxels, der ændrer sig over tid. Ligesom en serie billeder udgør en animation , så kan en række voxel-modeller over tid udgøre en 3D-animation .
På grund af det faktum, at en tredimensionel matrix lagrer værdien af en voxel for hvert enkelt element i det volumetriske rum, er voxel-modeller velegnede til modellering af kontinuerlige miljøer og værdifelter (f.eks. fordelingen af kulilte i atmosfæren over en by), mens vektormodeller er mere velegnede til modellering af diskrete objekter. .
En række medicinske anordninger, såsom computertomografiskannere , tredimensionel ultralyd , MRI , giver lagdelt information ved scanning. Efter afslutning af scanningen bygges en voxel-model. Voxelværdierne afspejler i dette tilfælde dataene fra enheden. I computertomografi, for eksempel, er det gennemsigtigheden af kroppen på Hounsfield-skalaen , det vil sige gennemsigtigheden for røntgenstråler.
For voxel-modeller (for eksempel medicinske data fra en MR -scanner ) implementeres outputtet af enhver sektion af modellen ganske enkelt. Dette gør det muligt at undersøge et hvilket som helst udsnit af dataene.
Der er mange gengivelsesalgoritmer til voxel-modeller . En af de hurtigste måder kaldes "kaste snebolde" (eng. splatting ). Voxels "kastes" på synsfladen i rækkefølge efter afstand fra den, fra den fjerneste til den nærmeste. De resulterende "sneboldspor" (splats) gengives som skiver, hvis farve og gennemsigtighed varierer afhængigt af diameteren i overensstemmelse med den normale (gaussiske) fordeling . Forskellige implementeringer kan bruge forskellige elementer eller forskellige tildelinger.
For at forbedre billedkvaliteten bruges mere komplekse gengivelsesalgoritmer: Marching cubes-algoritmen og andre. Marching Cubes-algoritmen bygger en isosurface baseret på voxel-data. Den sædvanlige implementering af algoritmen bruger værdierne af 8 tilstødende voxels til at tegne en polygon inde i kuben dannet af deres koordinater. Da der kun er 256 mulige kombinationer, kan du forberede dem på forhånd og bruge typiske "klodser" (allerede i skærmkoordinater) til at gengive store mængder data i god kvalitet.
Der er andre algoritmer, for eksempel maksimal intensitetsprojektion , som godt viser positionen i det tredimensionale rum af de lyseste dele af et tredimensionelt objekt.
3D- skærme kan vise modeller i 3D. Sådanne skærme bruger forskellige fysiske mekanismer til at vise lysende prikker inden for et bestemt volumen. De kan for eksempel bestå af mange planer, der danner et billede, som er placeret over hinanden, eller flade paneler, der skaber en tredimensionel effekt på grund af deres rotation i rummet [1] [2] .
Nogle gange for sådanne skærme er deres opløsning angivet i voxels, for eksempel 128x128x128.
Voxels har været brugt i computerspil i lang tid , men deres brug er begrænset på grund af strenge hardwarekrav. Oftest i spil bruges voxels til at tegne modeller. Nogle gange bruges voxel - landskaber i stedet for det sædvanlige højdefelt - dette giver dig mulighed for at skabe mere komplekse rum med huler og broer. En af de vigtigste egenskaber ved voxel-landskaber, interiører og objekter er evnen til dynamisk at ændre og ødelægge dem i realtid.
Voxel- motorer blev fundet i spil:
I bibliografiske kataloger |
---|