Объемный пиксель: Чем пиксели отличаются от вокселей, и как в современных играх создают графику ретро-стиля — Gamedev на DTF

Чем пиксели отличаются от вокселей, и как в современных играх создают графику ретро-стиля — Gamedev на DTF

Художник Матеуш Retro Ян, рисующий в стиле пиксель-арт, написал для издания Retronator Magazine статью, в которой попытался ответить на вопрос, в чём разница между пикселями и вокселями, но при этом рассказал намного больше.

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

Редакция DTF публикует перевод материала.

Предупреждение: в тексте много картинок и GIF-анимаций, поэтому он может долго прогружаться. Особенно с мобильных устройств.

58 250
просмотров

Ранее в этом году мне задали такой вопрос: в чём разница между пикселями и вокселями?

Иногда бывает сложно удержаться, поэтому вместо прямого ответа я написал по этому поводу целую статью.

Вопрос вполне логичен. Общество вываливает на вас что-то вроде постера к фильму «Пиксели», и вы не понимаете, что происходит. Это вот пиксели? Или это воксели? Это птица? Самолёт? Никто вам ничего не объясняет.

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

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

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

Математическая точность векторной графики (слева) против дискретной природы растровой (справа).

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

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

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

Все любят таблицы

Векторная графика

В двумерной векторной графике каждая точка на линии или фигуре описывается вектором с двумя составляющими (x и y). В общем, именно поэтому двумерная графика так и называется.

Именно так двухмерная векторная графика строит изображение с помощью двухмерных векторов.

А вот пример низкополигонального двухмерного векторного изображения.

Uluru the Mighty Dreamer, Автор: Эн Тран

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

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

Концепт игры Racetrack для iOS, Автор: Тимоти Рейнольдс

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

Чтобы отобразить трек на вашем экране (то есть на двумерной поверхности), мы выбрали несколько углов и отобразили трёхмерную геометрию на плоском изображении.

Преображение из 3D в 2D называется проекцией.

Так и получается двумерное изображение.

Но есть одна хитрость, позволяющая показать трёхмерную геометрию в 2D. Просто измените угол угол обзора или повращайте объект.

Машинка. Автор: Тимоти Рейнольдс

Да, действительно, перед нами трёхмерный объект. И даже очки не нужны!

Растровая графика

Так, немного разогрелись. Теперь разберёмся с тем, как растровая графика работает в 3D и 2D.

Растровое двумерное изображение представляется массивом с определённым количеством столбцов и строк.

Спрайт Turbo Esprit, Автор: Матеуш ‘Retro’ Ян

Каждая клетка в таком массиве называется пикселем (от слов picture element — pixel). Помимо его координат в массиве пиксель определяется цветом.

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

Пиксель-арт, Матеуш «Retro» Ян

На двумерной пиксельной сетке можно изобразить трёхмерные объекты вроде автомобиля Lotus Esprit или X-Wing из «Звездных войн», но для изображения они не трёхмерны. Их нельзя покрутить и рассмотреть с разных сторон, как гоночный трек или машинку. Точно так же мы не можем вертеть рисунок Улуру — изображение состоит из полигонов, но они располагаются не в трёхмерном пространстве, а в двумерном.

Итак, мы поговорили о двумерной и трехмерной векторной графике и 2D-растровой графике. Не хватает только 3D-растровой графики.

Вот сейчас будет круто!

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

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

Звёздные войны, Sir Carma

Похоже на LEGO, не правда ли?

Так как теперь мы смотрим на трёхмерное изображение, сцену можно рассмотреть с разных сторон. Вот так выглядит воксельный Татуин под другим углом:

Звёздные воины, Sir Carma

Можно даже делать анимации. Вот это, например, анимированный воксельный персонаж от Sir Carma:

Бегущий рыцарь, Автор: Sir Carma

Сравните его с двумерным пиксельным персонажем:

Спрайт из Final Element, Glauber Kotaki

То есть в воксельном изображении анимация изменяет цвет (или расположение) определённых маленьких кубов, а в пиксельном — меняется цвет квадратов-пикселей.

