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

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

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

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

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

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

1.gif

fsh.jpgfsh2.jpgfsh2.gif

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

642 0 850 7
9
2020-07-11
Это разве не морфинг? Или шейп кеи
2020-07-11
Статье нужно больше картинок с примерами, и желательно пошлагово
2020-07-11
А лучше - видео.
2020-07-12
Ох дружище виделбы ты что в геймдеве творят с каналами геометрии чтобы обойти ограничения движков!!))
2020-07-13
Джен, например что?
2020-07-13
Йоба, на абзацы хоть текст разделяйте...
2020-07-15
вот https://vimeo.com/266619974
2020-07-15
чисто скелетная анимация на шейдере собирается из юв каналов в вектора и тд может быть уникальна для всех инстансов
2020-07-15
в этом примере показана возможность трансляции анимации через вектор цвета в вектор позиции вертексов
RENDER.RU