stringtranslate.com

Подповерхностное рассеяние

Реальное подповерхностное рассеяние света на фотографии человеческой руки
Компьютерное подповерхностное рассеяние в Blender

Подповерхностное рассеяние ( SSS ), также известное как подповерхностный перенос света ( SSLT ), [1] представляет собой механизм переноса света , при котором свет, проникающий через поверхность полупрозрачного объекта, рассеивается при взаимодействии с материалом и потенциально покидает поверхность. другая точка. Свет обычно проникает через поверхность и несколько раз рассеивается под нерегулярными углами внутри материала, а затем выходит обратно из материала под другим углом , чем если бы он отражался непосредственно от поверхности.

Подповерхностное рассеяние важно для реалистичной трехмерной компьютерной графики , оно необходимо для рендеринга таких материалов, как мрамор , кожа , листья , воск и молоко . Если не реализовано подповерхностное рассеяние, материал может выглядеть неестественно, как пластик или металл.

Методы рендеринга

Прямое поверхностное рассеяние (слева) плюс подповерхностное рассеяние (в центре) создают окончательное изображение справа.

Чтобы повысить эффективность рендеринга, многие алгоритмы компьютерной графики в реальном времени вычисляют коэффициент отражения только на *поверхности* объекта. На самом деле многие материалы слегка полупрозрачны: свет проникает на поверхность; поглощается, рассеивается и переизлучается – возможно, в другой точке. Кожа – хороший тому пример; только около 6% отражения является прямым, 94% - результатом подповерхностного рассеяния. [2] Неотъемлемым свойством полупрозрачных материалов является поглощение. Чем дальше сквозь материал проходит свет, тем большая его часть поглощается. Чтобы смоделировать этот эффект, необходимо получить меру расстояния, которое свет прошел через материал.

Случайное блуждание SSS

SSS случайного блуждания в трассировщике пути Equinox3D.
Случайное блуждание SSS + отражение поверхности PBR в трассировщике пути Equinox3D.

Эта техника, опубликованная Pixar, считается новейшей. Обычно интегрирован в трассировщик пути. По сути, он имитирует то, что происходит с реальными фотонами, отслеживая путь света в материале, генерируя новые пути, используя распределение Ламберта вокруг инвертированной нормали, а затем выбирая новые направления на нескольких шагах, чтобы еще больше рассеять путь света, отсюда и название «случайное блуждание». . Изотропное рассеяние моделируется путем равномерного выбора случайных направлений вдоль сферы. Анизотропное рассеяние обычно моделируется с использованием фазовой функции Хеньи-Гринштейна. Например, кожа человека обладает анизотропным рассеянием. Оптическая глубина/поглощение применяется в зависимости от длины пути с использованием закона Бера-Ламберта. Пути могут быть завершены внутри материала, когда они достигают минимального порога вклада или максимального количества итераций. Когда путь (луч) снова попадает на поверхность, он используется для сбора излучения сцены, взвешенного по ламбертову распределению, как в традиционном трассировщике пути. Этот метод интуитивно понятен и устойчив к тонкой геометрии и т. д.

SSS на основе карты глубины

Оценка глубины с использованием карт глубины

Одним из методов оценки этого расстояния является использование карт глубины [3] аналогично картированию теней . Сцена визуализируется с точки зрения источника света в карту глубины, так что расстояние до ближайшей поверхности сохраняется. Затем карта глубины проецируется на нее с использованием стандартного проективного наложения текстур , и сцена повторно визуализируется. В этом проходе при затенении заданной точки расстояние от источника света в точке входа луча на поверхность можно получить путем простого поиска текстуры. Вычитая это значение из точки выхода луча из объекта, мы можем получить оценку расстояния, которое свет прошел через объект. [ нужна цитата ]

Меру расстояния, полученную этим методом, можно использовать несколькими способами. Один из таких способов — использовать его для индексации непосредственно в созданную художником 1D-текстуру, которая экспоненциально падает с расстоянием. Этот подход в сочетании с другими более традиционными моделями освещения позволяет создавать различные материалы, такие как мрамор , нефрит и воск . [ нужна цитата ]

