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


Воксельная разработка


Бранислав: в 2000-2002 годах я участвовал в соревнованиях европейской демосцены. Я написал несколько 256-байтных демо (также называемых intro) под ником Silique/Bizzare Devs (см. «Njufnjuf», «Oxlpka», «I like ya, Tweety» и «Comatose»). Каждое из интро генерировало в реальном времени воксели или графику из облака точек. И воксели, и облака точек являются примерами сэмплированной геометрии.

Интро выполняли свою задачу всего в 100 инструкциях процессора, таких как ADD, MUL, STOSB, PUSH и им подобных. Однако из-за самой природы такого типа программ на самом деле десятки инструкций использовались просто для правильной настройки, а не для генерации самой графики. Тем не менее этих 50 с лишним инструкций, которые по сути являлись элементарными математическими операциями или операциями с памятью, оказалось достаточно для генерации довольно красивой подвижной 3D-графики в реальном времени. Все эти 256-байтные интро выигрывали с первого по третье места. Это заставило меня осознать, что если такую 3D-графику возможно создавать без полигонов, то в играх и других приложениях можно достичь гораздо большего с помощью того же принципа: использования сэмплированной геометрии вместо полигональных мешей. Решение заключается в простоте. Я понял, что доминировавшая тогда парадигма, основанная на сложных и фундаментально ограниченном (необъёмном) представлении данных, уже готова была упереться в потолок возможностей. То есть настало подходящее время испробовать эту «новую», более простую парадигму: объёмную сэмплируемую геометрию.

image



Дэн: ещё учась в старшей школе в Швеции, я начал программировать 2D-движок с сайдскроллингом, на котором я в результате создал инди-игру под названием «Cortex Command». Она была похожа на «Worms» или «Liero», но с геймплей был больше в реальном времени и с элементами RTS. Также в игре использовалась более подробная симуляция различных материалов каждого пикселя рельефа. В виде сбоку, похожем на «муравьиную ферму», персонажи игрока могли копать золото в мягкой земле и строить защитные бункеры с твёрдыми бетонными и металлическими стенами. В 2009 году Cortex Command выиграла награду за техническое превосходство и приз зрительских симпатий на Independent Games Festival. Ещё с того времени я мечтал создать полностью трёхмерную версию игры, а это было возможно только с помощью волюметрической симуляции и графики.


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


Растущий интерес


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


Технология


Существует набор техник, которые люди обычно считают основанными на вокселях. Самые старые из них использовался в играх, основанных на картах высот, где рендерер интерпретировал 2D-карту значений высот для вычисления границ между воздухом и землёй сцены. Это не совсем воксельный подход, потому что здесь не используется волюметрический набор данных (примеры: Delta Force 1, Comanche, Outcast и другие).

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

image

image

image

image

image

image

image

image

image

image

image

В некоторых играх используются относительно большие воксели, или элементы SDF (signed distance fields, полей со знаковым расстоянием), которые всё равно не обеспечивают реализм, но уже позволят создавать интересный геймплей (примеры: Voxelstein, Voxelnauts, Staxel). Существуют также проекты на основе SDF, обеспечивающие замечательные взаимодействия и симуляцию и имеющие потенциал создания высокой реалистичности (пример: Claybook). Однако пока мы не видели попыток разработки решения для симуляции и рендеринга реалистичных больших сцен, аналогичных тем, на которые способна наша технология.

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


Преимущества


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

В таком подходе существует мощная и неотъемлемая система LOD (level of detail, уровня детализации), позволяющая технологии балансировать производительность и качество в традиционно сложных ситуациях. Одни из множества преимуществ — гранулярный контроль над LOD, foveated rendering и обработка, не требующие почти никаких излишних затрат.

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

image

image

image

image

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

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

image

image

image

image

image

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

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

GIF
image

Риггинг


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



Текстурирование


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

image

image

image

image

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

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

image

image

image

image

image

image

Крупномасштабные ландшафты


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


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

image

image

image

image

image

Работа со сканами


Наши вокселизаторы уже достаточно мощны, чтобы вокселизировать очень высокополигональные меши и облака точек с помощью упомянутых выше способов. Мы продемонстрировали первые результаты с данными фотограмметрии ещё в начале 2013 года, вокселизировав меш из 150 миллионов полигонов, который мы рендерили и изменяли в реальном времени на среднем игровом ноутбуке 2008 года. После вокселизации количество полигонов исходной геометрии становится неважным, а изменение модели оказывается простой задачей. Это можно заметить в наших видео; производительность больше зависит от количества пикселей, чем количества полигонов исходных данных. Всё это необходимо, чтобы обеспечить пользователям комфортный рабочий процесс при подчистке огромных отсканированных моделей. Кроме того, воксели в каком-то смысле схожи с пикселями, поэтому мы предвидим применение узкоспециализированного ИИ (с глубоким обучением) для автоматической подчистки данных фотограмметрии.

