Будущая замена полигонам. Или что такое воксели? +11


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

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

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

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

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

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

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

  • либо с помощью плоских полигонов, тем самым создавая полую модель без внутреннего наполнения, которая будет обволакиваться полигонами

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

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

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

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

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

Иоганн Радон
Иоганн Радон

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

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

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

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

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

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

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х годах, но только из полигонов
Примеры других игр сделанных в 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 модель, много знаний не надо, а анимацию можно легко прикрутить.

Заключение 

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

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

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

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

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




Комментарии (32):

  1. Goupil
    /#24380416 / +16

    Про то, что воксели заменят полигоны, я начал слышать лет этак 20 назад, когда начал темой увлекаться. Но сложности с тем, что все современные gpu заточены именно на работу с полигонами. И чтобы рисовать красивую картинку вокселей надо ну прямо очень много памяти. Я когда отображаю серьезные z-stacks по своей работе часто сталкиваюсь с недостатком памяти, а ее у моей машины вполне.
    А многие указанные в статье игры рендерят картинку все-равно полигонами, используя воксели лишь как невидимый каркас для многоугольников. Потому что воксели это не куб, это пиксель с тремя координатами. А отображать его можно и как куб, если вокруг этих координат нацепить 6 полигонов.

    • sdore
      /#24385610 / +1

      Уточнение: как правило, нужно много именно видеопамяти.

  2. GavriKos
    /#24380428 / +4

    вдруг настанет тот момент, когда мы уже не сможем отличить реальность от игры и будет как в 4-й серии 1-го сезона Рика и Морти.

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

  3. LordDarklight
    /#24380496 / +3

    Говорим о вокселях - а культовую  Command & Conquer2: Tiberian Sun  даже не упомянули - а ведь тогда это была революционная игра - именно продвигавшая воксельную графику во всей её, тогдашней, красе - от 2D к условному 3D - уже не "топорному" изометрическому, но ещё далёкому от полного 3D.

    Увы - при всей мощи того движка - мощь компьютерного железа была далека для его эффективного использования.... от чего красиво вывести воксельную графику в реальном времени не получалось (если сравнивать с самой первой C&C - то вышло лучше, а если сравнивать с RA (SVGA) и StarCraft - вышедшая даже годом раньше - то уже вырви глаз) и вышедшая следом RA2 - уже была без воксельного движка - хотя упорно его иллюзорно моделировала - но уже на статических спрайтах (хотя рисовались они как раз воксельными) - хорошо показав что воксели вполне могли бы выдать красивую графику - будь железо помощнее. Вот C&C3 (и до него C&C Generals) уже поддался веянью моды на полигоны - и эти игры были уже выпущены в 3D на полигонах - и надо сказать, C&C3 и RA3 смотрелись уже очень хорошо даже на полигонах. Жаль на том (C&C4 не в счёт) эксперименты с графикой в 3D стратегиях серии прекратились (вместе с серией и всей командой, оставшейся от Westwood studio). Потому что на рынок так и не вышли воксельные 3D ускорители (хотя в начале века о них разговоры шли). И этом фактически ставит крест на массовом применении чисто воксельной графики в реальном времени в динамике - вычислительные ресурсы для этого нужны не хилые, а ускорителей нет. Да и полигональное 3D сейчас тоже рисуют по "технологиям вокселей" - это называется скульптурное 3D моделирование - когда 3D модель буквально вырезают из "полнотелой" болванки - а потом по ней просто генерируется меш с заданной детализацией (или даже динамической детализацией как в UE5, да и в UE4 тоже уже была поддержка - когда количество полигонов детализации в реальном времени меняется автоматическими алгоритмам; а UE5 уже имеет встроенную поддержку разрушаемых полигонов - то ли ещё будет позже в какой-нибудь бедующей UE6) - полигоны вполне показали свою состоятельность и лёгкость математических преобразований при перестроении и при выводе 3D моделей. И тот же просчёт волн воды на UE5 делается на полигонах достаточно эффективно (да - с эффектами пены, конечно, придётся повозиться - ту придётся создавать иллюзорную эмуляцию такой пены).

    А вот воксельными 3D ускорителями и эффективными математическими моделями как-то особо сейчас не занимаются - хотя, вроде бы, пару лет назад ходили слухи о том, что ведущие разработчики 3D ускорителей хотят добавить такие технологии в свои движки - но пока ничего не сдвинулось!

    P.S.

    А вообще было бы интересно сейчас посмотреть на обновлённые ремастеры C&C2 и RA2 - на чисто-воксельных движках, но со всей доступной современной мощью железа (надеюсь даже как-т можно было бы припахать универсальные вычислительные процессоры 3D ускорителей - но вряд ли на всю мощь - ибо воксельная математика - целочисленная - а актуальные 3D ускорители заточены на вычисления с плавающей точкой - а это большая технологическая разница).

    Но мне кажется(+), если и выпустят ремастеры C&C2 и RA2 (на волне удачно вышедших ремастеров C&C и RA) - то это будут уже либо спрайты как RA2 (просто модельки подтянут до уровня HD) - либо уже конвертируют для 3D-полигонального движка (т.к. на нём та же RA3 смотрелась лучше чем RA2, а сейчас 3D ускорители стали мощнее - и можно сделать достаточно детализированные 3D модели и переписать 3D эффекты; и текстурки обновить на более детальные) - ибо воксельные модели относительно легко перевести в 3D-полигональные - используя те же упомянутые технологии скульптурного 3D (если, конечно, сохранились эти воксельные модели - если их нет - то ремастера не будет вовсе)

    • ardraeiss
      /#24381180 / +2

      Увы, у Вас перепутано. И TibSun, и RedAlert 2 имели одинаковый(просто у второй чуть доработанный) подход к графике, что прекрасно видно если покопаться в их моддинге:

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

      • спрайтовая пехота и сложная техника с анимациями;

      • спрайтовые здания;

      • спрайтовый террейн.

      И всё. Те же Tick tank или Artillery у NOD это по факту две разных объекта - воксельный танк в движении и здание(sic!) с анимацией разворачивания.

      Террейн только имитировал рельеф и был классически спрайтовым. Он слегка прогибался снарядами с настройкой "портить террейн"(всё та же артиллерия), но в рамках ограничений спрайтами склонов/подъёмов/"скрытых" подъёмов, сами же ступени перехода высот были снова чистыми спрайтами. В RA2 эту возможность "перекопки" просто не использовали, а так видно даже без копания в файлах игры что то же самое.

      Воксели техники были интересной штукой - они имели цвет, позицию, и "нормаль"(которая и помогала красивее освещать юниты при вращении). То есть, они почти буквально имитировали точечный полигон размером с себя. И мододелы эти воксельные юниты быстро наловчились делать вокселизацией полигональных моделей из популярного тогда подварианта 3DStudio MAX(пардон, забыл как точно он назывался за давность лет). В TibSun значение нормали было каким-то более ограниченным, чем в RedAlert2(там оно было от 0 до 255), так что младшая игра давала возможность получить более "гладкое"(переходом освещения) подобие воксельных сфер..

      Единственной заметной разницей графики между играми(с точки зрения мододеланья) стала процедурная анимация в RA2:YR - винты у самолёта-разведчика вращались(а может даже и не вращались) и винт у "штурмового вертолёта"(а вот этот вертелся точно).

      • LordDarklight
        /#24383680

        Насколько я в курсе подход к графие C&C2 b RA2 был разный. В C&C - воксельными были юниты (может только техника), всё остальное было спрайтовое (ну не тянуло железо больше) - но воксельная техника реально прикольно ездила по неровной местности - меняя угол своего наклона.

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

    • Goupil
      /#24381194

      И у TS и у RA2 один и тот же движок. Воксельная там только техника.

      • LordDarklight
        /#24383654

        У RA2 техника спрайтовая уже - воксельный вывод не используется. Но сами спрайты отрисованы воксельной технике!

  4. loginmen
    /#24380504 / +1

    Замена полигонам? Для видеокарты не существует этих ваших вокселей, ни в OpenGL, ни в Vulkan, ни в DirectX. Только полигоны (треугольники)) и точки.

    Говорю как опытный программист графики.

    • Sixshaman
      /#24380772

      Есть 3D-текстуры, пусть и сильно ограниченные по разрешению. Ну и вокселизацию/растеризацию придётся писать самому.

    • MetromDouble
      /#24381588 / +2

      Я всегда думал, что там просто матрицы

    • beeruser
      /#24381644 / +3

      Для видеокарты не существует этих ваших вокселей
      Только полигоны (треугольники)) и точки.

      Это если вы застряли в махровых 90-х.
      Уже давно для GPU доступны иные методы рендеринга — рейтресинг, sdf и т.п.
      Соответственно внутри шейдера могут существовать любые примитивы.
      Да даже рисовать микрополигоны (как в nanite) быстрее в шейдере чем на железе.

      Тут только один полигон — полноэкранный.
      www.shadertoy.com/view/3lsSzf
      www.shadertoy.com/view/llK3Dy

      Или вот воксельная игрушка Dreams, по какой-то причине не упомянутая в статье.
      Там объекты представлены как октри из воксельных блоков 8x8x8.
      www.youtube.com/watch?v=ITrkbsaX2c8
      www.youtube.com/watch?v=Pi3r18ld-S8

      Материалы по Dreams
      www.youtube.com/watch?v=u9KNtnCZDMI (R&D по рендерингу)
      www.youtube.com/watch?v=1Gce4l5orts (Общая структура игры)
      www.youtube.com/watch?v=yZM_Ij9aeOA

      • loginmen
        /#24381758 / +1

        Шейдеры выполняются на железе. Рейтрейсинг есть у 2 калек, особенно с ситуацией в стране, хотя и до этого с конскими ценами на видеокарты. В написании графики редко кто использует даже 4 opengl, все сидят на 3 версии.

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

      • arTk_ev
        /#24385442

        В Dreams splatrender. Из sdf генерится облако точек, оно рендерится уже с помощью кастомной растеризацией. Но это тоже считается вокселями. Весьма занятная презентация по рендеру, по ней сделал свой аналог.

  5. NeoCode
    /#24380644 / +1

    А почему бы не использовать воксели для расчета изменений мира, а не для рендеринга?

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

    • Kardy
      /#24381190 / +4

      в большей части "воксельных" игр на скриншотах в статье это как-то так и работает.

      • cyber_dream
        /#24383362

        В cryengine таким образом делались пещеры

    • TopGun_DICD
      /#24383352

      Формально это есть. В математике и информатике это называется КА (Клеточный Автомат), или клеточно-автоматная модель.

  6. Sixshaman
    /#24380758 / +4

    Будущая замена полигонам

    Я могу представить на этом месте SDF, но никак не воксели. Посмотрите хотя бы на число статей по этим темам за последние 3-4 года.

  7. poulch
    /#24381322

    Мне вспоминается серия игр Delta Force. Как мы по сетке в нее резались и графика очень радовала.

  8. MetromDouble
    /#24381598

    Всем интересующимся вокселями рекомендую посмотреть эксперименты вот этого человека - https://youtu.be/8ptH79R53c0, очень впечатляют

    • LordDarklight
      /#24383744

      С одной стороны впечатляет. С другой - качество вывода отстало от современных тенденций в 3D полигональной графике лет на 10-15. Очень не хватает сглаживания. И даже свечения и отражения не так впечатляют - как это даёт полигональное 3D уже лет 5-6, даже без обратного рейтрейсинга! Чего уж говорить о современном студийном рей-трейсинге (но это не реал тайм, конечно), применяемом в первую очередь для рендера рекламных роликов и в кино.

      А всё потому - что для вокселей нет ни навороченной программной базы, ни поддержки со стороны ускорителей - чтобы потянуть эту навороченную программную базу и повышенную детализацию воксельных спрайтов для рендеринга хотя бы в FHD качестве (чего уже говорить о рендеринге в 8K)

  9. arTk_ev
    /#24381616

    Воксели - это просто формат данных, самый простейший. В них могут содержаться что угодно, включая точки, спаты, и треугольники. Хранить их можно в деревьях или в sdf. Рендерить их можно как угодно, той же растеризации. Воксели давно применяются, без них не получится сделать нормальный Gi и физику, звук. DXR, lumen, nanit - это тоже воксели. Растеризация уже устарела, и сейчас переходных период на pathtracing.

  10. Sergey_zx
    /#24382726

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

    Но для технического зрения, имхо, альтернативы я не вижу. В каком еще представлении можно сравнивать, или усреднять несколько 3D сцен полученных от сенсоров? Например, полученных от лидаров по ходу движения машины. Причем, построенных под разными углами и координатами.

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

    • LordDarklight
      /#24383760

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

      • Sergey_zx
        /#24384052

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

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

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

        • LordDarklight
          /#24384120

          Я не спец в этой области - не подскажу. Но - почти всегда тривиальный алгоритм бывает крайне не эффективным! По вокселям просто наработок мало. А по поверхностям математики трудятся уже несколько столетий! Как и инженеры - чтобы всё что придумают математики эффективно ускорять на вычислительных системах!

  11. Dogrtt
    /#24383070 / +1

    Хмм, а каждый воксель это не тот же полигональный куб? В статейку бы добавить простейший формат описания модельки.

    • Basheyev
      /#24384946

      Многие начинают со структуры данных Sparse Voxel Octree (SVO), а потом наворачивают. Дешево и сердито. С одной стороны экономит массу памяти по повторяющимся вокселам, во вторых SVO, как структура данных, очень удобна для рейтресинга при растеризации.

  12. Inq
    /#24383086 / +1

    Добавьте, пожалуйста, ссылки на ролики, скриншоты из которых вы приводите.

  13. LordDarklight
    /#24383794

    Voxelstein 3D/ Воксельштайн 3D

    https://habr.com/ru/post/79769/