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

Подповерхностное рассеивание
Трёхмерная модель бюста, в освещении которого задействовано подповерхностное рассеивание.
Ещё один пример подповерхностного рассеивания. Модель смоделирована и отрендерена в Blender.

Подповерхностное рассеивание (англ. Subsurface scattering, SSS) — программная техника (методика) в трёхмерной компьютерной графике, описывающая распространение света через полупрозрачные тела. Суть подповерхностного рассеивания состоит в симуляции распространения света в полупрозрачных сплошных телах (объектах, материалах). Подповерхностное рассеивание описывает механизм распространения света, при котором свет, проникая внутрь полупрозрачного тела через его поверхность, рассеивается внутри самого тела, многократно отражаясь от частиц тела в случайном направлении и на нерегулярные углы. В итоге свет выходит из объекта в выходной точке, отличной от точки вхождения в объект. Подповерхностное рассеивание играет важную роль в трёхмерной компьютерной графике как реального времени, так и в офф-лайновых вычислениях. Подповерхностное рассеивание жизненно необходимо для корректного рендеринга таких материалов, как мрамор, кожа, молоко, нефрит, воск (парафин) и многие другие.

Содержание

Физическое описание

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

Методики рендеринга подповерхностного рассеивания

Существует несколько методов реализации подповерхностного рассеивания. Первый метод основан на использовании карты глубины (англ. depth maps). Второй метод использует текстурное пространство. Третий метод — это всевозможные фейковые (ложные) подходы, которые создают видимость использования алгоритма подповерхностного рассеивания, но добиваются этого эффекта другими путями.

Прямое поверхностное рассеивание (слева) + подповерхностное рассеивание (в центре) = финальный результат (справа)
Прямое поверхностное рассеивание (слева) + подповерхностное рассеивание (в центре) = финальный результат (справа)

Метод карт глубины

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

Метод карт глубины находит расстояние, которое прошел луч света внутри объекта, и на основе этого вычисляет рассеивание. Суть метода заключается в считывании значения из текстуры глубины (из позиции источника света). Этим метод карт глубины сильно похож на метод теневых карт (англ. Shadow mapping).[2] Сцена рендерится с точки зрения источника света в карту глубины; таким образом, расстояние до самой дальней поверхности сохранено. Потом карта глубины проецируется на поверхность с использованием стандартного проективного текстурного маппинга (англ. Projective texture mapping) и после этого сцена рендерится по-новому. В этом проходе, когда затеняется данная точка, расстояние от света в точке, где луч света пересёк поверхность, может быть получена путём простого текстурного поиска. Вычитая это значение точки, где луч покинул объект, мы можем получить расстояние, которое прошел луч внутри объекта.

Значение расстояния, получаемое этим методом, может использоваться несколькими способами. Одним из таких путей является использование величины расстояния в индексе, который непосредственно использует художник при создании одномерной текстуры, которая будет экспоненциально убывать с расстоянием. Этот подход в комбинации с другими более традиционными моделями освещения позволяет создавать различные материалы, такие как жад и воск.

Если модели, к которым применяется подповерхностное рассеивание, не выпуклые, то могут возникнуть проблемы. Однако данная проблема решается с помощью методики «depth peeling» (дословно рус. отслаивание глубины)[3]. Аналогичным образом «depth peeling» можно использовать для учета различной плотности материалов под поверхностью, таких как кости или мышцы, чтобы затем дать более точные модели рассеивания.

Метод диффузии текстурного пространства

Одним из наиболее очевидных эффектов подповерхностного рассеивания является общая размытость рассеяного (диффузного) света. Вместо того, чтобы произвольно изменять функцию диффузии, можно более точно смоделировать диффузию, симулируя её в текстурном пространстве. Эта методика впервые использовалась для рендеринга лиц в фильме Матрица: Перезагрузка[4], а потом стала использоваться и в интерактивной трёхмерной графике.

Примечания

  1. Krishnaswamy, A (2004). «A Biophysically-based Spectral Model of Light Interaction with Human Skin». Computer Graphics Forum (Blackwell Publishing) 23 (3): 331. DOI:10.1111/j.1467-8659.2004.00764.x.
  2. Green, Simon (2004). «Real-time Approximations to Subsurface Scattering». GPU Gems (Addison-Wesley Professional): 263–278.
  3. Nagy, Z (2003). «Depth-Peeling for Texture-based Volume Rendering». 11th Pacific Conference on Computer Graphics and Applications: 429.
  4. Borshukov, G (2005). «Realistic human face rendering for "The Matrix Reloaded"». Computer Graphics (ACM Press).

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


Wikimedia Foundation. 2010.

Смотреть что такое "Подповерхностное рассеивание" в других словарях:

  • CryEngine 2 — Игровой движок (Список) Официальный логотип движка …   Википедия

  • Call of Juarez: Bound in Blood — Обложка игры Разработчик Techland Издатель Ubisoft Entertainment Локализатор 1С[1] …   Википедия

  • Bugbear Game Engine — Игровой движок (Список) Разработчик Bugbear Entertainment Аппаратная платформа ПК Xbox Xbox 360 PlayStation 2 Поддерживаемая ОС Microsoft …   Википедия

  • Рапунцель: Запутанная история — У этого термина существуют и другие значения, см. Рапунцель (значения). Рапунцель: Запутанная история англ. Tangled …   Википедия

  • глобальное освещение — В глобальной модели освещения, global illumination, рассчитывается освещение с учетом влияния объектов друг на друга, учитываются многократные отражения и преломления лучей света от поверхностей объектов, каустика (caustics) и подповерхностное… …   Справочник технического переводчика


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»