Генератор 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. Исходный код:
Начать дискуссию