Открыта запись на курс Vehicles and Props Старт обучения 28 ноября 2024 Преимущества курса: - разбор домашних работ только автором курса; - справедливые фидбеки каждую неделю; - помощь в выполнении тестового задания при трудоустройстве; - рекомендации в топовые студии в РФ при успешном прохождении курса.
Voxel (воксельная графика)

Что такое воксельная графика

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

Построение воксельной модели происходит не путем «обволакивания» пустоты двухмерными полигонами, как мы делаем это в привычном полигональном 3D моделировании. Оно происходит посредством построения его из «кирпичей» - вокселей. Это делает 3D модель «наполненной» - у неё есть внутреннее содержимое.

Например воксельное яблоко можно разрезать под любым углом и в любом месте, и увидеть на срезе его «наполнение». Полигональное яблоко будет просто «оберткой», которая не имеет внутреннего объема.

Также это сравнимо с растровой графикой, в которой построение конечного объекта происходит при помощи точек, содержащих в себе информацию о цвете - пикселей.

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

CGITEMS_pixel_vovel.png Если пиксель (pixel) является составным термином из слов «картина» и «элемент» (picture, element), то воксель является слиянием слов «объём» и «пиксель» (volume, pixel) CGITEMS_ voxel_1.png Пример того, как сильно отличается принцип построения полигональной и воксельной 3D моделей

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

История появления воксельной графики

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

В 1963 году американский физик Аллан Кормак повторно (но отличным от Радона способом) решил задачу томографического восстановления, а в 1969 году английский инженер-физик Годфри Хаунсфилд сконструировал «ЭМИ-сканер» - первый компьютерный рентгеновский томограф.

Вся их работа была направлена на то, чтобы добиться качественной визуализации человеческого тела и отдельных органов. Ряд медицинских устройств, например, КТ, УЗИ, МРТ, выдают изображения с большого количества рентгеновских и ультразвуковых снимков под разными углами. После они сканируются и, на их основе, создается трехмерный массив плотностей различных участков тканей исследуемого органа. Этот массив представляет собой объемное изображение элементом которого является воксель. CGITEMS_ voxel_2.png Рентгеновские лучи и ультразвук помогают получить информацию о плотности, прозрачности частиц, их положении и высотах. Математические алгоритмы на основе этих данных позволяют сформировать воксельную модель - массив «кирпичей» на основе которых происходит визуализация, например, человеческого мозга. По сути это «выращивание» 3D модели из 2D среза

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

Применение воксельной графики в играх, краткий разбор технологий

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

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

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

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

CGITEMS_ voxel_3.jpg Крайне схематичный, но в тоже время наглядный пример того, как вода реализована при помощи вокселей и является полноценными частицами, а не сугубо визуальной симуляцией. Дождь падает реальными каплями, водопад течет настоящим потоком Представьте себе что таких кубиков десятки тысяч, а их размеры в сотни раз меньше. Получится вполне реалистичная вода, от которой ваш процессор расплавится, либо попросит добить его и избавить от мучений. CGITEMS_ voxel_4.png Пример классического способа реализации воды - плоскость, на которой имитируется поверхность воды, блики, волны и тд. С одной стороны дешевой и сердито, а с другой стороны это оптимизированный способ, посредством которого талантливые программисты выдают впечатляющие результаты не настолько требовательные к вычислительному ресурсу.

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

CGITEMS_ voxel_5.png

Начало применения воксельной графики в играх

Яркий пример первой (либо одной из первых популярных игр) это Comanche: Maximum Overkill, от студии NovaLogic, которая была выпущена в 1992 году.

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

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

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

У каждой точки ландшафта была фиксированная высота, на основе которой производился рендер окружения. Все остальные объекты игры были стандартными полигональными моделями. По сути все данные о ландшафте уже заранее были заложены и прописаны в картах, а грамотно прописанные алгоритмы позволяли отображать его в реальном времени без потерь ресурса оборудования. Помним как по рентгеновским снимкам моделируется воксельный мозг, да?

CGITEMS_ voxel_7.png Поле (карта) высот (heightmap) — двумерный массив, каждый элемент которого интерпретируется как высота. Часто используются в программах для создания ландшафтов (движках), чтобы хранить информацию о высоте каждой точки местности. Слева можно увидеть пример такой карты, справа результат, который она может дать после интерпретации.

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

К сожалению, в силу почтенного возраста далеко не обо всех этих играх можно найти детальную техническую информацию. Но суть остается одна - эта технология востребована достаточно давно, разработчики так или иначе пытались применить её в своих играх и нередко делали это вполне успешно.
К слову, даже Джон Кармак (ID software) приложил к этому руку в конце 90х, и между разработкой Quake 1/2 и Quake 3 провел ряд исследований. Но также пришел к тому, что железо пока отстает от полета мысли разработчиков. Как бы то ни было, начало было положено и воксельная графика начала применяться в производстве игр.

CGITEMS_ voxel_8.png CGITEMS_ voxel_9.png CGITEMS_ voxel_10.png CGITEMS_ voxel_11.png

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

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

