Компания AMD рассказала о новой возможности своего набора для разработки DGF SDK, добавив в него конвейер кодирования, поддерживающий анимацию. В основе лежит технология Dense Geometry Format (DGF), представляющая собой кэш-дружелюбный формат для сжатых треугольников, который, как ожидается, будет поддерживаться будущими архитектурами GPU.
Основная идея нового подхода заключается в том, чтобы перезаписывать позиции вершин внутри блока DGF анимированными данными в каждом кадре, сохраняя при этом топологию сетки неизменной. Это позволяет эффективно работать с анимациями, где меняется только положение вершин, например, при использовании скелетной анимации или морфинга.
Процесс анимации разделен на несколько этапов. На этапе запуска загружаются все ключевые кадры анимации, но для создания DGF-структуры (Bake DGF) используется только один из них, поскольку топология сетки не меняется. Затем в каждом кадре выполняются три основные операции. Сначала вычислительный шейдер интерполирует данные между ключевыми кадрами для создания анимированных данных вершин. После этого на этапе обновления происходит квантование этих данных и их запись в соответствующие DGF-блоки. Наконец, обновленные блоки используются для рендеринга, включая построение BVH-структуры и последующую трассировку лучей.
Для реализации этого процесса потребовались некоторые корректировки в инструменте DGF Baker. В частности, необходимо использовать специальные настройки, такие как quantizeForAnimations и clusterDeformationPadding, чтобы избежать артефактов из-за смещения вершин за пределы исходных границ. Также применяется фиксированная ширина смещения (blockForcedOffsetWidth), чтобы обеспечить достаточное пространство для данных всех анимированных кадров.
AMD поделилась

