Что такое Воксели

Сегодня поговорим с вами о вокселях. Это прошлое или будущее видеоигр? Затронем сразу несколько вопросов. В первой части обсудим определения, саму технологию и её прошлое. Во второй части поговорим о настоящем: рассмотрим воксели в игрострое и их место в ИТ. Поговорим о будущем технологии и её применении и почему производители железа были не правы. И все вообще не правы, ну как обычно.

Воксели это аналоги двумерных пикселей для трёхмерного пространства. Можно их представить как некие «кубические атомы» в виртуальном мире. И да, Майнкрафт лишь частично про воксели, и только в части построения карт ландшафта, в реальности он построен из полигонов. А полигоны пусты внутри. Воксель не таков. Это истинный кирпичик для построения в 3D. Эта технология создания объектов позволяет получать достоверно построенную модель. В отличии от той технологии, под которую у нас сейчас заточены все видеокарты. Воксельные модели часто используются для визуализации и анализа медицинской и научной информации. В Майнкрафт рубишься — дорога в медицину тебе открыта. Не стример игОр — а ДОКТОР!

Часть первая: Воксели моего детства

Мое знакомство с вокселями состоялось очень давно. В то время я даже не догадывался что это они и есть. Меня просто завораживала одна демосцена на компьютере моей тети. Это был пролет над Марсом. Компьютер этот был экспроприирован с её работы для написания какой-то курсовой по экономике. Но это как раз и стал поворотный момент в моей жизни. Эта демосцена просто гипнотизировала. Это полноценное 3D всего в 4 Кб, да именно 4 килобайта! Притом что запускалась она из-под DOS… да уж. Только что ты смотрел на интерфейс состоящий из строчек на экране, а вот ты паришь над Марсом. Кстати, если хотите видео про культуру демосцен, то напишите комментарий и обязательно подпишитесь.

Но и эта демка с Марсом оказалось не первым моим касанием с этой технологией. Мой отец очень любил все новое. Так вот у нас появился очень странный агрегат, с очень странными играми на кассетах, да обычных таких аудиокассетах. И как впоследствии я узнал, вот эта игра Comanche/Каманчи боевые вертолеты и Blood 1997 года, которую я называл дядька с вилами тыкает в демонов, тоже используют воксели, а не полигоны. В Comanche использовался собственный движок Voxel Space, полностью написанный на ассемблере. Воксельная технология в Comanche позволяла отображать просто комически детализированные и реалистичные ландшафты по сравнению с векторной графикой того времени. А были еще и русские Вангеры, но я как-то их не зацепил. Говорят культовая штука.

Часть вторая: Воксель как кирпичик игростроя

Да. Давайте проясним в чем принципиальная разница. Есть два основных способа представления компьютерной графики: векторный и растровый. Векторная графика описывает изображение с помощью математических формул, обычно с помощью таких вещей как прямые, кривые и различные геометрические формы. Растровая графика представляет изображение как массив цветных точек, расположенных друг за другом по сетке. Так вот сейчас принято строить наши игровые миры из двумерных полигонов (де факто стандарт — треугольники), так как это упрощает рендеринг (отрисовку картинки), под это заточено все наше железо, ну и под майнинг битков тоже…

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

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

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

Как же дело обстоит с вокселями. Немного про ray casting («бросание лучей»). Луч направляется прямо в трёхмерное пространство, и летит, пока не наткнётся на воксель. На практике в пространство «бросается» столько лучей, сколько надо, чтобы покрыть все необходимые точки. Впервые эта техника была использована в игре Wolfenstein 3D. В ней комнаты целиком состояли из вокселей. Рендеринг работал довольно быстро, потому что один луч отображал целую колонку пикселей на экране. Результат, по сути, получался двумерным, поэтому такую 3D-графику иногда называют 2.5D (потому что третье измерение вроде как не настоящее).

Сейчас Wolfenstein обычно не называют воксельной игрой, но именно она дала толчок к развитию воксельных движков девяностых.

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

Карта высот (слева) показывает насколько высоко поднимаются колонки вокселей (чёрный – низкие колонки, белый — высокие).

Ray casting был не единственной технологией воксельного рендеринга в девяностых. Существовали и другие. Каждая с собственными сильными сторонами: разрушаемое окружение, поддержка обработки моделей машин и персонажей и так далее. Это было что-то невероятное! Но, что иронично, именно такое разнообразие в итоге и привело к закату технологии. В 2000 году началась эпоха графических карт, они отлично справлялись с обработкой 3D-полигонов. И делали это очень быстро, но больше ничего не умели. К несчастью, различные алгоритмы рендеринга вокселей (включая ray casting) остались за бортом. (Примечание, это мысль от: художника Матеуш Retro Ян из его статьи для издания Retronator Magazine).

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

Текстуры — двумерные растровые изображения, размещённые на трёхмерном полигоне.

Если не вдаваться в подробности, то именно так и работает трёхмерная графика.

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

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

Вот из последнего появился Voxelplugin для Unreal Engine — воксельный плагин для движка Unreal. Только посмотрите что можно с помощью него уже сейчас делать. Да немного местами сыровато, но есть куда расти. А чего стоит игра Teardown — это игра в жанрах экшен, стратегии, и странного симулятора, как раз на основе воксельной природы. Сложность тут как раз в гейм-дизайне: когда у вас все разрушаемо, нужно очень тонко прорабатывать опыт игрока. Короче, сложненько в плане игростороя, но интересно. Появились и отдельные игровые движки на данной технологии. Ну и воксельный арт и модели для этих игровых движков, чаще всего генерируют с помощью бесплатной программы MagicaVoxel. Инструментарий все возрастает.

Компания Euclideon продемонстрировала современный движок вокселей со средой, созданной на основе 3D-сканирования реальных мест:

источник

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

4 комментария

  1. Отличная статья про Воксели, реально наконец-то понял что такое эти воксели такое))) И за программу отдельное спасибо!

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

четырнадцать − 5 =