Теперь вам известна разница между пикселями и вокселями (и много чего ещё… прошу прощения).

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

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

«Я что, могу превращать воксели и трёхмерные модели в пиксель-арт?» — спросите вы. Именно так. С помощью особых техник рендеринга и шейдинга можно создавать совершенно уникальный пиксель-арт.

Векторные дисплеи и проекция

Схема наверху отображает не совсем полную картину. Двумерное векторное изображение можно отображать и сразу, без преобразований. Но всё не так просто.

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

Вот как оно бы выглядело на осциллографе.

Игра Space Rocks

Похожим образом иногда отображается трёхмерное векторное изображение.

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

Настоятельно рекомендую глянуть трейлер аркадной игры VEC9:

Растрирование

В наши дни вы вряд ли найдёте векторный монитор где-нибудь за пределами музея. Люди используют мониторы, на которых отрисовываются… пиксели!

RGB матрица

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

Фосфорные точки на ЭЛТ дисплее

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

Растрирование с помощью технологии сэмплинга

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

Star Fox, Nintendo

Триангуляция

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

Лучшая 3D модель в мире, Матеуш ‘Retro’ Ян

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

Крутящийся куб

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

Ray casting

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

Обратный подход называется ray casting («бросание лучей»). Луч направляется прямо в трёхмерное пространство, и летит, пока не наткнётся на воксель. На практике в пространство «бросается» столько лучей, сколько надо, чтобы покрыть все необходимые точки.

Простой вариант рейкастинга с коррекцией

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

Wolfenstein 3D, id Software

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

Comanche: Maximum Overkill, NovaLogic

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

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

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

Конец вокселей

Ray casting был не единственной технологией воксельного рендеринга в девяностых. Существовали и другие. Каждая с собственными сильными сторонами: разрушаемое окружение, поддержка обработки моделей машин и персонажей и так далее. Это было что-то невероятное! Но, что иронично, именно такое разнообразие в итоге и привело к закату технологии.

Vangers, K-D Lab

В 2000 году началась эпоха графических карт или графических процессоров. Специальные встроенные в компьютер устройства, которые сейчас называются GPU, отлично справлялись с обработкой 3D-полигонов. Они делали это очень быстро, но больше ничего не умели. К несчастью, различные алгоритмы рендеринга вокселей (включая ray casting) остались за бортом.

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

С тех пор прошло 10 лет, и вдруг воксели вернулись. Помощь пришла с неожиданной стороны. Появилась игра, которая нашла к вокселям совершенно новый подход. Воксель – это куб, верно? И теперь эти кубы уже могли спокойно обрабатываться видеокартой. А дальше вы и сами всё знаете.

Minecraft пришёл и всех победил

Определение

Давайте вспомним всё, о чём я рассказал, и попытаемся ответить на вопрос, с которого всё началось. Что же такое пиксели и что такое воксели?

Пиксель — мельчайший элемент двумерного пространства, разделённого дискретно на множество равных частей.

Каждый пиксель определяется вектором с двумя целыми числами X и Y. Именно поэтому пиксельное пространство дискретно, в то время как в векторной графике координаты определяются вещественными числами.

Соответственно, воксель — мельчайший элемент трёхмерного дискретного пространства, где все элементы имеют одинаковый размер.

Вот так вот.

Ну что, на этом всё? А вот и нет!

Как видите, определение довольно общее, а потому пиксели и воксели могут быть очень разными. Давайте попробуем соединить все четыре элемента таблицы вместе: растровое/векторное, а также 2D/3D.

Чистая 2D-графика

В прежние времена для отображения 2D-спрайта на экране приходилось напрямую копировать биты из памяти, в которой хранились цвета спрайта, в память, хранящую данные об отображенных на экране цветах. Эта технология называется bit blit или bit BLT — bit block transfer (перенос блоков битов). Сейчас почти никто не рендерит двухмерную графику именно так.

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

PICO-8, Lexallofle Games (а также авторы показанных игр)

Текстуры в 3D-графике

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

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

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

