Size: a a a

2021 February 03

Z

ZZZubec(Salamandr) in Alprog I/O
Roman
Планирую окунуться в воксельное движкописательство.
Меня очень вдохновляет работа вот этого парня: https://youtu.be/BoPZIojpbmw
Teardown тоже крут, но у этого малоизвестного автора все выглядит в разы технологичнее и прогрессивнее

Тоже хочу свои воксели. Но такие, чтобы каждая частица симулировалась физикой (когда не в состоянии покоя).
Что-то наподобие старой powder toy. Убийца майнкрафта, одним словом.
Главное - физику сделать на целых числах. Звучит вроде осуществимо, ведь все взаимодействия между кубиками происходят исключительно на объемной сетке.

Отдельный вопрос с вращением. У индивидуальных кубиков нет вращения, но группа кубиков должна уметь вращаться за счёт смещения индивидуальных кубиков с разной скоростью.
Насколько я вижу, в teardown и неназванной демке по моей ссылке группы кубиков вращаются, как единое целое. То есть, группа кубиков, отделившись от основной сетки вокселей, начинает жить в своем пространстве и перемещаться/крутиться  без привязки к сетке. В этом подходе есть что-то ненатуральное. Я бы хотел, чтобы все симуляции происходили в одной среде, в общей сетке. И отделившаяся группа вокселей перемещалась бы за счёт движения всех вокселей в группе. Это позволяет сохранить целочисленную физику, и в целом как-то более естественно для воксельной физики.
Но вот как вращать группу вокселей (перемещать каждый воксель в группе вокруг условного центрального вокселя) так, чтобы сохранять структуру группы?  
Сомневаюсь, что есть готовый ответ, буду изучать. Я ещё ни строчки кода не написал, в общем-то. В отпуске размышляю.
Я не могу поверить, но мне прислали видео, которому уже 13 лет https://youtu.be/VpEpAFGplnI
источник

R

Roman in Alprog I/O
unlimited detail ещё есть
примерно того же времени, но куда пафоснее
источник

Z

ZZZubec(Salamandr) in Alprog I/O
Ещё есть такая технология как Ray Marching, которая позволяет рисовать целые фракталы и любые другие примитивы без потери качества. Буду пробовать сам на днях https://youtu.be/Cp5WWtMoeKg
источник
2021 February 04

R

Roman in Alprog I/O
вообще, динамическая детализация - очень интересная тема для воксельных игр, я такого ещё не видел нигде. система, которая показывает близкие объекты с мелкими вокселями, мелкой сеткой, а далёкие объекты - с крупными вокселями. должно сильно ускорять рендеринг

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

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

R

Roman in Alprog I/O
а ещё для хорошей динамической детализации каждый объект должен быть не набором вокселей, а формулой, идеей этого объекта.
издалека листок на дереве - один воксель, но подходишь ближе, и он обретает форму, появляются воксели-прожилки, ещё ближе - поры и волокна. для такой детализации нужна либо очень хай-поли модель, которая затем в воксели растеризуется, либо формула, очень сложные правила для генерации воксельных деревьев

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

а формулу для воксельного листочка я вряд ли напишу...

вот статья про генерацию деревьев путем транспорта питательных веществ. код старается уподобиться реальным процессам, и это круто
https://m.habr.com/ru/post/525886
источник

Z

ZZZubec(Salamandr) in Alprog I/O
> а формулой, идеей этого объекта
это и есть ray marching
источник

Z

ZZZubec(Salamandr) in Alprog I/O
> но подходишь ближе, и он обретает форму, появляются воксели-прожилки
а это LOD'ы
источник

Z

ZZZubec(Salamandr) in Alprog I/O
хотя.. для вокселей возможно понадобятся немного другие решения https://youtu.be/J62z_7JaYMw
самое важное тут на последних 30 секундах, но без просмотра всего остального может быть не совсем понятна прелесть.
источник

Z

ZZZubec(Salamandr) in Alprog I/O
ну и это вылилось в движок
https://youtu.be/jItvtnc5hLw
источник

Z

ZZZubec(Salamandr) in Alprog I/O
источник

Z

ZZZubec(Salamandr) in Alprog I/O
если немного подождать, там видео ряд, один за другим
есть даже фотореалистичный чел танцующий в вокселях
источник

АТ

Александр Тужик... in Alprog I/O
Никогда такого не говори
источник

Z

ZZZubec(Salamandr) in Alprog I/O
😞 блин
источник

Z

ZZZubec(Salamandr) in Alprog I/O
плохо прозвучало?
источник

АТ

Александр Тужик... in Alprog I/O
Это лучший способ раздражать людей, которые выбрали писать свой движок
источник

АТ

Александр Тужик... in Alprog I/O
Они это слышат по несколько раз в день и уже устали от этого
источник

Z

ZZZubec(Salamandr) in Alprog I/O
ааа, в этом смысле
источник

АТ

Александр Тужик... in Alprog I/O
:)
источник

Z

ZZZubec(Salamandr) in Alprog I/O
ну да, разработчика обидеть может каждый
источник

АТ

Александр Тужик... in Alprog I/O
Да тут не в обиде дело, а в усталости.
источник