В частности в Vangers миры были спроектированы студией K-D Lab с помощью собственного редактора ландшафта - Surmap ART, и сопутствующей технологии воксельно-полигонального моделирования.
Объекты мира были разрушаемы, т.е. колеса автомобиля и другие удары оставляли следы на земле. Скриптовые условные процессы были настроены так, чтобы воздействовать на ландшафт. Игрок мог либо сохранить все изменения ландшафта на жестком диске, либо отменить изменения при каждом запуске игры. И все это в 1998 году.

CGITEMS_Cat.jpg

Самое время перенестись на пару десятков лет вперед и рассмотреть пару-тройку примеров из нынешнего периода развития геймдева.

Применение воксельной графики в современных играх

Нельзя просто взять и пройти мимо одного из самых крупных и известных проектов, основанных на воксельной графике и процедурной генерации - No man’s sky.

Она была разработана и выпущена британской инди-студией Hello Games в 2016 году. Не будем вдаваться в детали старта игры на релизе - она вызвала неоднозначную реакцию, но мы говорим о технологиях. А технологий там накручено щедро и со вкусом.

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

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

В одном из интервью глава Hello Games, рассказал, что до презентации игры разработка велась на протяжении года всего четырьмя людьми «за закрытыми дверьми» в буквальном смысле: они работали в небольшом помещении с отдельным входом и никто из остальных разработчиков студии не знал, чем они занимаются.

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

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

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

Неплохо звучит, не так ли? Давайте на минуту задумаемся и сравним - с одной стороны был несколько смазанный запуск игры и несколько лет доводки, а с другой стороны очевидный скачок технологий всего за 30 лет.

CGITEMS_ voxel_12.png В целях сравнения - скриншоты из No man’s sky и Comanche: Maximum Overkill. Комментарии, как говорится, излишни

Очень занятный пример, это игра Teardown 2020 года от студии Tuxedo Labs. Её фишка заключается в том, что здесь принцип воксельной графики использован по полной - полностью разрушаемые воксельные локации и большой простор для действий игрока.

Эта игра является как раз тем случаем, когда вычислительные мощности позволили выжать из воксельной графики саму её суть - создать мир из отдельных «кирпичей» и разрушить его до основания пользуясь тем, что у каждого объекта в ней есть внутренняя структура, а не просто полигональная оболочка.

CGITEMS_ voxel_13.png Несмотря на «пиксельность» графики эта игра выглядит очень неплохо, а сама «пиксельность» это уже не минус игры, а её достоинство, так как каждый этот пиксел является отдельной самостоятельной частицей. Представьте себе, что таких пикселов может стать в 10-50-100 раз больше уже в обозримом будущем. Заманчиво, неправда ли?

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

Игровой мир, состоящий из расставленных в фиксированном порядке кубов, практически не имеет ограничений в пространстве и делится на различные биомы, у каждого из которых есть свои климатические условия и объекты. Помним как было с Comanche? Здесь используется в целом та же логика. Хотя конечный рендер все равно полигональный. Но принципы и формулы генерации мира, а так же хранения информации о нем являются воксельными.

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

minecraft.jpg Minecraft

Ну и напоследок коснемся еще одного современного проекта, в котором используется принцип воксельной графики при создании ландшафтов.

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

Можно сказать, что это нечто среднее между No man’s sky и Minecraft. С одной стороны здесь реализована полностью разрушаемая природная среда, которая имеет внутреннее наполнение, с другой стороны это просто инструмент, на базе которого развернут мощный симулятор инженера, под капотом у которого есть даже возможность программирования устройств и блоков, которые вы создаете.

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

CGITEMS_ voxel_14.png Space Engineers

Какой из этого можно сделать вывод?

Технология, намек на которую появился в начале 19го века прошла путь от медицинской сферы, через простенький (по нынешним меркам) военный симулятор, до огромных многофункциональных игр-конструкторов с громадным потенциалом и современной графикой. И все это (в разрезе игр) всего за каких то 30 лет. Что будет дальше? Кто знает. Перспективы очень впечатляющие несмотря на всю специфичность технологии.

CGITEMS_ voxel_14.jpg А казалось бы, хотел очередной красивенький домик нарисовать и лайков десяток собрать, да?

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

Обзор редакторов, позволяющих работать с воксельной графикой

3D Coat

Во-первых, стоит присмотреться к редактору под названием 3D-coat.

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

Помните пример про яблоко, которое можно разрезать в любом месте и увидеть что внутри?

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

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

CGITEMS_ voxel_15.png 3D coat

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

MagicaVoxel

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

CGITEMS_ voxel_16.jpg MagicaVoxel

Qubicle

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

CGITEMS_ voxel_17.jpg Qubicle

Voxel Max

Суть та же, с одним отличием - этот редактор доступен только для iOS и поддерживает работу пером.

CGITEMS_ voxel_18.jpg Voxel Max

На этом, пожалуй, можно завершить весьма обширный экскурс в мир воксельной графики.

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

Надеемся, что эта информация пригодится вам, заставит задуматься, или, что еще лучше - вдохновит и подтолкнет к изучению чего-то нового. Удачи в начинаниях!

геймдев.png
Ваша заявка отправлена!
Если во входящих на почте: нет письма, проверьте папку спам или напишите нам в телеграм