Вот, например, как выглядит высокополигональная 3D-модель без текстуры и с текстурой высокого разрешения:

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

Вот низкополигональная трёхмерная модель с качественной текстурой:

Низкополигональная модель, Mark Henriksen

А если взять текстуру с низким разрешением, то получится приятная на вид низкополигональная модель с текстурами в стиле пиксель-арт:

Drift Stage

Снова можно вспомнить Minecraft. Её блоки — воксели по определению (мельчайшие дискретные элементы игры), и по сторонам они покрыты пиксельными текстурами. Однако, обратите внимание, что не все блоки в игре — простые кубы.

Minecraft, Mojang

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

Mirror’s Edge (слева-сверху), Max Payne (слева-снизу) и Minecraft (справа-снизу)

Текстуры в 2D-графике

А теперь разберёмся с 2D. Если натянуть текстуру на плоский прямоугольник, мы получим современную 2D-графику. На современном железе каждое 2D-изображение (чаще всего в данном контексте мы называем его спрайтом) отображается на прямоугольнике, состоящем из двух треугольников. Два треугольника (их пара называется квадом) рендерятся с натянутым на них спрайтом. И так изображение оказывается на своём месте.

Элементы персонажа

С изображениями высокого разрешения всё понятно.

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

Braid (слева-сверху), Path to the Sky (справа-сверху), Kingdom (снизу-справа)

Мы уже знаем, что пиксельные текстуры без проблем наносятся на трёхмерные низкополигональные модели даже на экранах с большим разрешением. Снова подумайте о Minecraft. Ведь низкополигональные кубы всё равно рендерятся на дисплеях с разрешением 1920×1080.

Minecraft, Mojang

То же самое можно сделать и с полигонами на плоскости. Возможно взять пиксель-арт, нацепить его на 2D-квад и отреднерить результат на мониторе с высоким разрешением. Тогда каждый пиксель на исходном изображении окрасит несколько пикселей на дисплее в определённый цвет.

Hotline Miami, Dennaton Games

Это называется пиксель-артом с большими пикселями. Каждый пиксель на спрайте увеличивается в размерах и становится большим квадратом на изображении.

Каждый пиксель на спрайте занимает квадрат в 3 на 3 пикселя на экране.

Если спрайт вдруг наклоняется или поворачивается, то сразу становится заметно, что квадраты на экране состоят из нескольких пикселей:

Path to the Sky, Johannes ‘Dek’ Märtterer

Посмотрите на листву на этом изображении и сравните с вращающимся спрайтом при низком разрешении:

Обратите внимание, что пиксели на колесе остаются на одной линии и горизонтально, и вертикально, а на гифке из Path to the Sky большие пиксели на листве, птице и мосту заметно искажаются при движении.

Чтобы достичь этого, Kingdom полностью рендерится при низком разрешении и растягивает пиксели только на итоговом изображении. В то же время Path to the Sky, Hotline Miami и Moonman рендерят спрайты на монитор напрямую.

Снова к 3D

Kingdom — двумерная игра, но такой же подход можно применить и в трёх измерениях.

Если нацепить пиксель-арт текстуры на трёхмерные модели и отрендерить их при низком разрешении, получится что-то такое:

Техническое демо Pixel Art Academy, Matej ‘Retro’ Jan

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

Техническое демо Pixel Art Academy (под другим углом)

Анимации, основанные на векторах (со скелетным ригом), могут использовать пиксельный стиль себе на пользу:

Риг анимации

И если запустить рендер на низком разрешении, то анимация ещё сильнее начнёт напоминать пиксель-арт, почти как в случае с Kingdom.

Может быть, эта анимация и не кажется слишком качественной, но у неё есть свой стиль. Почти как в старых добрых играх девяностых.

Prince of Persia

3D-эффекты

А теперь снова поговорим о высоком разрешении. Существует игра, которая по полной использует свою трёхмерную природу, сохраняя двухмерный стиль. Это The Last Night от студии Odd Tales.

The Last Night, Odd Tales

