DNEG награждена на технической премии CVMP 2023
Команда, создавшая гравитационный рендерер для «Интерстеллара», получила премию за сотрудничество. Вчера на 20-й европейской конференции ACM SIGGRAPH по производству визуальных медиа (CVMP) наша группа, разработавшая инструмент Double Negative Gravitational Renderer (DNGR), была удостоена Collaboration Award — награды за совместные усилия в проекте, объединившем индустрию и академическую науку!
Инструмент создавался для получения культовых изображений чёрных дыр и червоточин в «Интерстелларе». Проект, завершённый в 2015 году, стал плодом сотрудничества профессора КИПТ КИПА ТОРНА и главного учёного DNEG Оливера Джеймса, возглавлявшего нашу команду разработчиков: Саймона Пабста, Силвана Дикмана, Пола-Джорджа Робертса и Дамьена Мопу. За напряжённые семь месяцев они превратили гору уравнений в код, создав наиболее точное на тот момент изображение чёрной дыры и червоточины!
Беспрецедентная детализация DNGR привела к публикации двух научных статей и сделала инструмент полезным для астрофизических исследований, открыв новые представления о гравитационном линзировании. Подробнее о разработке Double Negative Gravitational Renderer можно узнать здесь.
О работе над проектом Оливер Джеймс сказал: «Сотрудничество с профессором Торном позволило нам пойти на смелые риски, зная, что за нашей спиной стоит мировой эксперт. Строгое соблюдение физики позволило созданному инструменту выйти далеко за рамки кинопроизводства — он применяется в образовании, просвещении и даже в научных исследованиях».
Профессор Торн добавил: «Необходимость создавать IMAX-качественные изображения объектов у чёрной дыры подтолкнула меня и моих коллег из DNEG к разработке и оттачиванию принципиально нового подхода — того самого, что воплотился в гравитационном рендерере DNEG. Этот замечательный код не только дал потрясающие кадры раскалённого газа, вихрющегося вокруг чёрной дыры Гаргантюа в «Интерстелларе», но и стал надежным рабочим инструментом для изучения причудливых аспектов астрофизического гравитационного линзирования звёзд чёрными дырами».
Помимо «Интерстеллара» 2014 года, DNGR использовался при разработке визуального стиля первого сезона «Фундамента», в живом шоу Брайана Кокса Universal, а также в образовательных видео для планетария Тихо Браге в Копенгагене и посетительского центра обсерватории Маунт-Стромло в Канберре. Поздравляем команду с этой наградой!
—
GitHub — nicolasgfx/gargantua: Код, основанный на статье «Гравитационное линзирование вращающихся чёрных дыр в астрофизике и в фильме "Интерстеллар"» · GitHub
Физически точный рейтрейсер чёрной дыры Керра с интеграцией геодезических на GPU. Воспроизводит гравитационное линзирование, показанное в фильме «Интерстеллар», на основе уравнений из оригинальной статьи по визуальным эффектам научного консультанта фильма. Эта реализация следует работе Джеймса, фон Тунцельмана, Франклина и Торна (2015) «Гравитационное линзирование вращающихся чёрных дыр в астрофизике и в фильме "Интерстеллар"» (arXiv:1502.03808). Команда DNGR (Double Negative Gravitational Renderer) студии Double Negative VFX разработала оригинальный рендерер для фильма; данный проект переписывает их основной алгоритм с нуля в одном CUDA-файле.
Геометрия пространства-времени вращающейся чёрной дыры массы… [далее идут формулы, которые лучше оставить как есть, так как это техническая документация]
Параметры камеры: FIDO (Fiducial Observer) в позиции… [формулы]
Тонкий аккреционный диск следует температурному профилю Новикова-Торна: нормализован так, что… [формулы]
Релятивистский g-фактор (отношение наблюдаемой частоты к излучаемой) учитывает доплеровский сдвиг и гравитационное красное смещение: где… [формулы]
Температура преобразуется в цвет через приближение абсолютно чёрного тела по CIE. Процедурный шум fBm модулирует границы диска, создавая вырванную, филаментную структуру, описанную в разделе 4.3.2 статьи.
— С нуля — без игрового движка, без промежуточного ПО, только C++/CUDA
— Один файл — весь рейтрейсер в gargantua_cuda.cu (~960 строк)
— Двойной GPU/CPU — CUDA на NVIDIA GPU, запасной вариант OpenMP с флагом -DCPU_ONLY
— Реальные геодезические — полная интеграция метрики Керра, без приближений
— Физически обоснованный — диск Новикова-Торна, излучение абсолютно чёрного тела, релятивистское усиление
— Точность «Интерстеллара» — спин a = 0.6, доплер выключен, соответствует художественным решениям фильма
— Интеграция геодезических методом Рунге-Кутты 4-го порядка с адаптивным шагом
— 2×2 стратифицированное суперсэмплирование (антиалиасинг)
— Множественные пересечения диска (первичные, вторичные и высшие порядки изображений)
— Композитинг полупрозрачного диска с альфа-смешением
— Процедурный шум Перлина fBm для вырванных краев диска и филаментов
— Многопроходная гауссовская пост-обработка bloom
— Тонмаппинг Рейнхарда с настраиваемой экспозицией
— Построчный пакетный запуск CUDA-ядра (безопасно для Windows TDR)
— Автоматический расчёт ISCO из параметра спина
Все параметры находятся в структуре Config в начале gargantua_cuda.cu:
[таблица параметров с дефолтными значениями и описаниями — переводить заголовки и описания, значения оставлять]
— CUDA Toolkit (проверялось с 12.x)
— NVIDIA GPU (проверялось на RTX 4070 SUPER, compute capability 8.9)
— Visual Studio 2022 (Windows) или nvcc в PATH (Linux)
Для сборки только CPU нужен компилятор C++11 с поддержкой OpenMP.
Сборка:
chmod +x build_cuda.sh
./build_cuda.sh
или для CPU:
g++ -O3 -fopenmp -x c++ -DCPU_ONLY gargantua_cuda.cu -o gargantua_cpu -lm
Запуск:
./gargantua_cuda
Результат — gargantua.ppm (формат NetPBM). Конвертация в PNG:
ffmpeg -i gargantua.ppm gargantua.png
Директория volume_generator/ содержит отдельный инструмент для генерации 3D-объёмных данных чёрной дыры Керра для использования в Blender, Houdini или ParaView. Он экспортирует 13 физических каналов (SDF горизонта, SDF эргосферы, плотность и температуру аккреционного диска, кеплерово скоростное поле и 5 компонент метрики Керра-Шилда) в собственный бинарный формат .bhvol. Экспорт в OpenVDB поддерживается через convert_to_vdb.py — конвертирует .bhvol в стандартные .vdb, загружаемые как объёмные объекты в Blender или Houdini. Экспорт сетки горизонта в .glb (glTF) также доступен через export_horizon_mesh.py.
Полная метрика Керра-Шилда может быть восстановлена в любой вокселе из сохранённых каналов: это даёт все 10 независимых компонент метрики пространства-времени в координатах, проникающих через горизонт — без координатной сингулярности на горизонте событий. Подробности в volume_generator/README.md: инструкции по сборке, опции CLI, спецификация формата .bhvol и руководство по интеграции с патhtрейсером.
Ссылки:
— James, O., von Tunzelmann, E., Franklin, P. & Thorne, K. S. (2015). Gravitational Lensing by Spinning Black Holes in Astrophysics, and in the Movie Interstellar. Classical and Quantum Gravity, 32(6). arXiv:1502.03808
— kavan010/gravity_sim — смежный проект N-body гравитационной симуляции
—
Гравитационное линзирование вращающихся чёрных дыр
DNEG публикует научные статьи о вращающихся чёрных дырах. Double Negative Gravitational Renderer (DNGR) — это программный код, использованный для создания культовых изображений чёрных дыр и червоточин в фильме «Интерстеллар». Он стал результатом годолётного сотрудничества профессора Кипа Торна и главного учёного Double Negative Оливера Джеймса, возглавлявшего небольшую команду разработчиков. DNGR использует уравнения общей теории относительности для трассировки лучей света, изгибаемых и деформируемых колоссальной гравитацией чёрной дыры. Лучи могут временно попадать в ловушку, многократно обращаясь вокруг дыры перед тем, как достичь камеры. В этом процессе их поперечные сечения растягиваются и сжимаются, усиливая свет в малых областях — что создаёт мерцающие узоры в звездном свете; а тонкие аккреционные диски искривляются в радужные потоки огня, простирающиеся над и под чёрной дырой.
Беспрецедентная детальность, раскрываемая DNGR, сделала его инструментом для астрофизических исследований, даруя новые представления о гравитационном линзировании. Ниже приведены изображения и видеоролики, обсуждаемые в нашей статье «Гравитационное линзирование вращающихся чёрных дыр в астрофизике и в фильме "Интерстеллар"», доступной для бесплатного скачивания здесь:
Опубликовано IoP в Classical and Quantum Gravity
James O, von Tunzelmann E, Franklin P and Thorne K S 2015 Class. Quantum Grav. 32 065001
(Также может быть интересна наша техническая статья «Червоточина "Интерстеллара"»)
Во всех этих роликах чёрная дыра имеет спин 0.999 от максимального, а камера находится на радиусах 6.03 GM/c² или 2.6 GM/c², где M — масса чёрной дыры, G и n — гравитационная постоянная Ньютона и скорость света. Наблюдатель движется по круговой геодезической орбите.
Видео: Вид звездного неба под воздействием гравитационного линзирования. Камера на радиусе r=2.6 GM/c²
Видео: Вид звездного неба под воздействием гравитационного линзирования. Камера на радиусе r=6.03 GM/c²
Видео: Вид звездного неба под воздействием гравитационного линзирования. Камера на радиусе r=6.03 GM/c². Первичная и вторичная критические кривые наложены фиолетовым, а траектория звезды на полярном угле 0.608 pi — красным.
Видео: Для камеры на радиусе rc = 6.03 GM/c²: Анимация, показывающая соответствие между точками на первичной критической кривой в небе камеры и первичной каустической кривой на небесной сфере.
Видео: Для камеры на радиусе rc = 6.03 GM/c²: Анимация, показывающая соответствие между точками на вторичной критической кривой в небе камеры и вторичной каустической кривой на небесной сфере.
Видео: Для камеры на радиусе rc = 2.6 GM/c²: Анимация, показывающая соответствие между точками на первичной критической кривой в небе камеры и первичной каустической кривой на небесной сфере.
Видео: Для камеры на радиусе rc = 2.6 GM/c²: Анимация, показывающая соответствие между точками на вторичной критической кривой в небе камеры и вторичной каустической кривой на небесной сфере.
Видео: Для камеры на радиусе rc = 2.6 GM/c²: Анимация, показывающая соответствие между точками на третичной критической кривой в небе камеры и третичной каустической кривой на небесной сфере.
Команда разработки DNGR: Оливер Джеймс, Силван Дикман, Саймон Пабст, Дамьен Мопу, Пол-Джордж Робертс, Шейн Кристофер
VFX-супервайзер: Пол Франклин
CG-супервайзер: Эвжени фон Тунцельман