XPBD-Решатель (XPBD solver)¶
Нода „XPBD Solver“ предоставляет систему физической симуляции для волос, ткани и частиц. Она реализует алгоритм «расширенной динамики на основе позиций» (XPBD).
Данная нода используется в экспериментальных нодовых ассетах „Hair Dynamics“ и „Cloth Dynamics“.
Нода ожидает поступления данных в виде типизированных связок через входной сокет „World“. Эти данные включают компоненты симулируемой геометрии, объявления структурных ограничений для этой геометрии, а также внешние эффекторы, такие как затухание и столкновения.
Нода „XPBD Solver“ сложна и предназначена для использования внутри более удобных для пользователя ассетов. Полную документацию по её работе и поддерживаемым компонентам входа „World“ можно найти в документации для разработчиков.
Входы (inputs)¶
- Мир (world)
Связка геометрии, поведений и эффекторов, составляющих симуляцию. Связки могут быть вложенными друг в друга; данные мира не обязаны следовать какой-либо строгой структуре. Геометрию и эффекторы можно сгруппировать в логические подсвязки или хранить в виде плоской связки.
- Дельта времени (delta time)
Размер общего временного шага в секундах. Величина шага подразделяется, если используется значение „Substeps“ больше „1“.
- Фильтр (filter)
Список тегов фильтрации (через запятую), определяющий, какие именно геометрии будут симулироваться. Каждая геометрия может иметь свой набор тегов, и нода решателя будет симулировать только те из них, которые содержат хотя бы один из указанных тегов.
- Из симуляции в мир (simulation to world)
Опциональное преобразование из локального пространства объекта в пространство симуляции. Оно определяет систему координат, в которой происходят все физические расчёты. Все атрибуты геометрии, силы и прочие свойства должны быть предварительно преобразованы соответствующим образом. Геометрия коллайдеров преобразуется в пространство симуляции автоматически внутри самой ноды.
Решатель (solver)¶
- Подшагов (substeps)
Количество подшагов симуляции. Увеличение числа подшагов в ряде случаев способствует повышению стабильности, но также увеличивает вычислительные затраты из-за более частых проверок столкновений.
- Итераций ограничений (constraint iterations)
Количество итераций, выполняемых решателем ограничений для обеспечения выполнения всех условий. Если остаточная погрешность превышает „1“, рекомендуется увеличить число итераций.
- Путь (path)
Опциональный путь вывода для данных результата решателя. Если путь не пустой, – в вывод „World“ добавляется новый пакет данных с результатами шага симуляции.
Диапазон интерполяции (interpolation range)¶
- Начало (begin)
Дробное начало интервала подшага. Может использоваться для выполнения внешнего цикла подшагов.
- Начало (begin)
Дробный конец интервала подшага. Может использоваться для выполнения внешнего цикла подшагов.
Выходы (outputs)¶
- Мир (world)
Обновлённые данные симуляции после применения одного временного шага. Атрибуты геометрии для положений и вращений обновляются в соответствии с физическим движением, внешними силами и ограничениями.
Если задан вход „Path“, – в связке может быть сохранена дополнительная информация о результате симуляции, включая значение остаточной погрешности, которое отражает точность вычислений.