Их модели нарисованы в 2D, но наложены на трёхмерный мир со всеми современными графическими эффектами: динамическим освещением, bloom, depth of field, кинематографичными ракурсами камеры, отражениями и так далее.

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

Создание 3D сцены в The Last Night

А вот ещё один пример качественного динамического 3D-освещения. Невероятно атмосферная игра с печальной судьбой — Confederate Express:

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

Пиксель-арт из вокселей

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

Отличным примером такого подхода является недавно анонсированная игра Pathway:

Pathway, Robotality

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

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

В каждый отдельный момент времени игрок видит FEZ только с одного угла, и поэтому ему кажется, что он видит мир в 2D. Именно поэтому FEZ выглядит как пиксель-арт, но мир всё равно может вращаться.

Чистые воксели

Итак, мы прошли полный круг. Теперь давайте оставим мир пиксель-арта позади и вернёмся к вокселям в настоящем трёхмерном пространстве (с использованием кубов без текстур).

Voxatron от Lexallofle — виртуальная консоль, работающая на современном воксельном движке.

Виртуальные консоли от Lexallofle имеют собственный уникальный стиль. Pico-8 реализует чистую 2D-графику, а Voxatron — чистую воксельную графику. Они отлично смотрятся в паре.

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

И снова мы возвращаемся к Sir Carma. Он стал одним из самых популярных воксельных художников, и теперь с помощью Unity и различных визуальных эффектов пытается выжать максимум из трёхмерного воксельного стиля.

The Way Back, Sir Carma

The Way Back, Sir Carma

А как насчёт воксельной Zelda или Atic Atac?

The Way Back, Sir Carma

#арт #long

Будущая замена полигонам. Или что такое воксели? / Хабр

Привет, друзья! Давно не виделись. Не будем затягивать приветствия, а сразу перейдём к теме нашего блога! Все знают, что такое пиксели, ведь так? Это элемент изображения в растровой графике. А что такое воксели? Речь сегодня пойдёт именно о них, ну что, поболтаем немножко о наших кубиках.

В блоге мы с вами затронем понятия вокселя, где он применяется, откуда пошёл, порассуждаем о перспективном будущем вокселей и пробежимся по нынешним реалиям. Устраивайся поудобнее, ведь мы отправляемся в мир, где на замену полигонам пришли воксели!

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

Начнем с начала, что такое воксели?

Как гласит википедия, это элемент объёмного изображения, содержащий значение элемента растра в трёхмерном пространстве. Грубо говоря, это тот же пиксель, но только в 3D с координатой «Z».

Само понятие voxel (воксел) образовано от слияния двух слов volumetric и pixel, что означает (объёмный и пиксель).

Воксельная графика является одним из способов отображения 3D графики, и она является альтернативой полигонам. В сегодняшние дни в 3D моделировании объектов используют в основном только два способа:

Моделирование с помощью полигонов

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

Моделирование с помощью вокселей

Сравнить моделирование вокселями с моделированием полигонами можно на примере кубика из пластилина, где микрочастички пластилина — это воксели, и кубика из бумаги, где его грани — это полигоны. Следовательно, если вы попытаетесь проткнуть два этих кубика, допустим гвоздём, то на одном получите отверстие в форме гвоздя, а на другом отверстие, ведущее в пустоту. То есть, в отличие от полигонов и пикселей, воксели — это истинный 3D кирпичик, а не 2D плоскость, которая окружает пустое 3D пространство.

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

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

Иоганн Радон

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

Аллан КормакГодфри Хаунсфилд«ЭМИ-сканер» (КТ)

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

Примеры медицинских воксельных моделейПримеры медицинских воксельных моделейПримеры медицинских воксельных моделей

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

Воксели стали применятся в играх с 1992 года, и первой из них стала игра Comanche: Maximum Overkill. Представляла она собой аркадный вертолётный авиасимулятор.

Comanche: Maximum Overkill

