Воксель

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Серії вокселів в стосах. Червоним кольором виділений одиничний воксель
Макромолекула, визначена з допомогою вокселів

Во́ксель (від англ. Volume та англ. pixel) — елемент простору, позначає значення певної величини в клітинках рівномірної просторової ґратки. Аналогічний пікселю, у двовимірних зображеннях (значенням величини в клітинах ґратки виступає колір). Вокселі традиційно використовуються для візуалізації та аналізу медичних та наукових даних. Окрім того, таку технологію використовують деякі прогресивні програми тривимірного моделювання, та комп'ютерні ігри, для генерації складного ландшафту (що містить арки та печери, які не можуть задаватись картою висот).

Подібно до пікселів, самі вокселі, як правило, не містять інформації про своє розміщення в просторі (координати), натомість координати обчислюються на основі розташування в структурі даних, яка утворює єдине просторове зображення.

Для опису роздільної здатності деяких 3D дисплеїв використовуються вокселі. Наприклад, дисплей може бути здатен відобразити 512x512x512 вокселів.

Відеоігри з воксельною графікою: Teardown, Delver, Ace of Spades[en], ~craft.

Подання до пам'яті[ред. | ред. код]

Воксельна модель кішки (ліворуч) поруч з полігональною (векторна графіка) моделлю кота (праворуч).

Як і у випадку з пікселями, самі по собі вокселі не містять інформації про свої координати в просторі. Їх координати обчислюються з їх позиції в тривимірній матриці — структурі, що моделює об'ємний об'єкт або поле значень параметра в тривимірному просторі.

Цим вокселі відрізняються від об'єктів векторної графіки, для яких відомі координати їх опорних точок (вершин) та інші параметри.

Воксельні моделі мають певну роздільність. Кожен воксель має певне значення, наприклад, колір.

Для зберігання воксельної моделі застосовують масив розмірами X×Y×Z. Нестислі воксельні моделі (порівняно з векторними) споживають набагато більше місця в пам'яті для обробки. Приміром, одна нестиснена модель розміром 256×256×256 вокселів займатиме пам'ять об'ємом від 32 Мб (256*256*256 = 16777216 вокселів і як мінімум 2 байти на воксель навіть в 256-ти градаціях сірого, оскільки до них треба додати 256 градацій прозорості, разом 16777216*2 = 33554432 байт = 33554432/1024 = 32768 Кб = 32768/1024 = 32 Мб), в той час як векторної моделі може знадобитися в десятки або навіть сотні разів менше.

Побудова воксельного октодерева

Розріджене воксельне октодерево[ред. | ред. код]

Однією з новітніх перспективних технологій, що дозволяє робити ефективну деталізацію воксельних об'єктів, є розріджене воксельне октодерево (sparse voxel octree). У числі її переваг: значна економія пам'яті, природна генерація рівнів деталізації (аналога mipmap-карт), і висока швидкість обробки в рейкастінгу.

Перший вузол дерева — корінь, є кубом, що містить весь об'єкт цілком. Кожен вузол або має 8 кубів — нащадків або не має жодних нащадків. У результаті всіх підрозбиттів виходить регулярна тривимірна сітка вокселів.

Докселі[ред. | ред. код]

Докселі — це вокселі, що змінюються в часі. Як ряд картинок становить анімацію, так і ряд воксельних моделей в часі можуть складати тривимірну анімацію.

Області застосування[ред. | ред. код]

Завдяки тому, що тривимірна матриця зберігає значення вокселів для кожного одиничного елемента об'ємного простору, воксельні моделі добре підходять для моделювання безперервних середовищ і полів значень (наприклад, розподіл чадного газу в атмосфері над містом), в той час як векторні більш призначені для моделювання дискретних об'єктів.

Медичні дані[ред. | ред. код]

Модель, побудована з 150 шарів з МРТ з використанням алгоритму marching-cubes. Розмір сітки 64x64x150

Ряд медичних пристроїв, як, наприклад, сканери комп'ютерної томографії, тривимірне УЗД, МРТ видають пошарову інформацію при скануванні. По завершенні сканування будується воксельна модель. Значення вокселів в цьому випадку відображають дані з пристрою. У комп'ютерній томографії, наприклад, це прозорість тіла за шкалою Хаунсфілда, тобто прозорість для рентгенівських променів.

Для воксельних моделей (наприклад, медичних даних зі сканера МРТ) просто реалізується висновок будь-якого перетину моделі. Це дає можливість вивчити будь-який зріз даних.

3D-друк[ред. | ред. код]

Вокселі використовуються при створенні 3D-моделей для 3D-друку.

Візуалізація[ред. | ред. код]

Візуалізація воксельної моделі на тривимірному дисплеї Perspecta volumetric