Будущее VR и стриминга


GIF
image

image

image

image

image

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

image

image

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

GIF
image

image

image

Таковы огромные преимущества вокселей перед другими способами представления, что делает их идеальным решением для описания таких гигантских виртуальных сред. Система LOD замечательно подходит для оптимизации обработки и рендеринга на лету в зависимости от любых сочетаний параметров (расстояния до пользователя, важности симулируемого процесса, соотношения точности/затрат и т.д.). Также благодаря этому они идеально подходят для foveated rendering и очень эффективной потоковой передачи. Также их можно задавать с большей размерностью, что необходимо для выполнения крупномасштабной распределённой физической симуляции. Такие симуляции невозможно выполнять всего в трёх измерениях из-за задержек сети и невозможности обработки большой модели на одном PC и одноразовой передачи большой части геометрии. Сегментированная, изменяемая система LOD воксельной геометрии здесь очень поможет. При изменении небольшой части или нескольких частей большой воксельном модели нет необходимости пересчитыватьь его большой меш и текстуры, а также синхронизировать всю модель по сети — важны только задействованные части, которые можно синхронизировать с наиболее подходящим для передачи по сети LOD.

image

image

image

image

image

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

Команда разработчиков Atomontage. Интервью проведено Кириллом Токаревым.

Комментарии (70)


  1. zigzag8312
    30.05.2018 17:01
    +4

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


    1. kompas_3d
      31.05.2018 15:40

      Их же более поздний Perimeter был ещё.


  1. Alexey2005
    30.05.2018 17:22
    +4

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


    1. geisha
      31.05.2018 09:15

      Там что-то проскакиволо про воткнуть SSD в разъём на видеокарте. Ещё есть такой момент: производительность и объемы памяти, в отличии от производительности и количества процессора/шейдеров, вполне себе растут, так что оптимизм наличествует.


      1. amarao
        31.05.2018 14:56

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

        Как насчёт произвольных задержек в десятки секунд иногда?


      1. Kubatai
        31.05.2018 16:38

        Тогда уж GDDR6, да побольше.


  1. Jeka178RUS
    30.05.2018 17:41
    +1

    Впечатляет, помню ковырялся с вокселями в дипломной работе, помню памяти не хватало катастрофически.


    1. finlandcoder
      31.05.2018 16:38

      Вот именно. На видео очень маленькие сцены с ничем. Вот когда полигональная модель уйдет — тогда да. А пока видеокарта хочет полигон — вокселей не будет.


  1. DaveDee
    30.05.2018 17:51
    +4

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


    1. DROS
      30.05.2018 17:58

      Можете поиграть habr.com/post/345104


      1. DaveDee
        30.05.2018 19:28
        +1

        Хочется внутри побегать :)


    1. Foror
      30.05.2018 19:20

      >Эх, подождем еще 5 лет :)
      В коментах автор пишет, что к 2019 будет что показать людям.


      1. DaveDee
        30.05.2018 19:28

        Показали то и сейчас что-то (и 6 лет назад), но вот игроделы за это еще не брались. Значит что-то приличное может выйти не раньше чем через 3-5 лет (пара лет на технологию, пара на разработку игры под мало кому известные фишки).
        И это допуская, что будут люди, которые смогут на неизвестной технологии что-то придумать, посторить и красиво подать.
        Ну еще может появиться какой-то условный инди АтомКрафт, который волею судеб и благодаря нужному положению звезд станет новым хитом и все крупные студии кинутся клепать свои песочницы воксельные игры.


        1. Foror
          30.05.2018 19:40
          +3

          Да я как-то не жду очередного ААА на вокселах, чтобы просто проникнуться хватило бы небольшой демки, типа такого:
          image


          1. juray
            30.05.2018 23:06
            +1

            ну так Voxelstein есть же.


          1. hardex
            31.05.2018 08:44

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


            1. DaveDee
              31.05.2018 15:52

              Так умеют уже, вопрос в массовости железа
              www.geforce.com/whats-new/articles/nvidia-rtx-real-time-game-ray-tracing


              1. valera5505
                31.05.2018 17:04

                Умеют рейтрейсить небольшие сцены (или вообще частично) на 4 очень дорогих видеокартах


  1. Tutanhomon
    30.05.2018 17:56
    +4

    отлично, теперь алиасинг не толькро на гранях, но и на каждом пикселе вокселе)


  1. fzn7
    30.05.2018 18:07

    Что нового по сравнению со скамом от Eucledeon?
    www.youtube.com/watch?v=UKUuUvDSXk4


    1. Foror
      30.05.2018 19:31

      Появилась команда и инвесторы www.atomontage.com/#team-section В 2019 будем демка.


  1. QDeathNick
    30.05.2018 22:04

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


    1. vintage
      31.05.2018 09:21

      Половина ваших ссылок не про воксельную графику, а про кубический дизайн с полигональной графикой.


      1. Goldseeker
        31.05.2018 10:05
        +1

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

        Из статьи не очень понятно как именно технически работает их технология, есть предположения о реализации?


        1. lieff
          31.05.2018 12:19

          Не обязательно, можно рендерить прямоугольник из 2х треугольников, а в шейдере уже делать raymarch используя bvh, в котором хоть треугольники, хоть сферы, хоть вообще сложные мат-фигуры. Причем на уровне API треугольников вообще может не быть, в opengl можно шейдер запустить просто через glRecti(1, 1, -1, -1);, даже vertex шейдер не нужен. Сompute шейдер тоже запускается на 2D прямоугольник, разницы с glRecti вариантом по сути не будет.


          1. Goldseeker
            31.05.2018 12:54

            Именно это я и имел ввиду, когда говорил о рейкастах в вершинном шейдере, имел я ввиду, конечно, фрагментный шейдер.

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


      1. QDeathNick
        31.05.2018 14:08

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


      1. QDeathNick
        31.05.2018 14:17

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


        1. Goldseeker
          31.05.2018 14:23

          Может я слаб в терминологии, но в чем разница?


          1. QDeathNick
            31.05.2018 14:43

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

            К слову ещё есть доксели или, как некоторые пишут, докселы, это такой кадрированный 3D растр. Т.е. видео, но записанное не пикселями, а вокселями.


            1. Goldseeker
              31.05.2018 15:13

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

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


    1. Inobelar
      01.06.2018 10:57

      Есть ещё 2 интересных проекта: VoxelQuest и Monadia


  1. Feelnside
    30.05.2018 22:12

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


    1. Frankenstine
      31.05.2018 15:12

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


      1. sumanai
        31.05.2018 16:01

        Может diff?


        1. Frankenstine
          31.05.2018 16:37

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


  1. MrShoor
    31.05.2018 00:44

    Здорово конечно, что существуют энтузиасты, которые верят в воксельную революцию.
    Они молодцы, и именно такие ребята могут совершить прорыв.
    Но в воксельную революцию я верю слабо. Дело в том, что воксельная графика почти ничего не решает. С глобальным освещением — такие же проблемы. С тенями — все проблемы на месте. Волюметрик эффекты? Воксели никак не помогают в этом. А какие бонусы они дают? Да почти никаких. Только качественные автоматические динамические LOD-ы ценой лютой прожорливости по памяти.
    Зато куда более перспективным на мой взгляд является raymarching моделирование + рендер.


    1. vintage
      31.05.2018 09:27

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


      1. QDeathNick
        31.05.2018 15:05

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


      1. vagran
        31.05.2018 22:13

        Помню, помню — ru.wikipedia.org/wiki/Unlimited_Detail


    1. DrZlodberg
      31.05.2018 10:29

      С глобальным освещением — такие же проблемы.

      Так вроде бы Voxel Cone Tracing на это дело должен очень неплохо ложиться.


      1. finlandcoder
        02.06.2018 11:28

        Voxel Cone Tracing

        Вокселизуем всю сцену в разреженный octree. Листья octree — 3д-текстуры вокселизованных кусков поверхности сцены. Храним только те листья, которые пересекают поверхности объектов. По полученному дереву можно достаточно эффективно пускать конусы, аналогичные пучку лучей, тем самым аппроксимируя отражённый свет.
        Игрушечные сцены. By design не подходит для больших сцен. Заоблачные затраты памяти.

        Окей…


    1. AngReload
      31.05.2018 17:30

      raymarching
      Немного читал про него, но так и не понял, что он даёт?


      1. MrShoor
        31.05.2018 18:07

        Вот тут очень хороший пример функционального моделирования:


        1. AngReload
          01.06.2018 16:31

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


          1. MrShoor
            01.06.2018 23:33

            Но треугольники ведь быстрее рендерить

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

            и мне кажется с ними у скульпторов больше свободы

            Нет. Треугольник — очень неудобная фигура для моделирования. Взгляните на любую сетку у любой 3д модели:
            image
            Треугольников почти нет. В основном это четырехугольники. Потому что на четырехугольниках можно удобно работать с лупами. Ну а потом это все триангулируется уже автоматически.
            Однако моделировать под полигоны сейчас конечно же удобнее. Но это все потому, что для полигональных моделей у нас было аж 25 лет на развитие пайплайна по созданию такого контента. А для моделирования с помощью distance functions сейчас нет инструментов вообще, пишут код руками. А сделать такой инструмент, чтобы он по возможностям хоть отдаленно бы догнал текущие, и можно было его отдавать художникам — ой как не просто. Это собственно второй сдерживающий фактор.


            1. Goldseeker
              01.06.2018 23:41

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


              1. MrShoor
                02.06.2018 00:49

                А я не про воксели говорил, а про distance field + raymarching. Воксели не взлетят.


                1. Goldseeker
                  02.06.2018 00:57

                  Тогда мой коммент можно смело игнорировать — не разобрался.


  1. DjSens
    31.05.2018 07:52
    +1

    Круто. Взрываться модели в играх тоже будут красиво, похоже. А сколько весят модели? Сколько памяти жрут во время игры ?


    1. Frankenstine
      31.05.2018 15:16

      Сколько есть, столько и жрут :)


      1. sumanai
        31.05.2018 16:02

        Боюсь, что сейчас на порядок больше, чем есть.


  1. GeekberryFinn
    31.05.2018 09:38

    Интро выполняли свою задачу всего в 100 инструкциях процессора, таких как ADD, MUL, STOSB, PUSH и им подобных.

    А почему не через PhysiX?
    https://www.youtube.com/watch?v=x8Fo2slT2WA?t=30
    (смотреть с 30 секунды: сотни тысяч вокселей)


    1. Goldseeker
      31.05.2018 10:00

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

      Есть подходы, при которых практически вся игра пишется на GPU (вспоминается VoxelQuest, например), но это очень не меинстримовое развлечение и требует мощного железа и серьезных навыков программистов.


      1. GeekberryFinn
        31.05.2018 10:27

        такие эффекты работают только для не влияющих на геймплей украшательств

        По той причине, что игра должна работать и у тех — у кого нет PhysiX.

        PS вот игра с влиянием физики на геймплей habr.com/post/345104
        image


        1. Goldseeker
          31.05.2018 10:40

          Приведенная вами в пример игра как раз пример игры полностью написанной на GPU (то есть гонять данные о всех вокселях каждый кадр не нужно) и автор сам собственно называет у этого подхода ровно один плюс — производительность, а минусы — чудовищно возросшая сложность разработки, постоянные проблемы с физическими ограничениями GPU, сложность синхронизации данных CPU & GPU, невозможность детерминистичной симуляции. Условный Dragon Age так не напишешь — утонешь в сложности.

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

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


        1. Tutanhomon
          31.05.2018 17:49

          Эти их вялые стволы намекают на состояние воксельной графики на текущий момент


  1. DSLow
    31.05.2018 11:35

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


  1. infrapro
    31.05.2018 11:56

    Как там с шейдингом у воксельной технологии? На показанных роликах не заметно его вообще


    1. Frankenstine
      31.05.2018 15:18

      Даже танк без гусениц :)


  1. iga2iga
    31.05.2018 16:13

    Хватит уже пинать труп воксельной графики (для игр). Возможно в медицине оно и найдет своё применение. Ну а пока будущее за трассировкой лучей и только. Правда и тут производительности GPU пока ещё не хватает раза так в 3-4. Опять же разрешения растут постоянно.


  1. Freundlich
    31.05.2018 16:40

    Какими мощностями должен обладать ПК, дабы вся эта красота работала стабильно?


  1. Beshere
    31.05.2018 16:40

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


    1. aknew
      31.05.2018 17:34

      Ну как бы с VR та же фигня была (во всяком случае я помню рассуждения на эту тему еще в 90 в от винта, да и в фильмах/мультиках тогда же она была довольно популярна), но ведь смогли же в итоге.


      1. vlreshet
        01.06.2018 10:38

        Ну такое, не особо то смогли, как по мне. Особой массовости VR не получил. Так, игрушка для полутора гиков.


        1. aknew
          01.06.2018 10:49

          Согласен по поводу не особо и игрушки для гиков, но я ждал что опять поговорят два-три месяца и успокоятся на пару лет, а тут хоть для гиков, но реальное применение в игра, а не очередная демка


        1. Azoh
          01.06.2018 10:54

          Sony активно продвигает VR. Может и не выгорит, но игр уже много. И некоторые от вполне крупных издателей.


  1. decomeron
    31.05.2018 23:46

    Ексель моксель воксель :—)


    1. QDeathNick
      01.06.2018 14:07

      Ну да, а то воксел, пиксел и эксэл


  1. DjSens
    02.06.2018 10:48

    Прикинул насчёт сжатия: если не сжимать, то в 1 Гб может влезть кубик со стороной 793 вокселя по 16 бит каждый. По оси Y легко сжать всё до 40 байт, тогда в тот же 1Гб влезет уже кубик 5000х5000хY. Это можно сравнить с комнатой 5х5 метров, в которой всё оцифровали с разрешением 1 кубический миллиметр. Танк из статьи наверно всю такую комнату займёт.
    Полигональные поверхности хороши для металла и стекла, а вот девушки компутерные выглядят как андроиды, интересно посмотреть как они будут выглядеть на базе вокселей, особенно с симуляцией физики костей, мышц и прочей анатомии :)