Interested Article - Воксел

Воксельная модель. Один воксел соответствует одному кубику
Воксельное изображение макромолекулы рибосомы , созданное с использованием PyMOL

Во́ксел (в разговорной речи во́ксель , англ. Voxel — образовано из слов: объёмный ( англ. vo lumetric ) и пиксель ( англ. pi xel )) — элемент объёмного изображения, содержащий значение элемента растра в трёхмерном пространстве . Воксели являются аналогами двумерных пикселей для трёхмерного пространства. Воксельные модели часто используются для визуализации и анализа медицинской и научной информации.

В компьютерной графике воксели используются как альтернатива полигонам . Новички иногда ошибочно считают воксели заменой для физических пикселей (элементов матрицы дисплея). На самом деле под вокселом обычно понимается виртуальный элемент, соответствующий набору из шести прямоугольных полигонов. Всё в виртуальном мире — виртуальные пиксели, полигоны и воксели — должно быть спроецировано на пиксели физического экрана: [ источник не указан 1601 день ]

  • Виртуальными пикселями «рисуют» плоские 2D модели объектов (спрайты) в 3D мире.
  • Полигонами или 2D плоскостями как бы обволакивают пустое 3D пространство.
  • Вокселами выкладывают объёмные модели объектов, которые имеют внутренности.

То есть в отличие от полигонов и пикселей, воксели — это истинный 3D кирпичик, а не 2D плоскость, которая «окружает» пустое 3D пространство. [ источник не указан 1601 день ]

Моделирование в виртуальных пикселях уже почти не встречается в производстве 3D графики. Сейчас при 3D моделировании объекты часто создают в основном только двумя способами:

  1. либо с помощью плоских полигонов — тем самым будет создана полая модель без внутреннего наполнения, но для тех, кто наблюдает 3D, часто и не требуется знать, что, например, у 3D кошки внутри ничего нет. Для наблюдателя достаточно лишь хорошо сшитой из треугольных полигонов поверхности кошки.
  2. либо с помощью объёмных кубиков — вокселей, которые полностью заполняют внутренности 3D модели, где каждый такой кубик несёт в себе информацию о том, чем он является, например, кожей, мышцами, костями и т.д. [ источник не указан 1601 день ]

Ввиду того, что полигональные модели пусты по своей природе, очень трудно моделировать их поведение в 3D мире. Например, если программисту нужно смоделировать поведение воды в 3D игре про пиратов, он сталкивается с проблемой: как смоделировать волны на поверхности воды? Как моделировать всплески воды, ведь вода в игре — это просто ковёр, сплетённый из треугольников голубого цвета, под этой плоскостью ничего нет, а между тем нужно показать пенящуюся и плескающуюся воду. То есть надо показать отделение частей воды друг от друга в виде пены и всплесков. Приходится вводить новые объекты в память компьютера, а управление этими дополнительными объектами требует большого искусства именно от программиста, а не от дизайнера. [ источник не указан 1601 день ]

Если же воду моделировать через воксели, то всё становится гораздо проще, ибо вся вода от поверхности океана и до дна состоит из «атомов», которые легко «отделяются» друг от друга естественным, с точки зрения программиста, путём. [ источник не указан 1601 день ]

Представление в памяти

Модель кошки в воксельном (слева) и полигональном (справа) представлении

Как и в случае с пикселями, сами по себе вокселы не содержат информации о своих координатах в пространстве. Их координаты вычисляются из их позиции в трёхмерной матрице — структуре, моделирующей объёмный объект или поле значений параметра в трёхмерном пространстве.

Этим вокселы отличаются от объектов векторной графики , для которых известны координаты их опорных точек (вершин) и прочие параметры.

Воксельные модели имеют определённое разрешение . Каждый воксел имеет определённое значение, например, цвет.

Для хранения воксельной модели применяют массив размерами 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

Ряд медицинских устройств, например, сканеры компьютерной томографии , трёхмерное УЗИ , МРТ выдают послойную информацию при сканировании. По завершении сканирования строится воксельная модель. Значения вокселей в этом случае отражают данные с устройства. В компьютерной томографии, например, это прозрачность тела по шкале Хаунсфилда , то есть прозрачность для рентгеновских лучей.

Для воксельных моделей (например, медицинских данных со сканера МРТ ) просто реализуется вывод любого сечения модели. Это даёт возможность изучить любой срез данных.

Визуализация

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

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

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

Существуют и другие алгоритмы, например, проекция максимальной интенсивности , которая хорошо отображает положение в трёхмерном пространстве наиболее ярких участков трёхмерного объекта.

Объёмные дисплеи

Объёмные дисплеи могут выводить модели в трёхмерном объёме. Такие дисплеи используют различные физические механизмы для показа светящихся точек в пределах некоторого объёма. Например, могут состоять из множества плоскостей, формирующих изображение, которые расположены одна над другой, или плоских панелей, создающих эффект объёмности за счёт своего вращения в пространстве .

Иногда для таких дисплеев указывается их разрешение в вокселах, например 128×128×128.

Вокселы в компьютерных играх

