Спецификация RenderMan Interface , [1] или RISpec Короче говоря, является открытым API , разработанным Pixar Animation Studios для описания трехмерных сцен и превратить их в цифровые фотореалистичные изображения. Он включает язык затенения RenderMan .
Как техническая спецификация Pixar для стандартного протокола связи (или интерфейса ) между программами моделирования и программами рендеринга, способными создавать изображения фотореалистичного качества, RISpec представляет собой концепцию, аналогичную PostScript, но для описания трехмерных сцен, а не двухмерных макетов страниц. Таким образом, программы моделирования, которые понимают протокол интерфейса 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 .
Дополнительные расширенные возможности
Кроме того, средство визуализации может реализовать любую из следующих дополнительных возможностей:
- Местные источники света
- Глубина резкости
- Отображение смещения
- Отображение окружающей среды
- Глобальное освещение
- Уровень проработанности деталей
- Размытость
- Специальные проекции камеры
- Спектральные цвета
- трассировка лучей
- Твердотельное моделирование
- Растушевка объема
Экспортерам
- Для 3D Studio Max : 3Delight для 3ds Max от DNA Research
- Для Blender : Mosaic (с открытым исходным кодом )
- Для Houdini : встроенная поддержка . Однако вся поддержка сторонних средств визуализации (включая RenderMan) отключена при использовании вариантов лицензирования Apprentice или Apprentice HD.
- Для Lightwave :
- LightMan от Тима Даппера
- Light-R от Фелипе Эскивеля (бесплатно)
- Для Майи :
- 3Delight для Maya
- Жидкость ( открытый исходный код )
- MayaMan от AnimalLogic
- RenderMan для Maya от Pixar
- Для Softimage :
- 3Delight для Softimage
- Affogato от Rising Sun Pictures ( открытый исходный код )
- XSIMan с помощью графических примитивов
Инструменты
- RenderMan Studio
- RIBKit ( открытый исходный код , различные инструменты RenderMan, например, инструмент построения визуальных шейдеров под названием SLer)
- RIBShrink и RIBDepends (инструменты, которые поставляются с 3Delight . Shrink RIB, чтобы занимать меньше места на диске и перемещать RIB с зависимостями в новое место и / или локализовать зависимости)
- ShaderMan.Next ( бесплатный инструмент для построения шейдеров с открытым исходным кодом . Переписанный ShaderMan )
Языковые привязки
- Комплект компьютерной графики Python для Python
- RubyMan для Ruby
- G&RT для Lua
- RiGO для Go
- Сценарии tcl
дальнейшее чтение
- Apodaca, Anthony A .; Ларри Гриц ; Ронен Барзель (1999). Advanced RenderMan: создание CGI для движущихся изображений . Сан-Франциско: Издательство Морган Кауфманн. ISBN 1-55860-618-1. OCLC 42621055 .
- Эберт, Дэвид С .; Ф. Кентон Масгрейв ; Дарвин Пичи ; Кен Перлин ; Стивен Уорли (2003). Текстурирование и моделирование: процедурный подход, 3-е изд . Берлингтон, Массачусетс: Издательство Морган Кауфманн. ISBN 1-55860-848-6. OCLC 52689816 .
- Рагхавачари, Сати (2005). Рендеринг для начинающих: синтез изображений с помощью RenderMan . Берлингтон, Массачусетс: Focal Press . ISBN 0-240-51935-3. OCLC 57670361 .
- Стивенсон, Ян (2002). Essential RenderMan Fast . Лондон, Нью-Йорк: Springer. ISBN 1-85233-608-0. OCLC 50494960 .
- Апстилл, Стив (1990). Компаньон RenderMan: Руководство программиста по реалистичной компьютерной графике . Чтение, Массачусетс: Эддисон-Уэсли . ISBN 0-201-50868-0. OCLC 19741379 .
- Кортес, Руди ; Сати Рагхавачари (2007). Руководство по языку шейдинга RenderMan . Курс Технологии PTR. ISBN 978-1-59863-286-6.
Смотрите также
- Рендеринг Рейеса
Рекомендации
- ^ «RenderMan - Уголок разработчика - Спецификация RI» . Архивировано из оригинала на 2009-05-16 . Проверено 12 июня 2009 .
Внешние ссылки
- Pixar's RI Specs - официальные спецификации.
- Репозиторий RenderMan
- Справочные материалы и учебные пособия по компьютерной графике профессора Малкольма Кессона
- RenderMan Notes (примечания по написанию шейдеров)
- RenderMan Shader Language, автор: Доминик Сусмель
- Рендеринг для начинающих файлов RIB и шейдеров из книги