Потенциально могут возникнуть проблемы, если модели невыпуклые, но чтобы избежать этой проблемы, можно использовать глубинный пилинг [4] . Аналогично, глубинный пилинг можно использовать для учета различной плотности под поверхностью, например костей или мышц, чтобы получить более точную модель рассеяния.

Как видно на изображении восковой головки справа, свет не рассеивается при прохождении через объект с использованием этой техники; особенности спины четко видны. Одним из решений этой проблемы является взятие нескольких образцов в разных точках поверхности карты глубины. В качестве альтернативы можно использовать другой подход к аппроксимации, известный как диффузия текстурного пространства . [ нужна цитата ]

Диффузия текстурного пространства

Как отмечалось в начале раздела, одним из наиболее очевидных эффектов подповерхностного рассеяния является общее размытие рассеянного освещения. Вместо произвольного изменения функции диффузии диффузию можно более точно смоделировать, моделируя ее в пространстве текстур . Этот метод был впервые использован при рендеринге лиц в «Матрице: Перезагрузка» [5] , но также используется и в области методов рендеринга в реальном времени.

Метод разворачивает сетку объекта с помощью вершинного шейдера, сначала рассчитывая освещение на основе исходных координат вершин. Затем вершины переназначаются с использованием координат UV-текстуры в качестве положения вершины на экране, подходящего преобразования из диапазона текстурных координат [0, 1] в диапазон нормализованных координат устройства [-1, 1]. Освещая таким образом развернутую сетку, мы получаем 2D-изображение, представляющее освещение объекта, которое затем можно обработать и повторно применить к модели в виде карты освещения . Чтобы имитировать диффузию, текстуру карты освещения можно просто размыть. Рендеринг освещения в текстуру с более низким разрешением сам по себе обеспечивает определенное размытие. Степень размытия, необходимая для точного моделирования подповерхностного рассеяния на коже, все еще находится в стадии активных исследований, но выполнение только одного размытия плохо моделирует истинные эффекты. [6] Чтобы имитировать характер диффузии, зависящий от длины волны, образцы, используемые во время (гауссовского) размытия, могут быть взвешены по каналам. Это своего рода художественный процесс. Для кожи человека наибольшее рассеяние наблюдается у красного цвета, затем у зеленого, а у синего рассеяние очень незначительное. [ нужна цитата ]

Основным преимуществом этого метода является его независимость от разрешения экрана; затенение выполняется только один раз для каждого текселя текстурной карты, а не для каждого пикселя объекта. Таким образом, очевидным требованием является то, чтобы объект имел хорошее UV-преобразование, поскольку каждая точка текстуры должна соответствовать только одной точке объекта. Кроме того, использование диффузии текстурного пространства обеспечивает один из нескольких факторов, способствующих созданию мягких теней, устраняя одну из причин недостатка реализма при отображении теней . [ нужна цитата ]

Смотрите также

Рекомендации

  1. ^ «Окончание: Подземный легкий транспорт» . POV-Ray вики . 8 августа 2012 г.
  2. ^ Кришнасвами, А; Бароноски, ГВГ (2004). «Биофизически обоснованная спектральная модель взаимодействия света с кожей человека» (PDF) . Форум компьютерной графики . Издательство Блэквелл. 23 (3): 331. doi :10.1111/j.1467-8659.2004.00764.x. S2CID  5746906.
  3. ^ Грин, Саймон (2004). «Приближения подповерхностного рассеяния в реальном времени». Драгоценные камни графического процессора . Аддисон-Уэсли Профессионал: 263–278.
  4. ^ Надь, З; Кляйн, Р. (2003). Глубокое очищение для объемного рендеринга на основе текстур (PDF) . 11-я Тихоокеанская конференция по компьютерной графике и приложениям. стр. 429–433. дои : 10.1109/PCCGA.2003.1238289. ISBN 0-7695-2028-6.
  5. ^ Боршуков, Г; Льюис, JP (2005). «Реалистичный рендеринг человеческого лица для «Матрицы: Перезагрузка»» (PDF) . Компьютерная графика . АКМ Пресс.
  6. ^ д'Эон, Э (2007). «Расширенный рендеринг кожи» (PDF) . КРИ 2007 .

Внешние ссылки