В игре использовался собственный движок компании, «Voxel Space», полностью написанный на ассемблере. Где воксельная графика позволяла отображать более детализированные и реалистичные ландшафты по сравнению с векторной графикой того времени. Можем сравнить её с Aces Of The Pacific WWII, Birds of Prey и Dawn Patrol. Эти игры тоже были разработаны в пределе 1992 — 1994 года. И на картинках мы с вами можем увидеть большую разницу в проработке ландшафта.

Примеры других игр сделанных в 92-94х годах, но только из полигоновПримеры других игр сделанных в 92-94х годах, но только из полигоновПримеры других игр сделанных в 92-94х годах, но только из полигонов

Кстати, кто назовёт культовую отечественную игру, с использованием вокселей? Ответ будет в конце блога!

Главный недостаток воксельной графики

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

Карта высот в своей красе

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

Как строиться ландшафт благодаря карте высот

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

Наглядный пример как это происходит

Так же воксель может представлять различные свойства. И как мы ранее говорили, «это истинный 3D кирпичик». А это значит, что достать его из объекта очень легко, так как это частичка, из которого строятся различные объекты, как и в реальной жизни, только у нас частицы очень маленькие. Поэтому в играх с частичной разрушаемостью или полной используются воксельные движки. Яркими примерами можно сделать 7 Days to Die, No Man’s Sky, Space Engineers, Trove. 

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

Перспективное будущее воксельной графики 

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

Ну или представьте себе батон из «S.T.A.L.K.E.R.», и он полностью сделан из вокселей. Из очень, очень большого количества вокселей, тогда вы сможете разрезать его где хотите, как и под любым углом, и увидеть точное пересечение.

Мой пример с хлебом

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

Потуги воссоздать человеческий мозг Потуги воссоздать человеческий мозг

Также мы сможем сделать реалистичное разрушение всего и вся, например, в шутере реалистичные повреждения, попадание от пуль, взрывов и так далее. Как можем увидеть на кадрах демке Voxel Plugin для Unreal Engine.

Лучше их глянуть в видеоролике!Лучше их глянуть в видеоролике!Лучше их глянуть в видеоролике!

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

Кстати, прогресс не стоит на месте. Навряд ли кто-то знает или видел. Но у компании Euclideon есть свой воксельный движок с технологией Unlimited Detail. Unlimited Detail — программная технология в трёхмерной компьютерной графике, предназначенная для хранения и рендеринга виртуальной трёхмерной сцены посредством облака точек в режиме реального времени. На кадрах ниже продемонстрированы места, которые были сгенерированы из 3D сканов реальных мест. Результаты хоть и выглядят немного странно, но поражают своим качеством детализации. И это действительно будущее наших игр. И не только игр, а в общем, графики.

Это реально сделано из вокселей!Это реально сделано из вокселей!Это реально сделано из вокселей!Это реально сделано из вокселей!

Вот представьте, когда мы сможем делать модели из микроскопических вокселей, практически не заметных глазу, и наше железо начнёт рендерить это, и мы подкрутим туда еще освещение в реальном времени, это будет нечто. Я даже боюсь представить, вдруг настанет тот момент, когда мы уже не сможем отличить реальность от игры и будет как в 4-й серии 1-го сезона Рика и Морти.

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

Нынешние реалии

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

Вернёмся визуальному стилю. Все началось 18 ноября 2011 г. А что у нас было 18.11.11? Да, все верно, выход легендарной игры Minecraft.

Принцип простой: воксели — это же кубы. Так в чем проблема, сделаем игру, где есть только кубы. Хотя большое заблуждение считать Minecraft воксельной игрой. В Minecraft для хранения данных о местности используются принципы воксельного ландшафта, но не используются методы рендеринга вокселей. Вместо этого он использует рендеринг полигонов для отображения каждого вокселя в виде кубического «блока». Ну а дальше пошло-поехало.

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

Вот чем по-вашему отличаются 2 этих изображения?

Они оба из пикселей. Но мы не можем назвать ту и другую картинку пиксель-артом. Так как суть пиксель арта, чтобы были читаемы пиксели и картинка должна быть нарисована по пикселю. Такой же принцип сработал и с вокселями мы пока что чисто физический не можем сделать реалистичную игру полностью из вокселей. Так почему не сделать пиксельную 2D игру, но только в 3D? Поэтому нас и начинают заполнять именно такие игры, где есть ярко выраженные кубики.

