Воксели


Содержание

Воксели [Voxel]

Слово воксель — voxel — образовано от слова VOlume и аббревиатуры piXEL (pixel, расшифровывается как PICture’S ELement, элемент картины). То есть, переводится как «элемент объемного изображения» или «элемент объема изображения».. Обычно это шар или куб.

Не стоит приписывать пикселу и вокселю равносторонность. Это удобно, не более того. Иногда даже удобнее считать воксель неким параллепипедом — например, в карте высот.

Применения вокселей

Наиболее широкое применение воксели нашли в медицине, в компьютерной томографии, в частности. Изображения с большого количества рентгеновских или ультразвуковых снимков под разными углами (порядка 100-200 снимков) обрабатываются, и создается трехмерный массив плотностей различных участков тканей исследуемого органа. Этот массив представляет собой «объемную картину», элементом которой является воксель.

Второе, более наглядное, применение вокселей — компьютерные игры. В Shadow Warrior с помощью трехмерного массива задается форма оружия, а во всем известных Команчах — ландшафт. И если в Shadow Warrior воксели квадратные, а массив трехмерный, то в Команчах воксели представляют собой параллепипед 1*1*высота_местности, а массив двумерный. Поэтому в Команчах не видно нависающих над берегом моря утесов — такое вот ограничение на представление пространства.

Способы отображения

Двумерные массивы высот отображаются методом плавающего горизонта в комбинации с методом отслеживания лучей (raycasting, не путать с reytracing). Способ чрезвычайно прост:

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

Что касается трехмерных массивов, то здесь все зависит от специфики приложения, поэтому методов их отображения существует несколько:

  • Честная трассировка лучей.
    Традиционный «лобовой» метод, с которым все борются.
  • Построение изоповерхности.
    Перед отображением объем переводится в набор плоскостей, описывающих «поверхности» объема.
    Один из методов пакета VolVis.
    Не очень хорош (с моей точки зрения) при отображении объемов с полупрозрачными участками.
  • Отображение через преобразование Фурье.
    Метод основан на теореме об обратном преобразовании двумерного среза преобразования Фурье. Вкратце смысл ее таков: если вычислить прямое преобразование Фурье для объема N*N*N, затем взять его срез плоскостью P, проходящей через центр объема, затем произвести обратное преобразование Фурье, то результат будет представлять собой двумерный массив, с элементами, содержащими сумму элементов, соответствующих трассировке объема лучами, перпендикулярными P.
    Требует N**3 памяти под комплексные числа, сложность оценивается как O(N**2*log(N)).
    Существенным недостатком является отсутствие отсечения скрытых деталей — результаты работы алгоритма очень похожи на рентгеновские снимки.
  • «Пропуск пространства» — Space Leaping
    Предобработкой производится выделение и объединение пустых участков пространства, и во время трассировки лучей такие участки просто пропускаются.
    Включает в себя трассировку лучей.
  • Отображение с помощью фильтра
    Для каждого отображаемого вокселя определяется экранная координата его центра, а затем параметры вокселя «разбрасываются» по соседним пикселам с ипользованием некоторого фильтра. Коэффициенты фильтра зависит только от желаемого качества.
    Чаще всего используемый фильтр — считать проекцию воксела квадратом с однородными параметрами (Shadow Warrior).

Далее

Воксел

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

Содержание

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

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

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

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

Для хранения воксельной модели применяют массив размерами 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 кубов-потомков, или не имеет никаких потомков. В результате всех подразбиений получается регулярная трёхмерная сетка вокселей.

Докселы

Докселы — это вокселы, изменяющиеся во времени. Как ряд картинок составляет анимацию, так и ряд воксельных моделей во времени могут составлять трёхмерную анимацию.


Области применения

Благодаря тому, что трёхмерная матрица хранит значение воксела для каждого единичного элемента объёмного пространства, воксельные модели хорошо подходят для моделирования непрерывных сред и полей значений (например, распределение угарного газа в атмосфере над городом), в то время как векторные более предназначены для моделирования дискретных объектов.

Медицинские данные

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

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

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

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

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

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

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

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

Иногда для таких дисплеев указывается их разрешение в вокселах, например 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», благодаря которому вся геометрия игры построена на вокселах и полностью разрушаема [3] .
  • Движок >Разреженное воксельное октодерево ) для визуализации статических объектов (ландшафта, массивных строений и т. д.) игрового уровня.
  • Графический движок OTOY, ориентированный на серверное исполнение, будет использовать вокселы для построения геометрии уровня и трассировку лучей для освещения.
  • Игра Ace of Spades использует воксельный движок Voxlap.
  • Игра Cube World использует воксельную графику для создания случайно генерируемого игрового мира, моделей игроков и NPC.
  • Игра Trove использует воксельный движок, написанный на C++.

См. также

Напишите отзыв о статье «Воксел»

Примечания

  1. [science.compulenta.ru/391937/ Объемные дисплеи: очередной шаг к массовому производству] Компьюлента, 24.12.2008.
  2. [www.osp.ru/cw/2002/28-29/54537/ Истинно объемное изображение.] Computerworld Россия, 06.08.2002
  3. [voxelstein3d.sourceforge.net/ Сайт Voxelstein 3D]


