Спецификация интерфейса 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 с точки зрения другого.