Когда говорят о вокселях, какие первые игры приходят вам на ум? Может быть эти?

Приходят на ум только кубики? Приходят на ум только кубики?

А как вам эти игры?

Вот уже лучше, нет кубовВот уже лучше, нет кубов

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

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

В мобильном гейминге вообще все просто. После выхода Crossy Road,которая задала тенденцию на воксели, на мобилках появилось колоссальное количество подражателей. Но воксели пошли на столько далеко, что все начали переводить и пиксельные игры в воксел, та же Flappy Bird, Chrome Dino (гугл динозаврик) и т.д. С каждым днём таких игр все больше. Если есть простенькая популярная 2D пиксельная игра, то ждите адаптацию на вокселях.

Ну а на ПК дела обстоят поинтересней. Можно найти добротные игры полностью из вокселей. Например, Cube World, Unrailed, Cloudpunk и ещё многое другое.

Ну и не могу не поставить в пример недавно вышедшую игру Teardown. Представляет она из себя песочницу, где у вас есть миссии и полная разрушаемость. Она действительно показывает, на что способны воксели. Эта игра нам дарит богатый игровой опыт, который мы мало где видели. А теперь представьте такую же игру, но где воксели в 100 раз меньше и остаётся такая разрушаемость.

Все бегом играть!Все бегом играть!Все бегом играть!

Хочу стать воксель-артером!

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

Это самое популярное ПО для воксель-арта. Бесплатно, простой интерфейс, и богат на инструменты, что ещё нам надо? Качаем, заходим и наслаждаемся! Вот, например, мои работы! Воксели дают возможность прикоснуться тебе к 3D. Как ни как, а в блендере такое сделать сложнее.

А вот вам подборка крутых работ из интернета.

Красотища же!Красотища же!Красотища же!Красотища же!

Ну а если мы хотим сделать простенькую игру? То можно ещё подключить Mixamo. Тоже бесплатно. Просто загружаем нашего персонажа и вуаля!

У нас есть готовые анимации для персонажа раннер сделать уже сможем. И благодаря этому мы, считай, получаем LVL UP. Лично я раньше рисовал 2D модельки для своих проектов, а теперь могу позволить себе какое никакое 3D. Это, кстати, ответ на то, что говорилось ранее. Мобильный рынок захлестнули такие игры и это только начало. Скоро все, кому не лень будут делать игры на вокселях, так как чтобы сделать 3D модель, много знаний не надо, а анимацию можно легко прикрутить.

Заключение 

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

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

И да, про культовую отечественную игру с использованием вокселей. Это Вангеры!

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

Всем удачи и до скорых встреч!

LedPulse — Блог

Легенда гласит, что впервые его официально применил американский инженер Фредерик Крокетт Биллингсли. Биллингсли работал над разработкой методов цифровой фотографии для НАСА, и в 1965 году он опубликовал это слово в двух сочинениях как портманто (смесь) слов «Изображение» и «Элемент».

 Изображение + Элемент = ПИКСЕЛЬ.

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

Сейчас, в 21 веке, мы столкнулись с новым термином, который набирает все большую популярность и становится преемником Pixel. ВОКСЕЛЬ. Это слово тоже портмоне:

Том + Элемент = ВОКСЕЛЬ.

Что такое воксель и почему мы слышим о нем все больше и больше?

Воксель определяется как каждый из основных элементов или «точек», определяющих объемную реальность. Другими словами, VOXEL для 3D — это то же самое, что PIXEL для 2D.
ВОКСЕЛЬ существует в другом, более высоком измерении.

В то время как прямоугольный ПИКСЕЛЬ может существовать только в двухмерном мире, мощный новый ВОКСЕЛ выпрыгнул из этого плоского мира и был спроецирован на наш. Пока пиксель застрял на наших фотографиях в Instagram, VOXEL решил отправиться с нами на прогулку в третье измерение.

