Рендеринг Reyes - это архитектура компьютерного программного обеспечения, используемая в трехмерной компьютерной графике для визуализации фотореалистичных изображений. Он был разработан в середине 1980-х Лореном Карпентером и Робертом Л. Куком в исследовательской группе компьютерной графики Lucasfilm , которая сейчас называется Pixar . [1] Впервые он был использован в 1982 году для рендеринга изображений для последовательности эффектов Генезиса в фильме « Звездный путь II: Гнев Хана» . RenderMan от Pixar был одной из реализаций алгоритма Рейеса до его удаления в 2016 году [2].Согласно оригинальной статье, описывающей алгоритм, система рендеринга изображений Reyes - это «архитектура для быстрого высококачественного рендеринга сложных изображений». Reyes был предложен как совокупность алгоритмов и систем обработки данных. Однако термины «алгоритм» и «архитектура» стали использоваться как синонимы и взаимозаменяемы в этой статье. [ необходима цитата ]
Имя
Reyes - это аббревиатура от Renders Everything You Ever Saw (это название также является каламбуром от Point Reyes , Калифорния, недалеко от того места, где располагалась Lucasfilm) и наводит на мысль о процессах, связанных с системами оптического изображения. Согласно Роберту Л. Куку , Рейес пишется только с заглавной буквы, как и в статье 1987 года Cook / Carpenter / Catmull SIGGRAPH.
Архитектура
Архитектура была разработана с учетом ряда целей:
- Сложность / разнообразие моделей : для создания визуально сложных и богатых изображений пользователи системы рендеринга должны иметь возможность моделировать большое количество (100 000) сложных геометрических структур, возможно, созданных с использованием процедурных моделей, таких как фракталы и системы частиц .
- Сложность затенения : большая часть визуальной сложности сцены возникает из-за того, как световые лучи взаимодействуют с поверхностями твердых объектов. Обычно в компьютерной графике это моделируется с помощью текстур. Текстуры могут быть цветными массивами пикселей, описывать смещения поверхности или прозрачность или отражательную способность поверхности. Reyes позволяет пользователям включать процедурные шейдеры, с помощью которых структура поверхности и оптическое взаимодействие достигается с помощью компьютерных программ, реализующих процедурные алгоритмы, а не простых справочных таблиц. Большая часть алгоритма направлена на минимизацию времени, затрачиваемого процессорами на выборку текстур из хранилищ данных.
- Минимальная трассировка лучей : во время предложения Рейеса компьютерные системы были значительно менее мощными с точки зрения вычислительной мощности и памяти. Это означало, что трассировка лучей фотореалистичной сцены занимала десятки или сотни часов на кадр. Такие алгоритмы, как Reyes, которые обычно не отслеживают лучи, работают намного быстрее с почти фотореалистичными результатами.
- Скорость : рендеринг двухчасового фильма со скоростью 24 кадра в секунду за один год в среднем обеспечивает 3 минуты времени рендеринга на каждый кадр.
- Качество изображения : любое изображение, содержащее нежелательные артефакты, связанные с алгоритмом, считается неприемлемым.
- Гибкость : архитектура должна быть достаточно гибкой, чтобы включать новые методы по мере их появления, без необходимости полной повторной реализации алгоритма.
Рейес эффективно добивается нескольких эффектов, которые считались необходимыми для рендеринга пленочного качества: гладкие, изогнутые поверхности; текстурирование поверхности; размытие движения ; и глубина резкости .
Рейес визуализирует изогнутые поверхности, например те, которые представлены параметрическими участками , путем разделения их на микрополигоны , небольшие четырехугольники, каждый размером менее одного пикселя. Хотя для точной аппроксимации криволинейных поверхностей необходимо множество микрополигонов, их можно обрабатывать с помощью простых параллелизируемых операций. Средство визуализации Reyes разбивает высокоуровневые примитивы на микрополигоны по запросу, разделяя каждый примитив настолько точно, насколько это необходимо, чтобы на конечном изображении выглядело гладким.
Затем шейдерная система назначает цвет и прозрачность каждой вершине микрополигона. Большинство средств визуализации Reyes позволяют пользователям предоставлять произвольные функции освещения и текстурирования, написанные на языке затенения . Микрополигоны обрабатываются в больших сетках, что позволяет векторизовать вычисления .
Закрашенные микрополигоны выбираются в экранном пространстве для получения выходного изображения. Рейес использует инновационный алгоритм скрытой поверхности или хайдер, который выполняет необходимые интеграции для размытия при движении и глубины резкости, не требуя большего количества образцов геометрии или затенения, чем требовалось бы при рендеринге без размытия. Фильтр накапливает цвета микрополигона в каждом пикселе по времени и положению линзы с помощью метода Монте-Карло, называемого стохастической выборкой .
Трубопровод
Базовый конвейер Рейеса состоит из следующих этапов:
- Граница. Вычислите ограничивающий объем каждого геометрического примитива.
- Расколоть. Разбивайте большие примитивы на более мелкие, которые можно нарезать кубиками.
- Игральная кость. Преобразуйте примитив в сетку микрополигонов, каждый размером примерно с пиксель.
- Оттенок. Рассчитайте освещение и затенение в каждой вершине сетки микрополигона.
- Разбейте сетку на отдельные микрополигоны, каждый из которых ограничен и проверяется на видимость.
- Скрывать. Сделайте выборку из микрополигонов, чтобы получить окончательное 2D-изображение.
В этой схеме рендерер должен хранить весь буфер кадра в памяти, поскольку окончательное изображение не может быть выведено до тех пор, пока не будут обработаны все примитивы. Обычная оптимизация памяти вводит этап, называемый ведением, перед этапом нарезания кубиками. Выходное изображение разделено на крупную сетку «сегментов», каждая размером обычно 16 на 16 пикселей. Затем объекты разделяются примерно по границам ковша и помещаются в ковши в зависимости от их местоположения. Каждый сегмент разрезается и рисуется индивидуально, а данные из предыдущего сегмента отбрасываются перед обработкой следующего сегмента. Таким образом, в памяти должны храниться только буфер кадра для текущего сегмента и высокоуровневые описания всех геометрических примитивов. Для типичных сцен это приводит к значительному сокращению использования памяти по сравнению с немодифицированным алгоритмом Рейеса.
Рендереры Reyes
Следующие средства визуализации так или иначе используют алгоритм Рейеса или, по крайней мере, позволяют пользователям выбирать его для создания своих изображений:
- 3Delight от Digits 'n Art ( ссылка )
- Aqsis ( ссылка ) с открытым исходным кодом
- jrMan ( ссылка ) с открытым исходным кодом
- Сервер RenderMan Pro от Pixar и RenderMan для Maya ( ссылка ) до версии 20 (выпущена в 2015 году) [3]
- Pixels 3D Renderer ( ссылка )
- Pixie ( ссылка ) с открытым исходным кодом
- RenderDotC от DotC Software ( ссылка )
- Мантра ПО побочных эффектов ( ссылка )
- Poser's FireFly ( ссылка )
- Пекарня Relight ( ссылка )
Рекомендации
- ^ RenderMan @ 20: Эд Кэтмелл и Дана Батали размышляют о приложении Pixar Killer "
- ^ «Pixar поставляет RenderMan 21 | CG Channel» . 2016-07-20 . Проверено 11 марта 2021 .
- ^ «Pixar поставляет RenderMan 21 | CG Channel» . www.cgchannel.com . Проверено 22 июля 2016 .
- Роберт Л. Кук , Лорен Карпентер и Эдвин Кэтмелл . « Архитектура визуализации изображений Рейеса ». Компьютерная графика ( Труды SIGGRAPH '87) , стр. 95–102.
- Энтони А. Аподака и Ларри Гриц . Advanced RenderMan: создание CGI для движущихся изображений . Издательство Морган Кауфманн. ISBN 1-55860-618-1
Внешние ссылки
- РЕЙС, Примитивы и некоторая философия
- Добро пожаловать в Renderman: Reyes