Спецификация интерфейса RenderMan
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Спецификация интерфейса RenderMan , [ 1 ] или RISpec сокращенно , это открытый API, разработанный Pixar Animation Studios для описания трехмерных сцен и превращения их в цифровые фотореалистичные изображения. Он включает в себя язык шейдеров RenderMan .
В качестве технической спецификации Pixar для стандартного протокола связи (или интерфейса ) между программами моделирования и программами рендеринга, способными создавать изображения фотореалистичного качества, RISpec представляет собой концепцию, аналогичную PostScript, но для описания 3D- сцен , а не 2D-макетов страниц. Таким образом, программы моделирования, которые понимают протокол интерфейса RenderMan, могут отправлять данные в программное обеспечение рендеринга, которое реализует интерфейс RenderMan, не заботясь о том, какие рендеринга алгоритмы используются последними.
Интерфейс был впервые опубликован в 1988 году (версия 3.0) и был разработан с расчетом на будущее, позволяющее охватить технологические достижения на значительное количество лет. Текущая версия — 3.2.1, выпущенная в ноябре 2005 г.
Что отличало RISpec от других стандартов того времени, так это то, что он позволял использовать геометрические примитивы высокого уровня, такие как квадрики или бикубические фрагменты, для неявного указания геометрических примитивов, вместо того, чтобы полагаться на приложение моделирования для создания многоугольников, явно аппроксимирующих эти формы заранее. Еще одной новинкой, представленной RISpec в то время, была спецификация языка шейдеров .
Язык затенения RenderMan позволяет определения материалов поверхностей , обычно описывать не только путем настройки небольшого набора параметров, но и сколь угодно сложным образом, используя C -подобный язык программирования для написания затенения процедур известных как процедурные текстуры и шейдеры . Освещение и перемещение поверхности также программируются с использованием языка штриховки. Язык шейдеров позволяет выполнять каждый оператор в SIMD -способе, но не настаивает на этом. Еще одна особенность, которая отличает рендереры, основанные на RISpec, от многих других рендереров, — это возможность выводить произвольные переменные в виде изображения: нормали поверхности, отдельные проходы освещения и многое другое может быть выведено из рендерера за один проход.
RenderMan имеет много общего с OpenGL (разработанным ныне несуществующей компанией Silicon Graphics ), несмотря на то, что два API ориентированы на разные группы пользователей (OpenGL для аппаратного рендеринга в реальном времени и RenderMan для фотореалистичного автономного рендеринга). Оба API имеют форму конечного автомата на основе стека с (концептуально) немедленной визуализацией геометрических примитивов. Можно реализовать любой API с точки зрения другого.
Требуемые возможности
[ редактировать ]Чтобы средство рендеринга называло себя «RenderMan-совместимым», оно должно реализовывать как минимум следующие возможности:
- Полное иерархическое графическое состояние, включая стеки атрибутов и преобразований, а также список активных источников света.
- Орфографические и перспективные трансформации.
- на основе глубины Устранение скрытых поверхностей .
- Пиксельная фильтрация и пространственное сглаживание .
- Гамма-коррекция и дизеринг перед квантованием .
- Вывод изображений, содержащих любую комбинацию RGB, A и Z. Разрешение этих файлов должно соответствовать указанному пользователем.
- Все геометрические примитивы описаны в спецификации и предоставляют все стандартные переменные примитивов, применимые к каждому примитиву.
- Возможность выполнения расчетов затенения посредством программируемого пользователем затенения.
- Возможность индексировать карты текстур, карты окружения и карты глубины теней.
- Пятнадцать стандартных шейдеров источника света, поверхности, объема, смещения и изображения, требуемых спецификацией. Любые дополнительные шейдеры и любые отклонения от стандартных шейдеров, представленных в этой спецификации, должны быть задокументированы путем предоставления эквивалентного шейдера, выраженного на языке шейдеров RenderMan .
Дополнительные расширенные возможности
[ редактировать ]Кроме того, средство визуализации может реализовать любую из следующих дополнительных возможностей:
- Источники света площади
- Глубина резкости
- Картирование смещения
- Картирование окружающей среды
- Глобальное освещение
- Уровень детализации
- Размытие в движении
- Специальные проекции камеры
- Спектральные цвета
- Трассировка лучей
- Твердотельное моделирование
- Объемная растушевка
Дальнейшее чтение
[ редактировать ]- Аподака, Энтони А .; Ларри Гриц ; Ронен Барзель (1999). Продвинутый RenderMan: создание CGI для кинофильмов . Сан-Франциско: Издательство Morgan Kaufmann. ISBN 1-55860-618-1 . OCLC 42621055 .
- Эберт, Дэвид С .; Ф. Кентон Масгрейв ; Дарвин Пичи ; Кен Перлин ; Стивен Уорли (2003). Текстурирование и моделирование: процедурный подход, 3-е изд . Берлингтон, Массачусетс: Издательство Morgan Kaufmann. ISBN 1-55860-848-6 . OCLC 52689816 .
- Рагхавачари, Саты (2005). Рендеринг для начинающих: Синтез изображений с помощью RenderMan . Берлингтон, Массачусетс: Focal Press . ISBN 0-240-51935-3 . OCLC 57670361 .
- Стивенсон, Ян (2002). Базовый RenderMan Fast . Лондон, Нью-Йорк: Спрингер. ISBN 1-85233-608-0 . OCLC 50494960 .
- Апстил, Стив (1990). RenderMan Companion: Руководство программиста по реалистичной компьютерной графике . Ридинг, Массачусетс: Аддисон-Уэсли . ISBN 0-201-50868-0 . OCLC 19741379 .
- Кортес, Руди ; Саты Рагхавачари (2007). Руководство по языку шейдеров RenderMan . Курс Технологии ПТР. ISBN 978-1-59863-286-6 .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «RenderMan — Уголок разработчика — RI Spec» . Архивировано из оригинала 16 мая 2009 г. Проверено 12 июня 2009 г.
Внешние ссылки
[ редактировать ]- Спецификации RI Pixar — официальные спецификации.
- Репозиторий RenderMan
- Справочники и руководства по компьютерной графике от профессора Малкольма Кессона
- RenderMan Notes (заметки по написанию шейдеров)
- Язык шейдеров RenderMan, автор Доминик Сюсмель
- Рендеринг для начинающих RIB-файлов и шейдеров из книги