Генератор SDF в реальном времени

Генератор SDF в реальном времени

Demo Team Mesh to SDF — это бесплатный пакет Unity, который в реальном времени генерирует из мешей трёхмерные текстуры Signed Distance Field (SDF) на GPU для использования в эффектах, коллизиях и симуляциях.

Что такое SDF

Signed Distance Field — это способ представления геометрии объекта в виде 3D-текстуры, где каждый воксел хранит расстояние до ближайшей поверхности меша (отрицательное внутри, положительное снаружи). Такие поля широко используются для:

  • Коллизий сложных форм в VFX
  • Визуальных эффектов: реакция частиц на поверхность
  • Симуляций жидкостей, дыма и обтекания;

Основные возможности

  • Генерация на GPU в реальном времени: обновление SDF каждый кадр, что даёт минимальную задержку при динамических объектах и анимации
  • Поддержка статических и визуально деформирующихся мешей: работает с MeshFilter и SkinnedMeshRenderer через компонент MeshToSDF
  • Два основных компонента: MeshToSDF — отвечает за вычисление SDF из меша. SDFTexture — определяет объём и позицию 3D-текстуры для записи SDF
  • Примеры и сэмплы: в пакете есть сцена “MeshToSDF sample” с демонстрацией базовых возможностей
  • Интеграция с VFX Graph и Hair System: готов к использованию как коллизия для частиц, так и как объём для расчёта столкновений волос

Установка и настройка

  • Клонируйте репозиторий:
git clone https://github.com/Unity-Technologies/com.unity.demoteam.mesh-to-sdf.git
  • Добавьте пакет в Unity через Package Manager -> Add package from disk -> выберите package.json в корне репозитория
  • Версия и требования: пакет версии 1.1.0 поддерживает Unity 2021.2+
  • Добавьте компонент MeshToSDF на объект с мешем и настройте параметры SDFTexture (размер, центр, отладочный рендер)

Заключение

Пакет Demo Team Mesh to SDF — мощный и бесплатный инструмент для динамической генерации SDF прямо в Unity. Исходный код:

7
1
Начать дискуссию