Назад в библиотеку

Методы рендеринга, которые вносят систематические ошибки в расчеты

Автор: Keenan Crane

Автор перевода: М.В. Каламитра
Источник: http://multires.caltech.edu/~keenan/bias.pdf

Contents

Что значит «методы с допущениями»?

Unbiased и consistent – это два термина, которые люди используют для описания ошибки в алгоритме рендеринга. Хотя, определенное поведение ошибки может быть не интересным, так как это может значительно влиять на то, как легко используется метод и насколько он надежный (другими словами, насколько хорошо алгоритм будет работать на различных сценах).

Некоторые люди предпочитают методы, не вносящие ошибки в расчеты, потому что они ограничивают появление ошибки. Имея в наличии хорошее приближение ошибки, можно легко узнать когда потребутеся больше вычислений. Также, это означает, что несколько параметров могут быть отрегулированы с целью продуцирования качественного изображения.

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

Повсеместно существует компромисс между быстрыми, методами с допущениями и надежными, методами без допущений. Однако, не трудно доказать, что алгоритмы без допущений должны быть медленными или то, что алгоритм с допущениями не может быть надежным. Огромное множество коммерческих приложений используют быструю аппроксимацию (растеризацию и REYES), которые не являются методами без допущений, консистентными и надежными!

Методы без допущений против Консистентных

Оба метода с допущениями (темно-серые) и без  допущений (светло-серые) методы могут быть консистентными, но ошибка в  методе без допущений всегда предсказуема. Много популярных методов (черный) быстро сходятся  к неправильному решению!

Рисунок 1 - Оба метода с допущениями (темно-серые) и без допущений (светло-серые) могут быть консистентными, но ошибка в методе без допущений всегда предсказуема. Много популярных методов (черный) быстро сходятся к неправильному решению!

Люди часто путают термин unbiased с термином consistent; например, вы могли слышать, что кто-то сказал (некорректно), «фотонные карты – это метод, не вносящий ошибки в расчеты, так как он сходится к правильному решению» . Эти два термина имеют два точных и разных значения, и очень важно понимать разницу.

Консистентность легко понять: если приближение стремится к правильному решению по мере увеличения времени вычислений, тогда метод является консистентным. Однако, просто знать, что метод является консистентным говорит вам очень мало. Так, например, он не говорит вам, как быстро метод сходится к правильному решению, а также не дает никаких ограничений на ошибки. В целом, оценка FN для количества I консистентна для E если

formula

Другими словами, если мы возьмем больше сэмплов, вероятность ошибки будет больше, чем некоторое число Е, стремящееся к нулю. Наиболее часто, «консистентный» означает только Е=0, то есть, оценка стремится к определенному решению.

Bias – понятие тонкое: метод считается без допущений, если он в среднем производит корректное изображение. Легкий способ узнать о допущениях в рендеринге, нужно спросить: «если я буду рендерить одно и тоже изображение миллион раз, используя разные случайные числа, станут ли усредненные результаты давать правильное решение?». Если ответ «нет», то вероятно имеем дело с алгоритмом, вносящий ошибки в расчеты.

Формально, оценка считается без допущений, если

formula

То есть, ожидаемая оценка или допущения равны нулю – несмотря на значение N. Изображение, которое визуализируется с помощью трассировки пути с одним сэмплом на пиксель – по-прежнему остается несмещенной оценкой для корректного изображения, потому что, если усреднить миллион изображений, полученных при помощи трассировки пути с одним сэмплом на пиксель, в итоге мы получим правильное решение. Для метода без допущений ошибка пропорциональна дисперсии оценки, которая равна 1/N Var[f], где f – это подынтегральная функция.

Каковы наиболее распространенные источники допущений в алгоритмах рендеринга?

Существует много потенциальных источников допущений. Алгоритм рендеринга обычно с допущениями потому, что он игнорирует некоторые типы световых эффектов, это нарушает вклад различных световых эффектов в изображение, или он просто не точно вычисляет количество света. Большинство методов вносят ошибки в расчеты, потому что они игнорируют определенные классы путей света (например, свет, который отскакивает от зеркал или фокусируется через стекло). В этом случае, результат темнее, чем корректное изображение и возможна утечка важных визуальных эффектов. Методы реального времени обычно пропускают расчеты видимости, которые требуются для корректного затенения, на выходе же картинка получается слишком яркой. Другие методы вносят допущения через интерполяцию среди разбросанного набора сэмплов, игнорируя высоко-частотные свойства и тем самым получая размытую картинку. Геометрическое сглаживание (например, аппроксимация гладкой поверхности с треугольниками) может также оказаться источником допущений. Однако, во время анализа алгоритмов рендеринга, мы полагаем, что сцена описывается, как то что мы хотим рендерить, и фокусируемся на ошибке, связанной с поддержкой путей света, как свет рассеивается и распространяется через сцену.

