Рендеринг Рейеса

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