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

Прямое поверхностное рассеяние (слева) плюс подповерхностное рассеяние (посередине) создает окончательное изображение справа.
Компьютерное подповерхностное рассеяние в Блендер
Подповерхностное рассеяние света в реальном мире на фотографии человеческой руки

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

Техники рендеринга

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

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

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

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

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

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

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

Распространение текстурного пространства

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

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

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

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

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

  1. ^ «Финиш: подземный легкий транспорт». POV-Ray вики. 8 августа 2012 г.
  2. ^ Кришнасвами, А; Бароноски, ГВГ (2004). «Биофизическая спектральная модель взаимодействия света с кожей человека» (PDF). Форум компьютерной графики. Блэквелл Паблишинг. 23 (3): 331. Дои:10.1111 / j.1467-8659.2004.00764.x.
  3. ^ Грин, Саймон (2004). "Аппроксимация подповерхностного рассеяния в реальном времени". Камни GPU. Аддисон-Уэсли Профессионал: 263–278.
  4. ^ Надь, Z; Кляйн, Р. (2003). «Глубокий пилинг для визуализации объема на основе текстуры» (PDF). 11-я Тихоокеанская конференция по компьютерной графике и приложениям: 429.
  5. ^ Борщуков, Г; Льюис, Дж. П. (2005). «Реалистичный рендеринг человеческого лица для» The Matrix Reloaded"" (PDF). Компьютерная графика. ACM Press.
  6. ^ d’Eon, E (2007). «Продвинутая обработка кожи» (PDF). GDC 2007.

внешняя ссылка