Создание актива для рендеринга поля со знаком?

9

В традиционной компьютерной графике большинство трехмерных моделей визуализируется растеризацией или трассировкой лучей по разделенной сетке примитивов, обычно треугольников или четырехугольников. Совсем недавно некоторые методы в реальном времени были основаны на трассировке лучей по полям со знаком (SDF). Интуитивно понятно, что эти поля расстояний не могут быть одинаковыми треугольниками и квадратами традиционного рендеринга и должны быть чем-то вроде трехмерных геометрических примитивов (кубов, сфер и т. Д.), Чтобы получить правильное затенение. Это правда? Если нет, могут ли сложные сцены «традиционных» 3D-моделей быть представлены с помощью SDF? Если это правда, то как художники создают высокодетализированные модели, используемые в средствах визуализации SDF?

Mokosha
источник

Ответы:

7

Поля расстояния со знаком популярны в минимальных графических приложениях, таких как демонстрационная сцена, где интересные объекты могут быть синтезированы из нескольких простых аналитических примитивов, таких как сферы или кубы. Однако поля расстояния со знаком не ограничиваются этими простыми объектами, и они не обязательно должны быть разработаны человеком. Например, вы можете синтезировать аналитическое поле расстояния со знаком треугольной сетки без какого-либо взаимодействия с художником - SDF - это всего лишь расстояние со знаком до ближайшего треугольника, которое можно легко вычислить. Это позволяет вам продолжать использовать ваш традиционный конвейер сетки, а также использовать SDF в фоновом режиме.

В случае Unreal Engine SDF автоматически рассчитывается один раз для всех статических сеток, а затем дискретизируется в трехмерную текстуру низкого разрешения. Затем его можно недорого оценить везде, используя простой поиск текстур, что позволяет им делать мягкие тени и тому подобное во время выполнения. В этой презентации Unreal на GDC 2011 кратко упоминаются трехмерные текстуры (слайд 27).

Бенедикт Биттерли
источник
1
Также легко генерировать SDF из воксельной модели.
Натан Рид
Существует статья о графических процессорах Gems 3 о построении полей расстояний со знаком для произвольных сеток с использованием графического процессора, которая находится в свободном доступе здесь: http.developer.nvidia.com/GPUGems3/gpugems3_ch34.html
Маттео Бертелло,