stringtranslate.com

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

Рендер чайника из Юты от Aqsis Reyes с шейдером смещения

Рендеринг Reyes — это архитектура компьютерного программного обеспечения, используемая в 3D-графике для рендеринга фотореалистичных изображений. Она была разработана в середине 1980-х годов Лореном Карпентером и Робертом Л. Куком в группе компьютерных графических исследований Lucasfilm, которая сейчас называется Pixar . [ 1] Впервые она была использована в 1982 году для рендеринга изображений для последовательности эффектов Genesis в фильме Star Trek II: The Wrath of Khan . RenderMan от Pixar был реализацией алгоритма Reyes. Он устарел в 2016 году и удален в RenderMan 21. [2] Согласно оригинальной статье, описывающей алгоритм, система рендеринга изображений Reyes — это «архитектура для быстрого высококачественного рендеринга сложных изображений». Reyes был предложен как набор алгоритмов и систем обработки данных. Однако термины «алгоритм» и «архитектура» стали использоваться в этом контексте как синонимы и взаимозаменяемы в этой статье. [ необходима ссылка ]

Имя

Reyes — это аббревиатура от Renders Everything You Ever Saw (название также является игрой слов Point Reyes , California, недалеко от места расположения Lucasfilm) и намекает на процессы, связанные с оптическими системами формирования изображений. По словам Роберта Л. Кука , Reyes пишется с заглавной только первой буквой, как в статье SIGGRAPH Кука/Карпентера/Кэтмелла 1987 года.

Архитектура

Архитектура была разработана с учетом ряда целей:

Рейес эффективно достигает нескольких эффектов, которые считались необходимыми для рендеринга кинематографического качества: гладкие, изогнутые поверхности, текстурирование поверхности, размытие движения и глубина резкости .

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

Затем система шейдеров назначает цвет и прозрачность каждой вершине микрополигона. Большинство рендереров Reyes позволяют пользователям предоставлять произвольные функции освещения и текстурирования, написанные на языке шейдеров . Микрополигоны обрабатываются в больших сетках, что позволяет векторизовать вычисления .

Затененные микрополигоны сэмплируются в экранном пространстве для создания выходного изображения. Рейес использует инновационный алгоритм скрытой поверхности или хидер , который выполняет необходимые интеграции для размытия движения и глубины резкости, не требуя больше образцов геометрии или затенения, чем потребовалось бы для неразмытого рендеринга. Хидер накапливает цвета микрополигонов в каждом пикселе по времени и положению линзы, используя метод Монте-Карло , называемый стохастической выборкой .

Трубопровод

Базовый конвейер Рейеса состоит из следующих этапов:

  1. Граница. Рассчитайте ограничивающий объем каждого геометрического примитива.
  2. Разделить. Разделить большие примитивы на более мелкие, разрезаемые на кубики примитивы.
  3. Кубик. Преобразуем примитив в сетку микрополигонов, каждый размером примерно в пиксель.
  4. Тень. Рассчитайте освещение и затенение в каждой вершине сетки микрополигона.
  5. Разбейте сетку на отдельные микрополигоны, каждый из которых ограничен и проверен на видимость.
  6. Скрыть. Выбрать микрополигоны, создав финальное 2D-изображение.

В этой конструкции рендерер должен хранить весь буфер кадра в памяти, поскольку окончательное изображение не может быть выведено, пока не будут обработаны все примитивы. Распространенная оптимизация памяти вводит шаг, называемый сегментированием, перед шагом нарезки. Выходное изображение делится на грубую сетку «сегментов», каждый из которых обычно имеет размер 16 на 16 пикселей. Затем объекты примерно разделяются по границам сегментов и помещаются в сегменты в зависимости от их местоположения. Каждый сегмент нарезается и рисуется индивидуально, а данные из предыдущего сегмента отбрасываются перед обработкой следующего сегмента. Таким образом, в памяти должны храниться только буфер кадра для текущего сегмента и высокоуровневые описания всех геометрических примитивов. Для типичных сцен это приводит к значительному сокращению использования памяти по сравнению с немодифицированным алгоритмом Рейеса.

Рендереры Рейеса

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

Ссылки

  1. ^ RenderMan@20: Эд Кэтмелл и Дэна Батали размышляют о приложении-убийце Pixar"
  2. ^ "Pixar выпускает RenderMan 21 | CG Channel". 2016-07-20 . Получено 11-03-2021 .
  3. ^ "Pixar выпускает RenderMan 21 | CG Channel". www.cgchannel.com . Получено 22 июля 2016 г.

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