Слева пути света, которые ударяются несколько раз, прежде чем достигнуть вируальной камеры. Справа: Такие пути могут быть сильно светиться...

Рисунок 2 - Слева пути света, которые ударяются несколько раз, прежде чем достигнуть вируальной камеры. Справа: Такие пути могут быть сильно светиться...

Какие алгоритмы рендеринга консистентные? Какие методы без допущений?

Всего несколько алгоритмов рендеринга, которые полностью без допущений: даже трассировки пути, которая считается надежным алгоритмом, игнорирует некоторые типы путей света. Ниже представлены несколько наиболее популярных алгоритмов рендеринга и их соотвествующие источники ошибок. Различные типы путей света указываются с использованием регулярных выражений обозначения автора (Heckbert), где L – это источник света, E – виртуальная камера, D – это диффузное отскакивание, S – это зеркальное отскакивание, и «*» означает «ноль или больше».

Метод Без допущений Консистетный Примечание
Метод излучательности Стандартный метод излучательности учитывает только пути вида LD * E – свет диффузно отскакивает от одной поверхности к другой, пока он не попадет в вируальную камеру. Кроме того, освещенность вычисляется по крупной сетке, которая может не правильно захватить тени. Хотя последний источник ошибок исчезает по мере увеличения разрешения сетки, метод излучательности всегда пренебрегает некоторыми типами путей света. Таким образом, это он не является консистентным.
Трассировка путей + + Трассировка пути, как правило, точный способ вычисления эталонного изображения, но есть несколько патологических случая, когда он не будет выполнен.[Veach], pp 237-240.
Двунаправленная трассировка путей + + При подключении подпутей начиная от обоих концов и света, двунаправленный путь избегает случаев, которые можно обойти с помощью стандартной трассировкой пути, что избавляет от участия быть методом без допущений.
Metropolis light transport + + Когда MLT использует эргодический набор правил мутации – он является методом без допущений. Другими словами, до тех пор, пока мы в состоянии исследовать все пути, которые потенциально могут нести свет, подробный баланс гарантирует, что мы будем сходиться к правильному ответу.
Фотонные карты + Есть несколько источников погрешности в фотонных картах, но понять, что этот метод с допущениями легче, учитывая что случится, если большое количество изображений будут генерироваться усредненно с помощью фотонных карт. Например, если мы имеем слишком мало фотонов в каустической карте, каустики будут размыты из-за интерполяции. Усреднения большого количества размытых каустик не приведет к резким каустикам – другими словами, мы не ожидаем получить в среднем правильный ответ. С другой стороны, по мере увеличения числа фотонов в фотонной карте, область для каждой оценки плотности сжимается в точку. В пределе, фотоны используются для оценки освещенности в точке, что будет соответствовать концу света субпутей в этой точке. Таким образом, до тех пор, пока карта фотонов содержит правильное распределение путей, фотонные карты являются консистентным методом.
Растеризация Большинство визуализаций в реальном времени выполняются с использованием API, таких как OpenGL или DirectX, которые выполняют все затенения на основе информации, переданной каждому треугольнику с помощью растеризатора. Традиционно, эти рамки были ограничены интеграцией путей вида LDE – пути, которые отскакивают от одной диффузной поверхности прежде, чем поразить виртуальную камеру. Более поздние программируемые графические карты могут оказать большее разнообразие явлений. Таким образом, большинство изображений, полученных с помощью растеризации не будут производить правильного решения, независимо от уровня качества. Современные API реального времени, представляют собой мутацию, пример компромисса между скоростью и надежностью: практически любой эффект может быть достигнут в режиме реального времени.

Будет ли алгоритм рендеринга без допущений визуализировать корректное изображение?

Рассмотрим сцену, где у нас есть чрезвычайно мощный источник света в одной комнате и камеру в соседней комнате, где две комнаты соединены только микроскопическим отверстием (как на фото ниже). Даже с самым эффективным алгоритмом рендеринга, это может занять сотни тысяч образцов, чтобы найти путь, который соединяет свет в камере. Если наш критерий остановки – это функция выборочной дисперсий, мы прекратим задолго до того, найдя такой путь, поскольку мы не можем точно оценить постоянные ошибки в дальнейшем. Тем не менее, мы всегда можем сделать свет достаточно ярким, так что он будет иметь существенное влияние на видимое освещение. В общем, гарантируя, что изображение правильное гораздо сложнее, чем просто найти алгоритм, не вносящий ошибок в расчеты.

Picture_last