Наша новая игра 8 сентября в раннем доступе на steam



Рендеринг: облачные решения глобального освещения

Это третья часть перевода подробной статьи о профессиональном рендеринге. Вторая часть была о глобальном освещении.

1.2 Ray tracing против решений на основе облака точек.

Ray tracing (трассировка лучей, рейтрейсинг) – лишь один из подходов к реализации глобального освещения. Его основной конкурент – point based GI (глобалка на основе облака точек, еще по тексту вы встретите название point source). На самом деле, терминология может немного сбивать с толку: решение может быть вообще не основано на ray tracing, но все же содержать какие-то процедуры с испусканием лучей. Однако в этой статье, говоря «ray tracing», мы будем говорить о полностью честных алгоритмах трассировки лучей или путей.

Перед обсуждением ray tracing важно понять, как работает point based GI, поскольку на реальном производстве финальный результат достигается комбинацией способов. К примеру, последний фильм от Pixar Monsters University в основном построен на трассировке лучей и физически корректных текстурах и освещении. Но для подповерхностного рассеяния (SSS) было использовано point based решение (возможно, в следующем фильме это будет по-другому). SSS – это способ просчета мягкого свечения для кожи, которая особенно сильно рассеивает красный цвет, чтоб получить «восковое» ощущение живой кожи, а не гладкого пластика. SSS – ключевой эффект в персонажной анимации, и он не так уж нов. К примеру, Джо Леттери (Joe Letteri, старший VFX супервайзер Weta Digital) усиленно использовал его в трилогии «Властелин колец» (смотрите интервью 2004-го года от fxg), и именно SSS был ключом успеха прорывной визулизации Голлума. SSS очень дорог и сложен в просчете для brute force трассировщика, но вполне достижим для point source решений.

Джо Леттери старший VFX супервайзер анимационной студии Weta Digital

Джо Леттери из Weta Digital рассказывает fxguide о приходе в его студию эры освещения и рендеринга на основе реальной физики. Скачать видео.

Point-based GI – метод сам по себе относительно новый и быстрый. К тому же, он, в отличие от рейтрейсинга, не подвержен шуму. «Впервые метод был использован для Pirates of the Caribbean 2 и Surf’s Up, и с тех пор – в более чем в 40 других фильмах» (2012 Per H. Christensen и др.).

Point-based GI — это многопроходный метод:

  • Первый проход генерирует облако точек из данных о прямом освещении микрополигонов.
  • Второй проход рассчитывает n-1 отскоков глобального освещения для облака точек (второй проход может быть пропущен, если нужен только один отскок).
  • Третий проход рассчитывает и рендерит непрямое освещение из облака точек.

Многопроходность метода делала его неудобным для интерактивной настройки освещения. Последняя версия от Pixar описана в статье 2012 Per H. Chistensen. Подход основан на сохранении значений radiosity (радиосити - метод излучения, который позволяет получить мягкую полутоновую освещённость, другими словами - это диффузионное отражение), рассчитанного, как постэффект для материала, для вершин микрополигонной сетки. Кэширование radiocity позволило команде Pixar запоминать и многократно использовать прямое и непрямое освещение, уменьшая количество шейдерных вычислений. Просчет шейдеров сразу для всей сетки из точек, вместо просчета для каждой точки отдельно, позволил использовать архитектуру SIMD (когда одна текущая команда исполняется несколькими параллельными процессорами) при REYES рендеринге (другими словами - это уже не рейтрейсинг). Авторы отмечают, что их метод совпадает с методом кэширования освещенности Грега Уорда (Greg Ward), который был настоящим пионером во многих вопросах radiocity и HDR (смотрите статью 2005-го года Art of HDR).

Для Университета Монстров Pixar изначально планировала использовать решения с неполной трассировкой. Проблемным было производственное использование ray traced GI для сцен с тяжелой геометрией и сложными шейдерами. По оценке команды Pixar, узким местом было не время на трассировку вообще, а время на обработку:

  • дисплейсмента,
  • источников света и
  • поверхностей в точках падения лучей (а последнее, заметим, в свою очередь включает время на наложение текстурных карт, генерацию процедурных текстур, вычисление теней и отражений (BRDF), время на подготовку и выполнение шейдеров, вызов внешних модулей и так далее).

Точечное решение (point solution) означало: «Мы уменьшим время, отделив видонезависимую (к примеру, блики зависят от угла, под которым мы смотрим на материал) часть шейдера (т.е. отделим radosity, которая нужна для GI) и кэшируем ее. При распределенной (сетевой) трассировке GI, radiosity считается по запросу (только когда надо) и используются повторно множество раз. Кстати, при таком кэшировании нужно меньше лучей для теней.»

Кэширование radiosity включено в Pixar-овский PhotoRealistic RenderMan, который поддерживает и прогрессивный ray tracing, и REYES рендеринг. Кэш содержит radiosity для участков поверхности в нескольких разрешениях.

«В результате мы имеем однопроходный метод глобального освещения, быстрый и достаточно гибкий для использования в кинопроизводстве — как для интерактивной настройки материалов и освещения, так и для финального рендеринга. Кэщирование radiosity дает прирост скорости в 3-12 раз для простых сцен, и более чем в 30 раз — для реальных продакшн сцен», говорится в статье. И действительно, сравнение ранних версий RenderMan с его новой версией, продемонстрированное на прошлогоднем RenderMan User Group 2012, было чрезвычайно впечатляющим.

Так зачем мучиться и использовать трассировку? Если другие замечательные методы могут работать в десятки раз быстрее, зачем даже рассматривать решения, полностью основанные на рейтрейсинге? Как заставить рейтрейсер рендерить настолько быстро, насколько вообще возможно? Что еще интересней, даже для собственного мультика Monster University (MU) Pixar использовала точечное решение (point solution) только для просчета SSS (использовался знаменитый теперь дипольный метод Йенсена (Jensen), или его разновидность, когда SSS моделируется рассеянием, то есть вид данной точки определяется интегралом по поверхности от произведения функции рассеяния (diffusion kernel) на плотность облучения (случайное освещение) поверхности). Зачем Pixar вообще смотрела в сторону практически полного рейтрейсинга для MU?

Читайте продолжение - Как получают реалистичные материалы и освещение.

Спасибо Андрею Пшеничному за перевод!



Подпишитесь на обновление блога (вот 3 причины для этого).
Введите ваш e-mail:





Вам понравилась статья? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.

Введите ваш e-mail (используется только для отправления обновлений блога):

Извините, в данный момент комметарии закрыты.

© 2008 - 2018 3dyuriki.com
Для связи со мной 3dyuriki@gmail.com