Самое интересное, что концепция VOXEL существует столько же, сколько и ее предок, PIXEL. Он использовался для определения объемов в виртуальных плоскостях, видеоиграх, топографических и медицинских сканерах. Но это всегда оказывалось представленным пикселями перед нашими глазами. Не будем обманывать себя. 3D-фильмы и очки виртуальной реальности используют старый прием стереофотограмметрии, чтобы обмануть наш мозг, заставив его создать впечатление глубины и объема. Но на самом деле эти изображения созданы нашим старым другом Пикселем. Итак, хотя виртуальные существа видеоигр и фильмов Pixar все еще заперты в своем двухмерном мире. Они не смогли сделать скачок, чтобы сосуществовать с нами в третьем измерении… 

…до сих пор.

Изображение предоставлено LedPulse Technologies.

Новый формат в доме.

ОБЪЕМНЫЙ ДИСПЛЕЙ.

Чтобы пиксель существовал во времени и пространстве, ему нужна двумерная плоскость или матрица (X, Y). Чтобы ВОКСЕЛЬ существовал в нашем мире, требуется матрица из 3-х измерений. Это означает, X, Y, Z. Таким образом, для воспроизведения объемных изображений в реальном 3D необходимо изобрести новый формат, который содержит эти три измерения с ВОКСЕЛЯМИ, распределенными по трем осям. Этот теоретический формат должен иметь достаточную плотность ВОКСЕЛЕЙ для определения распознаваемых трехмерных изображений.

Такой формат уже существует. Он называется «Объемный дисплей» .

Dragon O. Karben, Германия 2019

Подобно тому, как VOXEL представляет собой пространственное развитие PIXEL, объемный дисплей представляет собой развитие двумерных экранов. Накладывая 2D-слои, ПИКСЕЛЫ волшебным образом превращались в ВОКСЕЛИ, переводя их в новое измерение. Невидимое пространство, которое их разделяет, позволяет рассматривать их в глубину, приобретая способность проецировать объем. Если плотность ВОКСЕЛОВ достаточна, можно определить распознаваемые объемные изображения. И так же, как в случае ПИКСЕЛЕЙ, чем выше плотность, тем выше четкость.

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

Да здравствует ВОКСЕЛЬ.

Высокая плотность вокселей (Dragon O)

ВОКСЕЛЫ: объемные пиксели | Искусственная среда

Постановка задачи

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

Визуализация пространственной информации — наиболее популярный способ ее анализа. Разнообразие образов дает живые, привлекательные, «сверхъестественные» визуализации в интерактивной среде, а человеческое воображение и опыт обеспечивают правильную интерпретацию и анализ.

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

Решения

В воксельном представлении трехмерное пространство подразделяется на маленькие кубики одинакового размера, называемые вокселами. Они образуют трехмерную матрицу с индексами [ x,y,z ], где каждый воксель имеет вектор признаков, в котором элементы представляют свойства этого «куска» пространства: идентификатор объекта, класс, материал или физическое измерение. Кроме того, пространственные отношения, такие как расстояния, направления и зоны влияния, могут быть сохранены как характеристики вокселей.

Система, основанная на вокселах, является гибкой и позволяет расширять вектор признаков каждого вокселя вновь полученными данными и результатами вычислений. Пространственный анализ на основе вокселей может быть выражен последовательностями, взятыми из конечного набора операций — ситуация, которую можно сравнить с простым языком запросов систем управления реляционными базами данных: векторы признаков в каждом вокселе подобны записям в базе данных, а неявные отношения между вокселами и их (прямыми и косвенными) соседями поддерживают «пространственные» операции.

Конечно, гибкость имеет свою цену: при разработке пространственного приложения нужно знать, что он делает. Все возможно, но не обязательно правильно. Однако готовые приложения могут быть «заморожены» в рецептах и ​​скриптах, им могут быть предоставлены графические интерфейсы и веб-интерфейсы, и они могут запускаться с различными наборами данных и настройками параметров.