Для воксельних моделей існує безліч алгоритмів візуалізації. Один з найшвидших способів називається «киданням сніжків» (англ. splatting). Вокселі «кидаються» на поверхню перегляду в порядку віддаленості від неї, від далеких до близьких. Утворені «сліди від сніжок» (сплети) рендеряться як диски, колір і прозорість яких змінюється в залежності від діаметра відповідно до нормального (гаусового) розподілу. У різних реалізаціях можуть використовуватися інші елементи або ж інші розподіли.

Для поліпшення якості зображення використовуються більш складні алгоритми відображення: алгоритм Marching cubes та інші. Алгоритм «Marching Cubes» (біжать кубики) будує ізоповерхні, спираючись на дані вокселів. Звичайна реалізація алгоритму використовує значення 8-и сусідніх вокселів, щоб намалювати полігон всередині куба утвореного їх координатами. Оскільки існує всього 256 можливих комбінацій, можна заздалегідь їх підготувати, і використовувати типові «цеглинки» (уже в екранних координатах) для малювання великих обсягів даних в хорошій якості.

Існують і інші алгоритми, наприклад проєкція максимальної інтенсивності, яка добре відображає положення в тривимірному просторі найбільш яскравих ділянок тривимірного об'єкту.

Об'ємні дисплеї[ред. | ред. код]

Об'ємні дисплеї можуть виводити моделі в тривимірному обсязі. Такі дисплеї використовують різні фізичні механізми для показу точок, що світяться в межах деякого об'єму. Наприклад, можуть складатися з безлічі площин, що формують зображення, які розташовані одна над іншою, або плоских панелей, що створюють ефект об'ємності за рахунок свого обертання в просторі.

Іноді для таких дисплеїв вказується їх роздільність у вокселях, наприклад 128×128×128.

Вокселі у відеоіграх[ред. | ред. код]

Воксельна графіка у Вангерах

Вокселі давно використовуються в відеоіграх, проте їх використання обмежено через серйозні вимоги до апаратної частини. Найчастіше в іграх вокселі використовуються для малювання моделей. Іноді використовуються воксельні ландшафти замість звичайної карти висот — це дозволяє створювати складніші простори з печерами і мостами. Однією з найважливіших можливостей воксельних ландшафтів, інтер'єрів і об'єктів є можливість їх динамічної зміни і руйнування в реальному часі.

Воксельні рушії зустрічалися в іграх:

  • Компанія NovaLogic використовувала воксельні графічні рушії в серіях ігор Delta Force, Armored Fist і Comanche.
  • Ігри Command & Conquer: Tiberian Sun і Command & Conquer: Red Alert 2 від компанії Westwood Studios використовували воксельні моделі транспортних засобів.
  • Гра Blade Runner.
  • Гра Outcast використовувала вокселі для промальовування об'єктів.
  • Гра Amok.
  • Гра Вангери використовувала великі багаторівневі безперервні воксельні простори з мінливими «живими» ландшафтами, а також воксельний інтерфейс. Пов'язана з нею Периметр використовувала воксельні ландшафти, здатні динамічно змінювати рельєф.
  • У рушії Build Engine є можливість використання воксельних об'єктів. Такі об'єкти використовуються в шутерах Shadow Warrior і Blood, побудованих на цьому рушії, а також у переробленому Duke Nukem 3D High Resolution Pack.
  • Гра Thunder Brigade.
  • Master of Orion III використовує воксельну графіку для відображення космічних битв і сонячних систем.
  • В ігровому рушії CryEngine 2, який використовувався в іграх Crysis, Crysis Warhead і Crysis Wars, вокселі використовувалися для побудови порожніх просторів під поверхнею ландшафту рівня.
  • Ігри Worms 3D і Worms 4: Mayhem використовували «покселі» (англ. poxel, утворено від voxel (воксель) + polygon (полігон)) для динамічно руйнованого тривимірного ландшафту, подібного ландшафту в двомірних версіях.
  • Гра Hexplore.
  • Гра Minecraft використовує подобу воксельної графіки для створення випадкового ландшафту, що генерується, але рендеринг виробляє за допомогою полігонів.
  • Гра Voxelstein 3D використовує воксельний рушій «Voxlap», завдяки якому вся геометрія гри побудована на вокселях і повністю знищенна.
  • Рушій id Tech 6 компанії id Software буде використовувати інноваційну технологію «Sparse Voxel Octree» для візуалізації статичних об'єктів (ландшафту, масивних будівель тощо) ігрового рівня.
  • Графічний рушій OTOY, орієнтований на серверне виконання, буде використовувати вокселі для побудови геометрії рівня і трасування променів для освітлення.
  • Гра Ace of Spades[en] використовує воксельний рушій Voxlap.
  • Гра Cube World використовує воксельну графіку для створення випадкового ігрового світу моделей гравців і NPC.

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]