Вокселы давно используются в компьютерных играх , однако их использование ограничено из-за серьёзных требований к аппаратной части. Чаще всего в играх вокселы используются для отрисовки моделей. Иногда используются воксельные ландшафты вместо обычного поля высот — это позволяет создавать более сложные пространства с пещерами и мостами. Одной из самых важных возможностей воксельных ландшафтов, интерьеров и объектов является возможность их динамического изменения и разрушения в реальном времени.

Воксельные движки встречались в играх:

  • Игра Space Engineers , где воксельная графика используется для создания и изменения ландшафта планет, лун и астероидов, а также разнообразных пород для добычи ресурсов.
  • Компания NovaLogic использовала воксельные графические движки в сериях игр Delta Force , и Comanche .
  • Игры Command & Conquer: Tiberian Sun и Command & Conquer: Red Alert 2 от компании Westwood Studios использовали воксельные модели транспортных средств.
  • Игра Blade Runner .
  • Игра Outcast использовала вокселы для прорисовки объектов.
  • Игра .
  • Игра — игра с процедурно-генерируемым миром, которая представляет собой песочницу (с различными режимами, включая выживание ), построенная на воксельной графике. Благодаря этому можно полностью изменять ландшафт (копать пещеры, строить, наращивать горы и создавать водоёмы).
  • Игра Вангеры использовала большие многоуровневые непрерывные воксельные пространства с изменяемыми «живыми» ландшафтами.
  • В движке Build Engine есть возможность использования воксельных объектов. Такие объекты используются в шутерах Shadow Warrior и Blood , построенных на этом движке, а также в переработанном Duke Nukem 3D High Resolution Pack.
  • Игра .
  • Игра .
  • Master of Orion III использует воксельную графику для отображения космических битв и солнечных систем.
  • В игровом движке CryEngine 2 , который использовался в играх Crysis , Crysis Warhead и Crysis Wars , вокселы использовались для построения пустых пространств под поверхностью ландшафта уровня.
  • В 3D-шутере Z.A.R (1997) и аддоне Mission Pack (1999) использовался воксельный движок для отображения разрушаемого ландшафта.
  • Игры Worms 3D и Worms 4: Mayhem использовали «покселы» ( англ. poxel , образовано от voxel (воксел) + polygon (полигон)) для динамически разрушаемого трёхмерного ландшафта, подобного ландшафту в двухмерных версиях.
  • Игра .
  • Игра Minecraft использует подобие воксельной графики для создания случайно генерируемого ландшафта, но рендеринг производит с помощью полигонов.
  • Движок Panda 3D
  • Игра (похожа на ARK: Survival Evolved , но имеет воксельную графику)
  • Игра Voxelstein 3D использует воксельный движок «Voxlap», благодаря которому вся геометрия игры построена на вокселах и полностью разрушаема .
  • Движок id Tech 6 компании id Software будет использовать инновационную технологию « Sparse Voxel Octree » (SVO, рус. Разреженное воксельное октодерево ) для визуализации статических объектов (ландшафта, массивных строений и т. д.) игрового уровня.
  • Графический движок OTOY , ориентированный на серверное исполнение, будет использовать вокселы для построения геометрии уровня и трассировку лучей для освещения.
  • Игра Ace of Spades использует воксельный движок Voxlap.
  • Игра использует воксельную графику для создания случайно генерируемого игрового мира, моделей игроков и NPC.
  • Игра Trove использует воксельный движок, написанный на C++.
  • Игра компании Housemarque.
  • Игра 7 Days to Die
  • Игра Shadows of Doubt генерирует мир для детективных расследований на основе воксельной технологии.
  • В игре Astroneer игровой процесс полностью базируется на преобразовании воксельного ландшафта в структуры, необходимые игроку для достижения поставленных задач: пещеры, тоннели, мосты, дороги и т. д.
  • Игра No Man’s Sky использует воксельный рендеринг.
  • А также игры и

См. также

Примечания

  1. от 25 декабря 2009 на Wayback Machine Компьюлента, 24.12.2008.
  2. от 29 января 2010 на Wayback Machine Computerworld Россия, 06.08.2002
  3. . Дата обращения: 14 января 2010. 7 января 2010 года.

Ссылки

  • (англ.) . IEEE Computer, Vol. 26, No. 7 (июль 1993). Дата обращения: 9 июля 2010. 18 февраля 2012 года.
  • Дмитрий Чеканов. 3. Tom's Hardware (30 октября 2009). — Статья, описывающая вокселы, октодеревья, рейкастинг, их перспективы и ограничения. Дата обращения: 6 февраля 2010.
  • Рони Ягель Кафедра информатики, Университет шт. Огайо, США . . Открытыe системы (издательство) (16 мая 1996). Дата обращения: 11 февраля 2010.
  • Рони Ягель Кафедра информатики, Университет шт. Огайо, США . . Открытыe системы (издательство) (16 мая 1996). Дата обращения: 11 февраля 2010.
  • . GameDev.ru (23 марта 2007). Дата обращения: 9 июля 2010.
  • Сергей Книгин. . Really.ru (21 февраля 2007). Дата обращения: 10 июля 2010. 19 мая 2012 года.
  • hitan. 3. CodeNet.ru (7 марта 2009). Дата обращения: 10 июля 2010. 18 февраля 2012 года.
  • (англ.) . jonof.id.au (14 марта 2009). Дата обращения: 10 июля 2010. Архивировано из 18 февраля 2012 года.
Источник —

Same as Воксел