Ссылки

  • [www.cs.sunysb.edu/

vislab/projects/volume/Papers/Voxel/index.html Fundamentals of Voxelization] (англ.) . IEEE Computer, Vol. 26, No. 7 (июль 1993 года). Проверено 9 июля 2010.[www.webcitation.org/65XTHidqM Архивировано из первоисточника 18 февраля 2012].

  • Дмитрий Чеканов. [www.thg.ru/graphic/voxel_ray_casting/onepage.html Рендеринг с помощью вокселей: новый уровень графики в играх?] 3. Tom’s Hardware (30 октября 2009 года). — Статья, описывающая вокселы, октодеревья, рейкастинг, их перспективы и ограничения. Проверено 6 февраля 2010.[www.webcitation.org/65XTIBJtu Архивировано из первоисточника 18 февраля 2012].
  • Рони Ягель Кафедра информатики, Университет шт. Огайо, США. [www.osp.ru/os/1996/05/178968/ Рендеринг объемов в реальном времени]. Открытыe системы (издательство) (16 мая 1996 года). Проверено 11 февраля 2010.[www.webcitation.org/65XTLmYBF Архивировано из первоисточника 18 февраля 2012].
  • Рони Ягель Кафедра информатики, Университет шт. Огайо, США. [www.osp.ru/os/1996/05/178971/ Аппаратный рендеринг объема]. Открытыe системы (издательство) (16 мая 1996 года). Проверено 11 февраля 2010.[www.webcitation.org/65XTNNZhx Архивировано из первоисточника 18 февраля 2012].
    • [www.gamedev.ru/code/terms/Voxel Voxel (Воксель)]. GameDev.ru (23 марта 2007 года). Проверено 9 июля 2010.[www.webcitation.org/65XTOmS8U Архивировано из первоисточника 18 февраля 2012].
    • Сергей Книгин. [www.really.ru/index.php?option=com_content&view=article& >
    • hitan. [www.codenet.ru/progr/video/voxel/index.php Воксели (Voxel)] 3. CodeNet.ru (7 марта 2009 года). Проверено 10 июля 2010.[www.webcitation.org/65XTPWQuL Архивировано из первоисточника 18 февраля 2012].
    • [www.jonof. >(англ.) . jonof.id.au (14 марта 2009 года). Проверено 10 июля 2010.[www.webcitation.org/65XTQKPxT Архивировано из первоисточника 18 февраля 2012].

    Отрывок, характеризующий Воксел

    – В генералы и матушку произвели? – сказал князь Aндрей улыбаясь.
    Пелагеюшка вдруг побледнела и всплеснула руками.
    – Отец, отец, грех тебе, у тебя сын! – заговорила она, из бледности вдруг переходя в яркую краску.
    – Отец, что ты сказал такое, Бог тебя прости. – Она перекрестилась. – Господи, прости его. Матушка, что ж это?… – обратилась она к княжне Марье. Она встала и чуть не плача стала собирать свою сумочку. Ей, видно, было и страшно, и стыдно, что она пользовалась благодеяниями в доме, где могли говорить это, и жалко, что надо было теперь лишиться благодеяний этого дома.
    – Ну что вам за охота? – сказала княжна Марья. – Зачем вы пришли ко мне?…
    – Нет, ведь я шучу, Пелагеюшка, – сказал Пьер. – Princesse, ma parole, je n’ai pas voulu l’offenser, [Княжна, я право, не хотел обидеть ее,] я так только. Ты не думай, я пошутил, – говорил он, робко улыбаясь и желая загладить свою вину. – Ведь это я, а он так, пошутил только.
    Пелагеюшка остановилась недоверчиво, но в лице Пьера была такая искренность раскаяния, и князь Андрей так кротко смотрел то на Пелагеюшку, то на Пьера, что она понемногу успокоилась.

    Странница успокоилась и, наведенная опять на разговор, долго потом рассказывала про отца Амфилохия, который был такой святой жизни, что от ручки его ладоном пахло, и о том, как знакомые ей монахи в последнее ее странствие в Киев дали ей ключи от пещер, и как она, взяв с собой сухарики, двое суток провела в пещерах с угодниками. «Помолюсь одному, почитаю, пойду к другому. Сосну, опять пойду приложусь; и такая, матушка, тишина, благодать такая, что и на свет Божий выходить не хочется».
    Пьер внимательно и серьезно слушал ее. Князь Андрей вышел из комнаты. И вслед за ним, оставив божьих людей допивать чай, княжна Марья повела Пьера в гостиную.
    – Вы очень добры, – сказала она ему.
    – Ах, я право не думал оскорбить ее, я так понимаю и высоко ценю эти чувства!
    Княжна Марья молча посмотрела на него и нежно улыбнулась. – Ведь я вас давно знаю и люблю как брата, – сказала она. – Как вы нашли Андрея? – спросила она поспешно, не давая ему времени сказать что нибудь в ответ на ее ласковые слова. – Он очень беспокоит меня. Здоровье его зимой лучше, но прошлой весной рана открылась, и доктор сказал, что он должен ехать лечиться. И нравственно я очень боюсь за него. Он не такой характер как мы, женщины, чтобы выстрадать и выплакать свое горе. Он внутри себя носит его. Нынче он весел и оживлен; но это ваш приезд так подействовал на него: он редко бывает таким. Ежели бы вы могли уговорить его поехать за границу! Ему нужна деятельность, а эта ровная, тихая жизнь губит его. Другие не замечают, а я вижу.
    В 10 м часу официанты бросились к крыльцу, заслышав бубенчики подъезжавшего экипажа старого князя. Князь Андрей с Пьером тоже вышли на крыльцо.
    – Это кто? – спросил старый князь, вылезая из кареты и угадав Пьера.
    – AI очень рад! целуй, – сказал он, узнав, кто был незнакомый молодой человек.
    Старый князь был в хорошем духе и обласкал Пьера.
    Перед ужином князь Андрей, вернувшись назад в кабинет отца, застал старого князя в горячем споре с Пьером.
    Пьер доказывал, что придет время, когда не будет больше войны. Старый князь, подтрунивая, но не сердясь, оспаривал его.
    – Кровь из жил выпусти, воды налей, тогда войны не будет. Бабьи бредни, бабьи бредни, – проговорил он, но всё таки ласково потрепал Пьера по плечу, и подошел к столу, у которого князь Андрей, видимо не желая вступать в разговор, перебирал бумаги, привезенные князем из города. Старый князь подошел к нему и стал говорить о делах.
    – Предводитель, Ростов граф, половины людей не доставил. Приехал в город, вздумал на обед звать, – я ему такой обед задал… А вот просмотри эту… Ну, брат, – обратился князь Николай Андреич к сыну, хлопая по плечу Пьера, – молодец твой приятель, я его полюбил! Разжигает меня. Другой и умные речи говорит, а слушать не хочется, а он и врет да разжигает меня старика. Ну идите, идите, – сказал он, – может быть приду, за ужином вашим посижу. Опять поспорю. Мою дуру, княжну Марью полюби, – прокричал он Пьеру из двери.
    Пьер теперь только, в свой приезд в Лысые Горы, оценил всю силу и прелесть своей дружбы с князем Андреем. Эта прелесть выразилась не столько в его отношениях с ним самим, сколько в отношениях со всеми родными и домашними. Пьер с старым, суровым князем и с кроткой и робкой княжной Марьей, несмотря на то, что он их почти не знал, чувствовал себя сразу старым другом. Они все уже любили его. Не только княжна Марья, подкупленная его кроткими отношениями к странницам, самым лучистым взглядом смотрела на него; но маленький, годовой князь Николай, как звал дед, улыбнулся Пьеру и пошел к нему на руки. Михаил Иваныч, m lle Bourienne с радостными улыбками смотрели на него, когда он разговаривал с старым князем.
    Старый князь вышел ужинать: это было очевидно для Пьера. Он был с ним оба дня его пребывания в Лысых Горах чрезвычайно ласков, и велел ему приезжать к себе.
    Когда Пьер уехал и сошлись вместе все члены семьи, его стали судить, как это всегда бывает после отъезда нового человека и, как это редко бывает, все говорили про него одно хорошее.

    Возвратившись в этот раз из отпуска, Ростов в первый раз почувствовал и узнал, до какой степени сильна была его связь с Денисовым и со всем полком.
    Когда Ростов подъезжал к полку, он испытывал чувство подобное тому, которое он испытывал, подъезжая к Поварскому дому. Когда он увидал первого гусара в расстегнутом мундире своего полка, когда он узнал рыжего Дементьева, увидал коновязи рыжих лошадей, когда Лаврушка радостно закричал своему барину: «Граф приехал!» и лохматый Денисов, спавший на постели, выбежал из землянки, обнял его, и офицеры сошлись к приезжему, – Ростов испытывал такое же чувство, как когда его обнимала мать, отец и сестры, и слезы радости, подступившие ему к горлу, помешали ему говорить. Полк был тоже дом, и дом неизменно милый и дорогой, как и дом родительский.
    Явившись к полковому командиру, получив назначение в прежний эскадрон, сходивши на дежурство и на фуражировку, войдя во все маленькие интересы полка и почувствовав себя лишенным свободы и закованным в одну узкую неизменную рамку, Ростов испытал то же успокоение, ту же опору и то же сознание того, что он здесь дома, на своем месте, которые он чувствовал и под родительским кровом. Не было этой всей безурядицы вольного света, в котором он не находил себе места и ошибался в выборах; не было Сони, с которой надо было или не надо было объясняться. Не было возможности ехать туда или не ехать туда; не было этих 24 часов суток, которые столькими различными способами можно было употребить; не было этого бесчисленного множества людей, из которых никто не был ближе, никто не был дальше; не было этих неясных и неопределенных денежных отношений с отцом, не было напоминания об ужасном проигрыше Долохову! Тут в полку всё было ясно и просто. Весь мир был разделен на два неровные отдела. Один – наш Павлоградский полк, и другой – всё остальное. И до этого остального не было никакого дела. В полку всё было известно: кто был поручик, кто ротмистр, кто хороший, кто дурной человек, и главное, – товарищ. Маркитант верит в долг, жалованье получается в треть; выдумывать и выбирать нечего, только не делай ничего такого, что считается дурным в Павлоградском полку; а пошлют, делай то, что ясно и отчетливо, определено и приказано: и всё будет хорошо.
    Вступив снова в эти определенные условия полковой жизни, Ростов испытал радость и успокоение, подобные тем, которые чувствует усталый человек, ложась на отдых. Тем отраднее была в эту кампанию эта полковая жизнь Ростову, что он, после проигрыша Долохову (поступка, которого он, несмотря на все утешения родных, не мог простить себе), решился служить не как прежде, а чтобы загладить свою вину, служить хорошо и быть вполне отличным товарищем и офицером, т. е. прекрасным человеком, что представлялось столь трудным в миру, а в полку столь возможным.
    Ростов, со времени своего проигрыша, решил, что он в пять лет заплатит этот долг родителям. Ему посылалось по 10 ти тысяч в год, теперь же он решился брать только две, а остальные предоставлять родителям для уплаты долга.

    Армия наша после неоднократных отступлений, наступлений и сражений при Пултуске, при Прейсиш Эйлау, сосредоточивалась около Бартенштейна. Ожидали приезда государя к армии и начала новой кампании.
    Павлоградский полк, находившийся в той части армии, которая была в походе 1805 года, укомплектовываясь в России, опоздал к первым действиям кампании. Он не был ни под Пултуском, ни под Прейсиш Эйлау и во второй половине кампании, присоединившись к действующей армии, был причислен к отряду Платова.
    Отряд Платова действовал независимо от армии. Несколько раз павлоградцы были частями в перестрелках с неприятелем, захватили пленных и однажды отбили даже экипажи маршала Удино. В апреле месяце павлоградцы несколько недель простояли около разоренной до тла немецкой пустой деревни, не трогаясь с места.
    Была ростепель, грязь, холод, реки взломало, дороги сделались непроездны; по нескольку дней не выдавали ни лошадям ни людям провианта. Так как подвоз сделался невозможен, то люди рассыпались по заброшенным пустынным деревням отыскивать картофель, но уже и того находили мало. Всё было съедено, и все жители разбежались; те, которые оставались, были хуже нищих, и отнимать у них уж было нечего, и даже мало – жалостливые солдаты часто вместо того, чтобы пользоваться от них, отдавали им свое последнее.
    Павлоградский полк в делах потерял только двух раненых; но от голоду и болезней потерял почти половину людей. В госпиталях умирали так верно, что солдаты, больные лихорадкой и опухолью, происходившими от дурной пищи, предпочитали нести службу, через силу волоча ноги во фронте, чем отправляться в больницы. С открытием весны солдаты стали находить показывавшееся из земли растение, похожее на спаржу, которое они называли почему то машкин сладкий корень, и рассыпались по лугам и полям, отыскивая этот машкин сладкий корень (который был очень горек), саблями выкапывали его и ели, несмотря на приказания не есть этого вредного растения.
    Весною между солдатами открылась новая болезнь, опухоль рук, ног и лица, причину которой медики полагали в употреблении этого корня. Но несмотря на запрещение, павлоградские солдаты эскадрона Денисова ели преимущественно машкин сладкий корень, потому что уже вторую неделю растягивали последние сухари, выдавали только по полфунта на человека, а картофель в последнюю посылку привезли мерзлый и проросший. Лошади питались тоже вторую неделю соломенными крышами с домов, были безобразно худы и покрыты еще зимнею, клоками сбившеюся шерстью.

    Илон Маск рекомендует:  Использование разделяемой памяти в php

    Что такое воксели (voxel) | Словарь

    Если грубо, то воксели можно представить себе как трехмерные пиксели или как аналог атомов в компьютерном мире. Т.е. 3D объект можно представить состоящим из маленьких кубиков. Каждый такой кубик и будет вокселем.

    Само понятие voxel (воксел) образовано от слияния двух слов vo lumetric и pi xel (объемный и пиксель).

    Если сравнивать моделирование вокселями с моделированием полигонами, то это как создание бюста в реальной жизни из глины (где частички глины выступают в роли вокселей) по сравнению с созданием бюста из кусочков бумаги (где кусочек бумаги выступает в роли полигона). Т.е. если вы проткнёте пальцем бюст из глины, то получите углубление по форме пальца. А если проткнёте пальцем бюст из бумаги, то получите просто дырку, через которую можно увидеть внутреннюю сторону полого бюста.


    Это не просто теория. С помощью вокселей уже давно можно моделировать в таком редакторе, как 3D-Coat . ZBrush использует технологию вокселей для булевых операций над сабтулсами (только для внутренних расчётов). А Houdini так вообще пропитан вокселями (воксельные флюиды, к примеру) с давних времён.

    Имитировать вид 3D-объекта, как будто он состоит из вокселей, можно и в 3ds Max. Вот, к примеру, отличный способ создания объектов из анимированных вокселей .

    Похожие статьи:

    • @3. ZBrush подсказки: значение значков на сабтулсах Все используют SubTools, но не все знают, как на всю мощь использовать вот эти значки (перекрывающиеся круги, кисточка, глаз) рядом…
    • Что нового в Maya 2015 Обновление (29.04.2014): добавил в начале статьи отличную презентацию всех новых фич 2015 версии. Обновление (21.03.2014): добавил немножко информации про геодезический…
    • @7. ZBrush подсказки. Как вырезать дырку в ZBrush Давненько я уже не писал, но очень хочется! :) Хотя и совсем нет времени. Поэтому решил пополнить рубрику маленьких 3D…
    • 3d-модели создают из бесконечного количества… Сейчас китайцы делают не только дешевые подделки, но и качественные девайсы. К примеру, на известнейшем сайте Slando можно купить китайские…
    • Церковь Света: рендер интерьера дня Инфо. Автор: Elvin Aliyev, Азербайджан. 3D-/2D-инструменты: 3ds Max, VRay, After Effects, Photoshop. О процессе создания фотореалистичного интерьера Церкви Света. Эта…
    • Процедурно-сгенерированный 3d-город Pixel City Один молодой человек (Shamus Young) за 50 часов сделал программу, которая полностью динамически формирует 3d-город. И назвал ее Pixel City.…
    • Что такое Camera Projection / Mapping | Справочник Обновление (10.01.16): добавил новое шикарное видео на основе проецирования под камеру (в конце статьи, раздел «Camera Projection на основе старых…

    Вам понравилась статья ? Хотите отблагодарить автора? Расскажите о ней друзьям.
    Или подпишитесь на обновление блога по E-Mail.

    Ответов: 6 к статье “Что такое воксели (voxel) | Словарь”

    А в чём прелесть вокселей? Ведь если я правильно понимаю воксель тоже из полигонов состоит, эт получается что и полигонов будет больше при создании воксельной модели?

    Даниил, в данном случае используются псевдовоксели) Поэтому они и состоят из полигонов.

    В том то и дело, что воксели — это совсем другая технология, кардинально отличающаяся от полигонов. Другое дело, что чрезвычайно мало внешних приложений, игровых движков, плагинов поддерживают работу непосредственно с вокселями. Как следствие, воксели приходится (после создания модели в 3D-редакторе, работающем с настоящими вокселями) переганять в полигоны.

    А в плане затрата ресурсов(компьютера) что выгоднее использовать полигоны или воксели. И не совсем понял, из чего состоят воксели из полигонов или это какая-то самостоятельная еденица?

    Их нельзя напрямую сравнивать.
    Да, воксели — это самостоятельная единица (она НЕ состоит из полигонов). Воксели, если грубо, то ближе к облаку точек, чем к полигонам.

    Воксели

    Чтобы лучше понимать воксельную графику, следует получить базовое представление о растровой графике. В последней за формирование картинки отвечает пиксель с 3 свойствами: положение по оси X, по Y и цвет элемента. В векторном направлении графики оператором выступает только программный код, передающий нужные параметры пикселю или создающий отдельный графический элемент. 3D сочетает свойства векторной и растровой графики для создания любых объектов в трёхмерном виде с поверхностным наложением растровой структуры.

    На самом деле воксельная графика является обычным растром, но в 3-мерном исполнении. Для неё помимо трёх предыдущих свойств ещё передаётся координата по оси Z – это глубина текстуры. Практически все знают, что пиксель в 2D – это мельчайшая единица картинки, из которой и строится конечное изображение. Вокселем же называют такую же мелкую деталь картинки, но в объёмном её варианте.

    Одним их хороших примеров для иллюстрации воксельной графики является MineCraft. Правда, здесь не всё однозначно. Вроде бы Майнкрафт – это на самом деле прекрасная иллюстрация основ взаимодействия вокселей, но опять же – это банальное 3D с 3-мерными текстурами и моделями. Профессионал назвал бы игру лишь пародией настоящей воксельной графики.

    Зачем оно?


    Довольно нечасто в современном мире используется воксельная графика. Причинами для отказа от неё служит недостаточная гибкость в использовании и слишком большая требовательность к аппаратным ресурсам. Если попытаться реализовать относительно реалистичную картинку, она потребует очень много ресурсов для визуализации на компьютере. Полностью сбрасывать воксели со счетов так же не стоит, у них есть и достоинства.

    Раз уж речь все равно зашла за игры на ПК, главным преимуществом вокселей здесь является лёгкость изменений отдельных точек. Воксель в своей среде напоминает кирпич в строительстве. На его основе можно выстроить огромные объекты, а при необходимости не составит слишком большого труда заменить один из кирпичей. Деформация готового, «литого» 3D элемента выполняется намного сложнее. Чтобы не усложнять, с помощью вокселей очень просто сделать текстуры разрушаемыми.

    Раньше именно за счёт вокселей разработчики игр смогли перейти с 2D в 3D. Других средств для реализации объёмных картинок в тот момент не существовало. К примеру, Wolfenstein 3D – это вовсе не полноценный 3D, а на 50% плоский и на 50% воксельный шутер. Способ реализации подобного трюка – это тема специальной статьи.

    Воксели активно применяются в медицинской отрасли для построения результатов обследований. Их можно лицезреть после прохождения МРТ, УЗИ, КТ. Именно благодаря вокселям стало возможно послойно перебирать и просматривать ткани организма.

    Это модель головы, построенная с помощью вокселей, видно, что персонажу не слишком повезло.

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

    Есть и геймеры, которые просто так создают уникальные концепты основываясь исключительно на вокселях. FEZ на первый взгляд – полностью плоская игра, но со временем уровень приобретает движение.

    В конце концов воксельная графика является податливым и мощным средством в инструментарии художника. Бонусом за чтение материала предлагаю посмотреть лучшие работы от Sir Carma – это художник, использующий чистые возможности вокселей. Для улучшения внешнего вида изображения он лишь добавляет шейдеры.

    Если зародилось желание попробовать себя в вексельной графике, рекомендую отличный редактор (к тому же бесплатный) – MagicaVoxel.

    ВИДЕОКАРТЫ

    Рендеринг с помощью вокселей: новый уровень графики в играх?

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

    Если вы читали нашу предыдущую статью, то наверняка помните, что нас не очень убедила актуальность технологии трассировки лучей в реальном времени (это подтверждает последняя демонстрация Intel трассировки лучей на Larrabee в игре Enemy Territory , где частота кадров оказалась весьма посредственной). Это мнение, похоже, разделяет сегодня большинство разработчиков, включая такую знаменитость в игровом мире, как Джона Кармака (John Carmack). Вот, что он сказал нашим коллегам с сайта PC Perspective .

    “Я понимаю метод трассировки лучей в его классическом смысле, то есть аналитическое пересечение лучей в традиционно описываемой геометрии, будь то сетки треугольников или примитивы более высокого порядка. И я вряд ли поставлю на то, что метод трассировки лучей заменит основные задачи рендеринга, пусть даже это продвигает Intel. У растеризации есть крупные преимущества с точки зрения производительности, да и многие аргументы сторонников трассировки лучей, касающиеся использования технологии отбраковки (culling), чтобы избежать работы с массивной геометрией, эти аргументы очень слабые, поскольку вы можете делать то же самое с очередями окклюзии и традиционными движками рендеринга на основе растеризации. Если сравнивать напрямую, то растеризация будет существенно более эффективным способом использования доступных транзисторов, независимо от их количества.»

    Как видим, Джон Кармак относится к трассировке лучей без всякого энтузиазма, но это совсем не связано с его консервативностью и желанием оставить технологию растеризации треугольников на веки вечные. Как стало известно примерно с год назад, у Джона Кармака есть своё мнение по поводу будущего рендеринга в реальном времени, и идея заключается в воксельном формировании лучей. Позднее мы получили презентацию Джона Олика (Jon Olick), да и утекло немало интересных деталей. Поэтому настало прекрасное время внимательно познакомиться с тем, что для нас готовит id Software.

    Эксперименты Кармака с вокселями начались намного раньше прошлого года. Фактически, эта идея заинтересовала Джона ещё 10 лет назад. Между движками Quake/Quake II и игрой Quake III Кармак провёл несколько экспериментов с новыми технологиями рендеринга. Он дал своему исследованию кодовое название Trinity, при этом многие геймеры считали его будущим продуктом и новым поколением 3D-движков от >»Теперь несколько замечаний по некоторым технологиям, исследованиям которых я занимался при подготовке движка Quake3/Trinity. С самого начала я потратил пару месяцев на очень масштабные открытые исследования, но, как получилось, ни одно из ранних исследований не повлияло на направление, которое я решил в итоге взять. Конечно, я очень много узнал, и это вероятно окупится когда-либо в будущем.»

    Некоторые из его экспериментов подразумевали отображение воксельных октадеревьев. Вот что сказал сам Кармак после выпуска Quake III.

    «Я сделал два этих воксельных движка ещё в самом начале Quake III и довёл их до того момента, когда я уже думал, что практически могу реализовать их программно, но получилось бы довольно низкое разрешение, и по сравнению с тем, что можно было сделать на данной скорости с аппаратными полигонами, это себя в данном случае не оправдывало. Но я провёл анализ, какие сценарии доступа к памяти будут реализовываться; вы можете создать движок воксельного отображения лучей аппаратно на существенно меньшем «железе», чем мы на самом деле используем сегодня для всех движков растеризации треугольников, и во многих случаях я подозреваю, что визуальное качество будет намного более привлекательным.»

    Эта цитата была взята из интервью сайту FiringSquad начала 2000 года — почти 10 лет тому назад. Вполне понятно, что идея воксельного движка крутится в голове у Джона Кармака уже довольно долгое время.

    Конечно, нельзя говорить о вокселях, не упоминая Outcast. Игра, которая вышла ещё более 10 лет тому назад, в июле 1999 года, повлияла на целое поколение игр из-за многих качеств, но также и из-за очень необычного 3D-движка в те времена, когда 3D-видеокарты стали уже обязательной составляющей игровых ПК.

    Outcast использовала полностью программный движок рендеринга, поэтому была очень требовательна к ресурсам. Чтобы играть на максимальном разрешении (впечатляющее 512×384), вам требовался топовый процессор, но не 3D-видеокарта. Интенсивное использование ресурсов было не единственной причиной, почему стоит выделить движок этой игры. Он использовал воксели, то есть рендеринг был действительно уникальным.

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

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

    Теперь, после небольшого экскурса в прошлое, настало время посмотреть, что будут значить для нас воксели в будущем.

    Перед тем, как мы перейдём к деталям алгоритма, следует определить некоторые термины, такие как воксели, октадеревья и прокладка лучей.


    Если пиксель (pixel) является составным термином из слов «картина» и «элемент» (picture, element), то воксель является слиянием слов «объём» и «пиксель» (volume, pixel). Таким образом, воксель является базовым элементом объёма. Чтобы легче себе его представить, вспомните кирпичики конструктора Lego, в который вы играли ребёнком (или до сих пор играете, если у вас есть дети). Вы можете собрать практически всё, что угодно, используя набор простых кирпичиков. Воксели начинаются с такого же принципа: объём приближённо выражается набором кубических блоков. Это означает, что у нас есть представление объёма, в то время как сетка из треугольников представляет только пустой каркас — или поверхность, окружающую объём.

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

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

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

    Давайте посчитаем: простой массив из 1024 вокселей в каждом направлении занимает 1024 x 1024 x 1024 * 4 (красный, зелёный, синий и альфа-прозрачность) значений, что соответствует целым 4 Гбайт памяти. И это далеко не самое высокое разрешение. Поэтому воксели таким примитивным способом использовать нельзя. К счастью, есть решение, позволяющее ограничить этот недостаток: октадеревья или деревья с восемью ветвями.

    Дерево — очень часто используемая структура данных в компьютерах, поскольку она позволяет иерархически организовывать данные. Каждый из вас каждый день пользуется древовидными структурами, даже не осознавая это: например когда вы работаете с файлами за компьютером.

    Если взять структуру дерева файловой системы, то можно выделить корень на жёстком диске, в котором будет присутствовать несколько дочерних ветвей в виде папок, которые в свою очередь могут содержать свои дочерние ветви (вложенные папки) и так далее, пока вы не доберётесь до листьев (самих файлов). По этому примеру вы наверняка догадаетесь об одном из преимуществ использования деревьев: добраться до части организованного дерева бывает намного быстрее, чем если ветви расположены как попало.

    Узлы дерева могут иметь разное число ветвей. Например, если ветвей у узла максимум две, то мы говорим о бинарном дереве, а число ветвей от нуля до четырёх даёт квадрадерево (дерево квадрантов), наконец, дерево с числом ветвей от нуля до восьми является октадеревом.

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

    Перед вами приближённое отображение круга на координатной сетке с разрешением 12 x 12. Приближение очень грубое из-за низкого разрешения, но, как можно видеть, большая часть ячеек пустует, поэтому они бесполезны. Если мы будем использовать октадерево, то уже получим следующее приближение.

    Строить октадерево довольно просто. Нужно начать с базовой картинки, после чего поделить её на два в обоих направлениях, что даст четыре квадранта. Если квадрант пуст или полностью заполнен, то алгоритм для него прекращается. Если квадрант заполнен частично, то он разделяется на два в обоих направлениях и так далее. Алгоритм завершается, когда все квадранты однородны (то есть полностью заполнены или полностью пустые), либо когда достигнута определённая глубина (на примере выше мы остановились на дереве с глубиной четыре, что дало деление на 16 в каждом направлении). Как можно видеть, даже в нашем простом примере конечный результат оказался намного ближе к оригинальному кругу, при этом мы использовали меньше данных (97 узлов или ячеек против 122 у обычной координатной сетки). А октадерево переносит этот принцип на три измерения.

    Но на практике выигрыш по занимаемому пространству в памяти при данном разрешении оказывается несколько меньшим, чем кажется на первый взгляд. Это связано с тем, что в случае обычной координатной сетки расположение вокселей подразумевается изначально. Напротив, в случае октадерева каждый узел должен содержать привязку ко всем дочерним объектам. На практике каждый узел должен иметь восемь указателей в дополнение к цвету и нормали вокселя.

    Впрочем, это только маленький недостаток по сравнению со многими другими преимуществами октадеревьев. Чтобы получить хорошее представление о других важных преимуществах октадеревьев, сначала нужно описать способ, с помощью которого происходит визуализация структуры данных. Существует несколько способов отображения вокселей, но техникой, которую выбрала id Software, является прокладка лучей (ray casting). Ниже мы приводим её описание.

    Прокладка лучей (ray casting)

    Подобно трассировке лучей (ray tracing), прокладка лучей основывается на проведении луча от каждого пикселя картинки. Но отличие в следующем: как только будет найдено пересечение, то алгоритм на этом завершается, вторичных лучей не прокладывается.

    Следовательно, прокладка лучей выполняется быстрее трассировки лучей, поскольку, как мы уже показали в предыдущей статье , данные вторичные лучи как раз и приводят к проблемам с доступом к памяти. Более того, вам не нужно создавать дополнительные структуры данных, чтобы ускорить вычисления, связанные с пересечениями. Октадерево является одновременно и данными (геометрия и текстуры), и структурой ускорения.

    Преимущества воксельных октадеревьев

    Теперь давайте рассмотрим преимущества воксельного октадерева в рендеринге. Основное преимущество этой структуры данных в том, что она обеспечивает весьма элегантный путь решения проблемы уровня детализации (level of detail, LoD) текстур, а также и геометрии — всё это по одному простому алгоритму. Причина кроется в том, что, как мы уже упоминали выше, каждый узел октадерева содержит цветовую информацию, так что мы можем обойтись без 2D-текстур в их традиционном понимании. Или, если быть более точным, октадерево содержит как текстурную информацию, так и геометрическую.

    Следовательно, проблема уровня детализации, которую приходилось совершенно по-разному решать для геометрии и для текстур, теперь сводится к одной простой системе: решению проблемы уровня детализации для октадерева. А это можно сделать очень просто, по принципу, несколько напоминающему mip-уровни текстурирования. Цель создания mip-уровней заключается в сохранении размера текселей (элементы текстуры) максимально близко к размеру пикселей экрана. Для этого текстура просчитывается и сохраняется в нескольких разрешениях, а графический процессор выбирает тот или иной mip-уровень в зависимости от размера текстуры на экране.

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

    Также следует отметить, что существуют другие возможные способы решения упомянутых проблем, например, использование систем с виртуальными текстурами, подобных MegaTextures, или других технологий (например, sparse virtual textures), которые будут встроены в самые крупные 3D-движки (CryEngine 3, >Некоторые исследователи работали над тем, чтобы сделать переход с одного уровня детализации на другой более плавным, используя так называемую прогрессивную сетку. Идея состоит в том, что для каждого уровня детализации вершины разбиваются на две группы: родительские вершины и дочерние вершины. При понижении уровня детализации дочерние вершины постепенно рисуются ближе к своим родительским вершинам. Когда уровень детализации достигает нового целочисленного значения, дочерние вершины удаляются, а также и все грани, которыми они соединялись с родительскими вершинами.

    Данная техника работает, но не полностью автоматически. Ей требуется дополнительная информация со стороны художника, который смог бы указать, какие грани важнее всего сохранить. Эта дополнительная работа означает и то, что художник получит меньше времени на доработку моделей.

    Ещё один способ решения проблемы (о котором мы очень много слышим после появления видеокарт с поддержкой DirectX 11) заключается в тесселяции примитивов высокого порядка (патчей), возможно вместе с картами смещения (displacement mapping). Появление данной технологии уже давно случилось на бумаге (да, вспомним Parhelia), но практических результатов пока не было. Возможно, это как раз тот случай, когда мы получим практическое воплощение.

    Илон Маск рекомендует:  Языки и грамматики простейший компилятор

    Опять же, данная техника вполне актуальна и имеет определённые шансы на успех, если со стороны Microsoft и AMD будут приложены усилия, чтобы направить разработчиков в нужное русло. Но воксельные октадеревья остаются весьма жизненной альтернативой. Как мы уже говорили выше, они могут решить проблему геометрии и текстур с одним алгоритмом, да и позволяют очень легко выбирать уровень детализации. В конце концов, оценить размер вокселя на экране проще, а для треугольника — сложнее.

    Потенциальные ограничения вокселей


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

    Ещё одна проблема кроется в том, что нам что-то нужно делать с потоковой системой. Как мы уже говорили, данная технология рендеринга хорошо подходит для постепенного увеличения уровня детализации по мере приближения к объекту, когда система будет в фоне вызывать данные из октадерева. Из-за способа организации данных это можно сделать плавно. Но что произойдёт, когда мы телепортируемся в другую часть мира? Геометрия будет уникальна, и потоковая система будет поставлена «на колени». Поэтому можно ожидать вывода некоторого времени очень простой геометрии, с постепенным улучшением детализации. Либо дизайнерам игры придётся как-то обходить этот недостаток, избегая упомянутых ситуаций.

    Эта проблема не уникальна для воксельных октадеревьев, поскольку все потоковые системы строятся на принципе относительно непрерывного изменения уровня детализации, они не справляются с внезапными переменами. Но на сегодняшний день такая проблема стоит только с текстурами. И если видеть текстуру низкого разрешения секунду или две не очень приятно, то октадерево с низким разрешением будет визуально просто ужасно.

    Ещё один недостаток, который мы можем получить с вокселями, касается пикселизации. Если мы отображаем только цвет вокселей, находящихся на пересечении луча, то края кубов будут видимы, что приведёт к несколько забытому эффекту пикселизации, который вряд ли соответствует будущему технологий рендеринга. К счастью, эту проблему можно решить с помощью трилинейной фильтрации: вместо фильтрации в двух измерениях, как в случае текстур, фильтрация выполняется в трёх измерениях.

    Последняя проблема: несмотря на преимущества структуры данных октадерева, память, требующаяся для хранения целого мира в форме вокселей, просто огромна. Как вы уже видели, это не влияет на ресурсы, необходимые для текущего выполнения. Но, с другой стороны, чтобы создавать, хранить и передавать пользователям подобные структуры данных id Software предстоит сделать немало серьёзной работы по технологиям сжатия. Джо Олик (Jon Olick) сказал пару предложений на эту тему — похоже, он доволен уровнем сжатия, которого удалось достичь.

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

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

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

    Что есть Воксель

    Продолжаем отвечать на вопросы по технологиям.

    Сегодня поговорим о вокселях.

    Слово воксель — voxel — образовано от слова VOlume и аббревиатуры piXEL (pixel, расшифровывается как PICture’S ELement, элемент картины). То есть, переводится как «элемент объемного изображения» или «элемент объема изображения».. Обычно это шар или куб.

    Не стоит приписывать пикселу и вокселю равносторонность. Это удобно, не более того. Иногда даже удобнее считать воксель неким параллепипедом — например, в карте высот.

    Как работают воксельные движки

    Давайте попытаемся разобраться, как именно воксельный движок создает трехмерный ландшафт. Вначале берется плоская картинка (как будто мы сфотографировали кусок земли сверху) и так называемая «карта высот» (heightmap) — массив данных, в котором хранятся значения высоты для каждого пикселя нашей картинки. Теперь движок в состоянии превратить плоский пиксель в трехмерный воксель. При этом — чем точнее будет наша карта высот, тем реалистичнее будет наш трехмерный ландшафт. И наоборот, если взятая карта высот будет слишком неточной (скажем, сможет хранить лишь десять различных отсчетов по оси Z), то финальная картинка получится весьма угловатой (так называемый эффект лесенки).

    Окружающий нас мир изобилует мельчайшими деталями. Поэтому в воксельных движках используются специальные технологии, улучшающие качество heightmap низкого разрешения. Два наиболее распространенных способа основаны на диаметрально противоположных алгоритмах: первый добавляет множество новых отсчетов в карту высот, используя псевдослучайные карты смещения (displacement maps), второй сглаживает угловатости, получая новые значения по оси Z путем интерполяции между существующими.

    К этому моменту наш движок вполне может построить трехмерный скелет кусочка земли. Осталось лишь найти цветовую карту (color map) и покрасить верхний слой вокселей всеми цветами радуги. Для этого потребуется обыкновенная плоская текстура. Теперь, если ставить кубики-воксели друг на друга и присваивать самому верхнему определенный цвет, рано или поздно можно добиться желаемого результата. Впрочем, результат мы получим скорее поздно, нежели рано, ибо движок наш выполняет слишком много ненужной работы. Человечество еще не научилось видеть сквозь предметы, поэтому глаза наши фиксируют только верхний слой кубиков и даже не задумываются о том, что под всем этим кроется груда вокселей, каждый из которых рендерил наш трудолюбивый движок. Чтобы избавить его от лишней работы, конечный рендеринг использует технологию трассировки лучей. Несмотря на громоздкое название, ничего сложного в ней нет.

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

    Движок наш с офтальмологами не знаком, поэтому считает, что человеческий глаз работает именно так, как описано в предыдущем абзаце. И поэтому рендеринг финальной картинки методом трассировки лучей происходит следующим образом: нашли самую нижнюю координату в карте высот, выпустили туда луч, натолкнулись на какое-нибудь препятствие, считали значение в карте цветов, покрасили пиксель и поднялись на один пиксель повыше. Снова пустили луч, натолкнулись на что-то твердое и т. п. Интересно, что и на этом этапе можно немножко ускорить работу движка, слегка изменив алгоритм. Предположим, пущенный луч уперся в стенку красного кубика, причем в самый низ. Следующий по счету пиксель сверху тоже будет красным, и что самое важное — будет иметь те же координаты по осям X и Y. Зачем же, спрашивается, пускать еще один луч от самого «глаза», если можно сначала подняться наверх и посмотреть, что там такое. Если стенка, то сразу ее покрасить, и снова наверх — до тех пор, пока на свежий воздух не выберемся, сиречь ничего не найдем. Вот тогда и новый луч выпустим. Недостатков у такого подхода никаких — сплошная экономия времени.

    Если воксельный движок написан без глюков (а они такие), то рано или поздно луч упрется в пластмассовый ободок монитора, а на экране появится очередной кадр. Потом все начнется с самого начала, но повторение, хоть и мать учения, но совсем не повод писать еще два-три абзаца с кратким пересказом предыдущих двух-трех абзацев.

    Воксели это гораздо более реалистичный подход к представлению трехмерной модели на экране монитора чем полигоны. Просто так уж случилось что в пору зарождения 3D, производители аппаратных частей, в частности 3D акселераторов, избрали технологию полигонов а не вокселей.

    Может быть если бы тогда все получилось иначе, сейчас бы мы играли в полностью воксельные игрушки и интересовались поддержкой полигонов.

    Сейчас на рынке представлено совсем немного игр с воксельной графикой: как пример C&c Tiberian Sun (на скрине сверху), Периметр от Российских разработчиков, но чаще воксели используют в авиасимуляторах. Однако уже существуют игры, сочетающие в себе как полигональную, так и воксельную графику (первыми такое проделали создатели Zar). И результат получается прямо-таки великолепный: красивые детализированные ландшафты и аккуратненькие модели с цветным освещением.

    Так что будущее, как мне кажется, именно за таким вот симбиозом. Но это зависит от крупных магнатов, производителей «железа». Многие считают технологию тупиковой и устаревшей.


    Добавление №1 Взято с википедии

    Новый Воксельный движок (Острожно! Много умного текста)

    Описание

    В движке будет использоваться инновационная технология «Sparse Voxel Octree» (SVO, русск. Разреженное воксельное октодерево). Геометрия игрового уровня, поддерживаемая этой технологией, будет иметь не полигональную, а воксельную геометрию, т.е. геометрические объекты будут состоять из вокселей. Воксели будут сохраняться в октодереве. Для освещения будет использоваться технология рейкастинга (англ. raycasting, бросание лучей). Одна из целей технологии «SVO» состоит в том, чтобы иметь возможность «подгружать» части октодерева в графическую память (видеопамять), идя вниз вдоль ветвей дерева. Это значит, что объекты на нижних ветвях октодерева, т.е. те объекты, которые расположены к наблюдателю ближе всего, будут рендерится в максимальном качестве, с максимальной детализацией и текстурами максимального разрешения. Соответственно, для дальних объектов, которые расположены на более высоких ветках октодерева, будет использоваться меньшее качество, они будут построены на вокселях больших размеров. Таким образом, данная технология является способом контроля уровня детализации (англ. level of detail — LOD).

    Геометрические объекты, полученные благодаря SVO, теоретически могут иметь неограниченное число уровней детализации, более того, данные уровни детализации генерируются автоматически. Это устраняет потребность в использовании разных псевдотрёхмерных методик типа параллакс-маппинга. Тем не менее, все тесты с использованием SVO нуждаются в большом количестве памяти (вплоть до нескольких гигабайт). Йон Олик заявил, что является возможным сжатие такого SVO до уровня 1,15 битов на один воксел.

    В id Tech 6 с помощью SVO будет рендериться только статическая геометрия, например ландшафт, строения и т.д. Также из-за этого рейкастинг-освещение также будет статическим. Все динамические объекты типа персонажей, транспорта и т.д. будут «построены» на классических полигонах и динамически освещаться с помощью стандартных растеризационных методик. Олик заявил, что создание динамических объектов и динамического освещения с помощью SVO возможно, однако это потребует быстрого обновления октодерева для рендеринга. Согласно Олику, динамические освещение и геометрия, представленные SVO, которые позволят создавать изменяемую геометрию, будут присутствовать в id Tech 7.

    Кроме SVO, id Tech 6 будет использовать более продвинутую технологию мегатекстуры, которая впервые использовалась ещё в id Tech 4. При помощи данной технологии вся поверхность уровня покрывается одной текстурой.

    Разработчики id Tech 6 и SVO ориентируются не на текущее аппаратное обеспечение, а на аппаратное обеспечение, которое на момент начала разработки ещё не доступно. В частности, id Tech 6 ориентируется на CUDA, Intel Larrabee и AMD Fusion. Также Кармак заявил, что если игровые консоли следующего поколения (наследники Xbox 360 и PlayStation 3) будут иметь такие аппаратные спецификации, которые будут удовлетворять архитектуре движка, то, возможно, id Tech 6 будет работать и на этих консолях.

    Согласно Олику, на видеокарте GeForce GTX 280 при стандарте 720p (1280х720 пикселей) id Tech 6, возможно, сможет «выдавать» 60 кадров/сек. При этом движок стабильно будет «выдавать» не менее 30 кадров/сек.В интервью сайту PC Perspective на вопрос о том, каким должно быть и на сколько должно измениться аппаратное обеспечение, чтобы быть подходящим для SVO, Кармак ответил следующим образом: «Аппаратное обеспечение, спроектированное специально для SVO, может быть намного меньше, проше и эффективнее, чем средства общего назначения, но никто, кто находится в здоровом уме, не захочет сделать ставку на нашу технологию и не захочет создавать специфическое аппаратное решение для технологии, которую ещё не использовал ни один разработчик».

    Воксели

    Наверняка ты когда-нибудь где-нибудь что-нибудь слышал о полигонах. Не мог не слышать, если увлекаешься теми родами современных компьютерных игр, которые идут в трехмерной среде. Например, Quake и Unreal во всех своих разновидностях и проявлениях. Или Carmageddon и поздние выпуски Need for Speed. Или Total Annihilation и BattleZone. Да собственно, не мудрствуя лукаво: почти все игры, использующие 3D ускоритель, построены на полигонной графике.

    Полигоны – это те самые квадратично-треугольные штуковины (как бы куски мяса), которые разбрызгиваются вместе с кровищей в Quake. Аналог слова «полигон» – многоугольник. Модели монстров, автомашин, танков – все это состоит из некоторого числа многоугольников, обтянутых текстурами, и чем больше многоугольников пошло на модель, тем красивее и реальнее она выглядит в игре.

    Все дружно возмущаются: «Почему объекты такие квадратные? Это неестественно!». Между тем очевидно, что полигонные модели никогда не смогут выглядеть натурально, потому что у их составляющих ПЛОСКИЕ грани. Как-то раз я провел рукой по плоской с виду кирпичной стене: на ней было множество мельчайших деталей, которые не смогла бы воспроизвести ни одна текстура.

    Теперь представь себе, что гоняешь игру, где каждый кирпич и каждый предмет обстановки действительно СОДЕРЖИТ тысячи мельчайших деталей. Я думаю, это было бы что-то сногсшибательное. Но, к сожалению, сегодняшний уровень развития технологий не дает нам оснований надеяться, что такая степень реализма будет достигнута в ближайшем будущем. Чем больше полигонов идет на каждую модель (а также на детали обстановки и прочее), тем реалистичнее она выглядит и тем выше системные требования. Прямая пропорциональная зависимость.

    Однако ведь уже существует система, которая вполне в состоянии осуществить нечто подобное. Воксели, или Элементы объема, способны воссоздавать трехмерные объекты С ЛЮБЫМ УРОВНЕМ ДЕТАЛИЗАЦИИ. И воксельная графика уже используется в игровой индустрии.

    Воксели

    Впрочем, восторгаться, подпрыгивать на месте от восторга (на радость соседям снизу) и бросаться чепчиками покамест рановато. Полигоны имеют над вокселями всего одно, но критично важное преимущество. Да, действительно, высокая детализация воксельных движков добавляет в игры реализма, воксели способны демонстрировать эффекты динамического освещения в реальном времени не хуже полигонов и воксельные движки не требуют 3D акселераторов (что, кстати, еще к денежной экономии приводит – не нужно тратить деньги на покупку и постоянный апгрейд).

    Полагаю, ты давно уже пытаешься перебить меня и поинтересоваться: «Если воксели действительно настолько более продвинуты, почему, черт побери, они так слабо используются?!» Да в принципе, нет, почему же. Они используются. Например, в недавно выпендрившемся Tiberian Sun – но в данном случае их применение сведено (помимо громких рекламных проспектов) к замене доставших всех двухмерных спрайтов, причем здесь еще надо долго присматриваться, чтобы графика перестала казаться тебе плоской. Или в трехмерной экшен-адвенчуре Outcast – вот только тебе нужен черт знает какой компьютер, чтобы запустить игру в разрешении 640×480, да и разве можно считать идеалом применения воксельной графики убогие кривобокие холмы и похожие на мокрые кляксы изображения персонажей? Или появившаяся в начале 98-го года киберпанковая адвенчура Blade Runner, содержавшая тщательно проработанную и технологически потрясную, но совершенно некрасивую для глаза нормального игрока графику. Чу! Ты спрашиваешь меня, возможен ли Quake на воксельном движке и в таком качестве, чтоб QIII Arena отмерла как страшный сон? Отвечаю: да, возможен. Но.

    Но мы еще долго не увидим качественного (я подчеркиваю: качественного) шутера от первого лица на воксельном движке из-за одной серьезной проблемы: воксели требуют ГИГАНТСКОГО количества оперативной памяти и ОГРОМНЫХ вычислительных мощностей для рендеринга в реальном времени. Они лучше полигонов, но и значительно более требовательны. К тому же воксельные движки не поддерживают 3D ускорители, поскольку их графика, в отличие от полигонов, не является векторной. Это означает, что даже Pentium 3-500 со 128 Mb RAM и т.д. и т.п. не сможет гладко потянуть шутер вроде Quake 2 в разрешении хотя бы 640х480 (для сравнения: полигонный Quake 2 в таком разрешении без проблем идет на Р-166 с самой первой Voodoo).

    Значит ли это, что о вокселях надо совсем забыть? Нет, конечно! Тот факт, что компьютерные игры в течение какого-то времени не будут широко их использовать, не означает, что их НЕЛЬЗЯ использовать. Так называемые «системы следующего поколения», такие как PSX 2, уже всерьез на это настраиваются.

    Например, компания Sony уделяет большое внимание неполигонной графике, потому что считает, что их новая приставка сможет обсчитывать подобные движки с приличной производительностью. Наверное, ты удивлен: как же так, приставка может справляться с воксельной графикой, а РС – нет? Все не совсем так: третий Пень, возможно, и смог бы выдать нам нечто приличное, но ни один девелопер не пойдет на разработку игры, которая будет требовать для запуска самое высокотехнологичное железо. По крайней мере, пока у производителей игр существует альтернатива в виде полигонных движков. Плюс еще добавь тот факт, что на компьютерно-игровом рынке наблюдается гигантское разнообразие всевозможных конфигураций машин с самыми разными вычислительными мощностями. А Sony в состоянии позволить себе экспериментировать, потому что консольные системы являются закрытыми и не апгрейдятся – все выходящее железо и программное обеспечение контролируется компанией-производителем приставки, а разработчики совершенно точно знают, в рамках каких системных ограничений надо остаться при создании новой игры. У Sony есть и еще одно преимущество, которого нет ни у Sega, ни у Nintendo: они выпускают дополнительные примочки для своих консолей. В любом случае, нам остается только сидеть и ждать, пока Sony либо продемонстрирует миру те преимущества, которые можно извлечь из воксельной графики, либо потерпит провал курам на смех.

    Как воксели работают

    Выражаясь литературно, воксели можно сравнить с трехмерными пикселями. Пиксели используются для разбиения плоских двухмерных картинок на маленькие квадратики, раскрашенные в различные цвета. Воксели делают то же самое, но с трехмерными моделями. Воксельные объекты не являются двухмерными спрайтами, а состоят из кубиков, с раскрашенными соответствующим образом гранями. Это позволяет дизайнерам создавать любой уровень детализации, допускаемый рабочим разрешением игры. Предел детализации определяется путем подсчета использованных в модели вокселей и в соответствии с максимально допустимыми размерами файлов и объемом оперативной памяти, необходимой, чтобы содержать в себе эту модель. Снижение размера файлов может привести к эффекту «пикселизации», при котором каждый воксель будет отчетливо виден, после чего объект больше не будет ни детализированным, ни четким (именно эта судьба постигла Blade Runner и Outcast). Такой же эффект наблюдается и с полигонными моделями: чтобы повысить степень сжатия информации и сэкономить оперативку, дизайнер уменьшает число полигонов, и фигуры получаются уродливо-кубическими (это нам всем прекрасно знакомо).

    Воксели не используются повсеместно, потому что большинство игр требуют одновременной демонстрации на экране большого числа сравнительно детализированных моделей. А такие RTS, как Tiberian Sun, обходят это ограничение благодаря низкому разрешению своих воксельных моделей, применяемых в игре (каждая модель в среднем имеет разрешение 160х120). Этот фокус не бросается в глаза, так как сами модели маленькие, да и мониторы у народа не во всю стену. Таким образом экономится оперативную память, да и размеры файлов получаются совсем небольшими.

    Что нас ждет


    Для сегодняшнего рынка воксели не годятся, но являются следующей ступенью в развитии компьютерной графики. Однако, чтобы подняться на эту ступень, компьютерам необходимо сильно вырасти над собой. Подобная история уже имела место, когда на экранах впервые появились пиксели и настал конец эре двухмерной векторной графики. Любопытная параллель с сегодняшними событиями. Полигоны в прямом родстве с векторной графикой, а воксели крайне схожи с пикселями.

    Я не знаю, как ты, но я не очень расстроюсь, когда полигоны окажутся на задворках истории. Больше всего их уход со сцены будут переживать крупные компании, в первую голову – нынешние производители 3D ускорителей.

    Воксели

    Прогностика — наука для предсказания будущего. Философия ставит две проблемы прогнозирования (футурологии): первая — будущее не существует как объект, вторая — прогнозирование как исследование тенденций развития бытия — не есть наука. В то же время любая теория, любая форма общественного сознания предполагает размышления о будущем, без надежды на будущее нет смысла настоящего.

    Архив → Воксели, и с чем их едят фрактал voxel doxel

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

    Что же такое воксель? Википедия дает ответ следующий: volume pixel = voxel, объемный пиксель, представляет собой параллелепипед. Как и в случае с пикселом, сами по себе воксели не содержат информации о своих координатах в пространстве— она вычисляется на основе их позиции относительно других вокселов (то есть их позиции в структуре, образующей объемный объект.

    Илон Маск рекомендует:  Введение в регулярные выражения синтаксис

    Некоторые 3д-визоры используют понятие вокселя для определения разрешения своих отображающих поверхностей. Например, дисплей может отображать 512х512х512 вокселей. Помимо обычных вокселей существуют еще и доксели – doxel =dynamic voxel, изменяющийся во времени воксель. Таким образом взяли и к трем пространственными измерениям добавили еще 4е, которое принято обзывать временем. Кстати таким образом можно смоделировать пространственно-временной континиум.

    Ну все это просто замечательно, только почему же эту крутую идею вокселей не применяют игроделы? Возражу – применяют! Первая значащаяся в вики игра – Дэльта Форс. Там воксельная технология использовалась для построение равнинной поверхности, с той лишь оговоркой, что каждый воксель имел высоту начиная отсчет от нулевой. Именно поэтому в игре присутствуют только равнинные ландшафты, т.к. нет возможности создать нависающие скалистые местности. Всеми любимый Тибериан Сан и Ред Алерт использовали воксели для зданий и боевых юнитов. Ну а из более менее свежего – Вормз 4, где воксельные способности воплотились в возможности разрушать карту как хочется.

    Тем не менее использование вокселей – крайне ресурсоемкая и потому дорогостоящая операция. И поэтому вполне логично, что они не так распространены на обычных пк, но в медицинских учреждениях, где стоимость каждого агрегата начинается от шестизначной цифры, могут себе позволить себе такие игрушки. Например, известная в широком кругу почитателей Хауса, МРТ. Данный девайс делает несколько сот снимков-слоев, которые потом объединяются и получаем объемную модель.

    На этом мои поиски не остановились. Где же еще используются воксели? Ну конечно же они помогают визуализировать фракталы. Ну подумаешь фракталы, что в них такого особенного-то? А в том то и дело, что именно фракталами созданы множество достаточно сложных моделей: поведение волны, развитие мозга, рост дерева. Ими можно описать облака, которые вовсе не являются 3х мерным объектами, а 2.3 мерными, можно описать и понять как получилась каждая снежинка. Фракталы оказались настолько полезной и универсальной штукой, что их используют как трейдеры на бирже, так и сейсмологи при моделировании разрушений коры земной поверхности. Не брезгуют фракталами и синоптики. Но никакие формулы и описание функций не даст наглядного представления, именно для этого и используют сейчас воксели.

    Думается мне, тренд использования фракталов следует осветить поподробнее, сделаю свое небольшое любительское исследование позже.

    Воксел

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

    Содержание

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

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

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

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

    Для хранения воксельной модели применяют массив размерами 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 кубов-потомков, или не имеет никаких потомков. В результате всех подразбиений получается регулярная трёхмерная сетка вокселей.

    Докселы

    Докселы — это вокселы, изменяющиеся во времени. Как ряд картинок составляет анимацию, так и ряд воксельных моделей во времени могут составлять трёхмерную анимацию.


    Области применения

    Благодаря тому, что трёхмерная матрица хранит значение воксела для каждого единичного элемента объёмного пространства, воксельные модели хорошо подходят для моделирования непрерывных сред и полей значений (например, распределение угарного газа в атмосфере над городом), в то время как векторные более предназначены для моделирования дискретных объектов.

    Медицинские данные

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

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

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

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

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

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

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

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

    Иногда для таких дисплеев указывается их разрешение в вокселах, например 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», благодаря которому вся геометрия игры построена на вокселах и полностью разрушаема [3] .
    • Движок >Разреженное воксельное октодерево ) для визуализации статических объектов (ландшафта, массивных строений и т. д.) игрового уровня.
    • Графический движок OTOY, ориентированный на серверное исполнение, будет использовать вокселы для построения геометрии уровня и трассировку лучей для освещения.
    • Игра Ace of Spades использует воксельный движок Voxlap.
    • Игра Cube World использует воксельную графику для создания случайно генерируемого игрового мира, моделей игроков и NPC.
    • Игра Trove использует воксельный движок, написанный на C++.

    См. также

    Напишите отзыв о статье «Воксел»

    Примечания

    1. [science.compulenta.ru/391937/ Объемные дисплеи: очередной шаг к массовому производству] Компьюлента, 24.12.2008.
    2. [www.osp.ru/cw/2002/28-29/54537/ Истинно объемное изображение.] Computerworld Россия, 06.08.2002
    3. [voxelstein3d.sourceforge.net/ Сайт Voxelstein 3D]

    Ссылки

    • [www.cs.sunysb.edu/

    vislab/projects/volume/Papers/Voxel/index.html Fundamentals of Voxelization] (англ.) . IEEE Computer, Vol. 26, No. 7 (июль 1993 года). Проверено 9 июля 2010.[www.webcitation.org/65XTHidqM Архивировано из первоисточника 18 февраля 2012].

  • Дмитрий Чеканов. [www.thg.ru/graphic/voxel_ray_casting/onepage.html Рендеринг с помощью вокселей: новый уровень графики в играх?] 3. Tom’s Hardware (30 октября 2009 года). — Статья, описывающая вокселы, октодеревья, рейкастинг, их перспективы и ограничения. Проверено 6 февраля 2010.[www.webcitation.org/65XTIBJtu Архивировано из первоисточника 18 февраля 2012].
  • Рони Ягель Кафедра информатики, Университет шт. Огайо, США. [www.osp.ru/os/1996/05/178968/ Рендеринг объемов в реальном времени]. Открытыe системы (издательство) (16 мая 1996 года). Проверено 11 февраля 2010.[www.webcitation.org/65XTLmYBF Архивировано из первоисточника 18 февраля 2012].
  • Рони Ягель Кафедра информатики, Университет шт. Огайо, США. [www.osp.ru/os/1996/05/178971/ Аппаратный рендеринг объема]. Открытыe системы (издательство) (16 мая 1996 года). Проверено 11 февраля 2010.[www.webcitation.org/65XTNNZhx Архивировано из первоисточника 18 февраля 2012].
    • [www.gamedev.ru/code/terms/Voxel Voxel (Воксель)]. GameDev.ru (23 марта 2007 года). Проверено 9 июля 2010.[www.webcitation.org/65XTOmS8U Архивировано из первоисточника 18 февраля 2012].
    • Сергей Книгин. [www.really.ru/index.php?option=com_content&view=article& >
    • hitan. [www.codenet.ru/progr/video/voxel/index.php Воксели (Voxel)] 3. CodeNet.ru (7 марта 2009 года). Проверено 10 июля 2010.[www.webcitation.org/65XTPWQuL Архивировано из первоисточника 18 февраля 2012].
    • [www.jonof. >(англ.) . jonof.id.au (14 марта 2009 года). Проверено 10 июля 2010.[www.webcitation.org/65XTQKPxT Архивировано из первоисточника 18 февраля 2012].

    Отрывок, характеризующий Воксел

    – В генералы и матушку произвели? – сказал князь Aндрей улыбаясь.
    Пелагеюшка вдруг побледнела и всплеснула руками.
    – Отец, отец, грех тебе, у тебя сын! – заговорила она, из бледности вдруг переходя в яркую краску.
    – Отец, что ты сказал такое, Бог тебя прости. – Она перекрестилась. – Господи, прости его. Матушка, что ж это?… – обратилась она к княжне Марье. Она встала и чуть не плача стала собирать свою сумочку. Ей, видно, было и страшно, и стыдно, что она пользовалась благодеяниями в доме, где могли говорить это, и жалко, что надо было теперь лишиться благодеяний этого дома.
    – Ну что вам за охота? – сказала княжна Марья. – Зачем вы пришли ко мне?…
    – Нет, ведь я шучу, Пелагеюшка, – сказал Пьер. – Princesse, ma parole, je n’ai pas voulu l’offenser, [Княжна, я право, не хотел обидеть ее,] я так только. Ты не думай, я пошутил, – говорил он, робко улыбаясь и желая загладить свою вину. – Ведь это я, а он так, пошутил только.
    Пелагеюшка остановилась недоверчиво, но в лице Пьера была такая искренность раскаяния, и князь Андрей так кротко смотрел то на Пелагеюшку, то на Пьера, что она понемногу успокоилась.

    Странница успокоилась и, наведенная опять на разговор, долго потом рассказывала про отца Амфилохия, который был такой святой жизни, что от ручки его ладоном пахло, и о том, как знакомые ей монахи в последнее ее странствие в Киев дали ей ключи от пещер, и как она, взяв с собой сухарики, двое суток провела в пещерах с угодниками. «Помолюсь одному, почитаю, пойду к другому. Сосну, опять пойду приложусь; и такая, матушка, тишина, благодать такая, что и на свет Божий выходить не хочется».
    Пьер внимательно и серьезно слушал ее. Князь Андрей вышел из комнаты. И вслед за ним, оставив божьих людей допивать чай, княжна Марья повела Пьера в гостиную.
    – Вы очень добры, – сказала она ему.
    – Ах, я право не думал оскорбить ее, я так понимаю и высоко ценю эти чувства!
    Княжна Марья молча посмотрела на него и нежно улыбнулась. – Ведь я вас давно знаю и люблю как брата, – сказала она. – Как вы нашли Андрея? – спросила она поспешно, не давая ему времени сказать что нибудь в ответ на ее ласковые слова. – Он очень беспокоит меня. Здоровье его зимой лучше, но прошлой весной рана открылась, и доктор сказал, что он должен ехать лечиться. И нравственно я очень боюсь за него. Он не такой характер как мы, женщины, чтобы выстрадать и выплакать свое горе. Он внутри себя носит его. Нынче он весел и оживлен; но это ваш приезд так подействовал на него: он редко бывает таким. Ежели бы вы могли уговорить его поехать за границу! Ему нужна деятельность, а эта ровная, тихая жизнь губит его. Другие не замечают, а я вижу.
    В 10 м часу официанты бросились к крыльцу, заслышав бубенчики подъезжавшего экипажа старого князя. Князь Андрей с Пьером тоже вышли на крыльцо.
    – Это кто? – спросил старый князь, вылезая из кареты и угадав Пьера.
    – AI очень рад! целуй, – сказал он, узнав, кто был незнакомый молодой человек.
    Старый князь был в хорошем духе и обласкал Пьера.
    Перед ужином князь Андрей, вернувшись назад в кабинет отца, застал старого князя в горячем споре с Пьером.
    Пьер доказывал, что придет время, когда не будет больше войны. Старый князь, подтрунивая, но не сердясь, оспаривал его.
    – Кровь из жил выпусти, воды налей, тогда войны не будет. Бабьи бредни, бабьи бредни, – проговорил он, но всё таки ласково потрепал Пьера по плечу, и подошел к столу, у которого князь Андрей, видимо не желая вступать в разговор, перебирал бумаги, привезенные князем из города. Старый князь подошел к нему и стал говорить о делах.
    – Предводитель, Ростов граф, половины людей не доставил. Приехал в город, вздумал на обед звать, – я ему такой обед задал… А вот просмотри эту… Ну, брат, – обратился князь Николай Андреич к сыну, хлопая по плечу Пьера, – молодец твой приятель, я его полюбил! Разжигает меня. Другой и умные речи говорит, а слушать не хочется, а он и врет да разжигает меня старика. Ну идите, идите, – сказал он, – может быть приду, за ужином вашим посижу. Опять поспорю. Мою дуру, княжну Марью полюби, – прокричал он Пьеру из двери.
    Пьер теперь только, в свой приезд в Лысые Горы, оценил всю силу и прелесть своей дружбы с князем Андреем. Эта прелесть выразилась не столько в его отношениях с ним самим, сколько в отношениях со всеми родными и домашними. Пьер с старым, суровым князем и с кроткой и робкой княжной Марьей, несмотря на то, что он их почти не знал, чувствовал себя сразу старым другом. Они все уже любили его. Не только княжна Марья, подкупленная его кроткими отношениями к странницам, самым лучистым взглядом смотрела на него; но маленький, годовой князь Николай, как звал дед, улыбнулся Пьеру и пошел к нему на руки. Михаил Иваныч, m lle Bourienne с радостными улыбками смотрели на него, когда он разговаривал с старым князем.
    Старый князь вышел ужинать: это было очевидно для Пьера. Он был с ним оба дня его пребывания в Лысых Горах чрезвычайно ласков, и велел ему приезжать к себе.
    Когда Пьер уехал и сошлись вместе все члены семьи, его стали судить, как это всегда бывает после отъезда нового человека и, как это редко бывает, все говорили про него одно хорошее.

    Возвратившись в этот раз из отпуска, Ростов в первый раз почувствовал и узнал, до какой степени сильна была его связь с Денисовым и со всем полком.
    Когда Ростов подъезжал к полку, он испытывал чувство подобное тому, которое он испытывал, подъезжая к Поварскому дому. Когда он увидал первого гусара в расстегнутом мундире своего полка, когда он узнал рыжего Дементьева, увидал коновязи рыжих лошадей, когда Лаврушка радостно закричал своему барину: «Граф приехал!» и лохматый Денисов, спавший на постели, выбежал из землянки, обнял его, и офицеры сошлись к приезжему, – Ростов испытывал такое же чувство, как когда его обнимала мать, отец и сестры, и слезы радости, подступившие ему к горлу, помешали ему говорить. Полк был тоже дом, и дом неизменно милый и дорогой, как и дом родительский.
    Явившись к полковому командиру, получив назначение в прежний эскадрон, сходивши на дежурство и на фуражировку, войдя во все маленькие интересы полка и почувствовав себя лишенным свободы и закованным в одну узкую неизменную рамку, Ростов испытал то же успокоение, ту же опору и то же сознание того, что он здесь дома, на своем месте, которые он чувствовал и под родительским кровом. Не было этой всей безурядицы вольного света, в котором он не находил себе места и ошибался в выборах; не было Сони, с которой надо было или не надо было объясняться. Не было возможности ехать туда или не ехать туда; не было этих 24 часов суток, которые столькими различными способами можно было употребить; не было этого бесчисленного множества людей, из которых никто не был ближе, никто не был дальше; не было этих неясных и неопределенных денежных отношений с отцом, не было напоминания об ужасном проигрыше Долохову! Тут в полку всё было ясно и просто. Весь мир был разделен на два неровные отдела. Один – наш Павлоградский полк, и другой – всё остальное. И до этого остального не было никакого дела. В полку всё было известно: кто был поручик, кто ротмистр, кто хороший, кто дурной человек, и главное, – товарищ. Маркитант верит в долг, жалованье получается в треть; выдумывать и выбирать нечего, только не делай ничего такого, что считается дурным в Павлоградском полку; а пошлют, делай то, что ясно и отчетливо, определено и приказано: и всё будет хорошо.
    Вступив снова в эти определенные условия полковой жизни, Ростов испытал радость и успокоение, подобные тем, которые чувствует усталый человек, ложась на отдых. Тем отраднее была в эту кампанию эта полковая жизнь Ростову, что он, после проигрыша Долохову (поступка, которого он, несмотря на все утешения родных, не мог простить себе), решился служить не как прежде, а чтобы загладить свою вину, служить хорошо и быть вполне отличным товарищем и офицером, т. е. прекрасным человеком, что представлялось столь трудным в миру, а в полку столь возможным.
    Ростов, со времени своего проигрыша, решил, что он в пять лет заплатит этот долг родителям. Ему посылалось по 10 ти тысяч в год, теперь же он решился брать только две, а остальные предоставлять родителям для уплаты долга.

    Армия наша после неоднократных отступлений, наступлений и сражений при Пултуске, при Прейсиш Эйлау, сосредоточивалась около Бартенштейна. Ожидали приезда государя к армии и начала новой кампании.
    Павлоградский полк, находившийся в той части армии, которая была в походе 1805 года, укомплектовываясь в России, опоздал к первым действиям кампании. Он не был ни под Пултуском, ни под Прейсиш Эйлау и во второй половине кампании, присоединившись к действующей армии, был причислен к отряду Платова.
    Отряд Платова действовал независимо от армии. Несколько раз павлоградцы были частями в перестрелках с неприятелем, захватили пленных и однажды отбили даже экипажи маршала Удино. В апреле месяце павлоградцы несколько недель простояли около разоренной до тла немецкой пустой деревни, не трогаясь с места.
    Была ростепель, грязь, холод, реки взломало, дороги сделались непроездны; по нескольку дней не выдавали ни лошадям ни людям провианта. Так как подвоз сделался невозможен, то люди рассыпались по заброшенным пустынным деревням отыскивать картофель, но уже и того находили мало. Всё было съедено, и все жители разбежались; те, которые оставались, были хуже нищих, и отнимать у них уж было нечего, и даже мало – жалостливые солдаты часто вместо того, чтобы пользоваться от них, отдавали им свое последнее.
    Павлоградский полк в делах потерял только двух раненых; но от голоду и болезней потерял почти половину людей. В госпиталях умирали так верно, что солдаты, больные лихорадкой и опухолью, происходившими от дурной пищи, предпочитали нести службу, через силу волоча ноги во фронте, чем отправляться в больницы. С открытием весны солдаты стали находить показывавшееся из земли растение, похожее на спаржу, которое они называли почему то машкин сладкий корень, и рассыпались по лугам и полям, отыскивая этот машкин сладкий корень (который был очень горек), саблями выкапывали его и ели, несмотря на приказания не есть этого вредного растения.
    Весною между солдатами открылась новая болезнь, опухоль рук, ног и лица, причину которой медики полагали в употреблении этого корня. Но несмотря на запрещение, павлоградские солдаты эскадрона Денисова ели преимущественно машкин сладкий корень, потому что уже вторую неделю растягивали последние сухари, выдавали только по полфунта на человека, а картофель в последнюю посылку привезли мерзлый и проросший. Лошади питались тоже вторую неделю соломенными крышами с домов, были безобразно худы и покрыты еще зимнею, клоками сбившеюся шерстью.

    Voxel artists

    Here’s a quick selection of voxel artists and friends from the voxel community on Twitter. This is by no way a hall of fame, since I don’t know half of this ever-growing community and more artists are coming everyday. Go check their work and say hi, those are talented people and they don’t bite (except one, be careful).

    Ex Machina

    2D/3D art director

    Sir Carma

    Seeing life in voxels.

    Ingen
    HuntingFluff

    Plays with pencils, paints, pixels, voxels and polygons.

    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL