Renderman Shading Language (сокращенно RSL) является компонентом спецификации интерфейса RenderMan и используется для определения шейдеров . Синтаксис языка подобен Си .
Шейдер, написанный на RSL, можно использовать без изменений в любом RenderMan-совместимом рендерере, таком как PhotoRealistic RenderMan от Pixar , 3Delight от DNA Research , Air Sitexgraphics или решение с открытым исходным кодом, такое как Pixie или Aqsis .
RenderMan Shading Language определяет автономные функции и пять типов шейдеров: шейдеры поверхности, света, объема, визуализации и смещения.
Пример поверхностного шейдера, определяющего металлическую поверхность:
поверхностный металл ( поплавок Ka = 1 ; поплавок Ks = 1 ; шероховатость поплавка = 0,1 ;) { нормальный Nf = лицом вперед ( нормализовать ( N ), I ); вектор V = - нормализовать ( I ); Oi = Os ; Ci = Os * Cs * ( Ka * ambient () + Ks * specular ( Nf , V , шероховатость )); }
Шейдеры выражают свою работу, считывая и записывая специальные переменные, такие как Cs (цвет поверхности), N (нормальный в данной точке) и Ci (конечный цвет поверхности). Аргументы шейдеров - это глобальные параметры, которые прикрепляются к объектам модели (так что один металлический шейдер можно использовать для разных металлов и так далее). Шейдеры не имеют возвращаемых значений, но могут быть определены функции, которые принимают аргументы и возвращают значение. Например, следующая функция вычисляет длину вектора с помощью оператора скалярного произведения ".":
длина с плавающей запятой ( вектор v ) { return sqrt ( v . v ); / *. это точечный продукт * / }
дальнейшее чтение
- Апстилл, Стив (1990). Компаньон RenderMan: руководство программиста по реалистичной компьютерной графике . Чтение, Массачусетс: Эддисон-Уэсли. ISBN 0-201-50868-0.
- Аподака, Энтони ; Гриц, Ларри (1999). Advanced RenderMan: создание компьютерной графики для движущихся изображений . Сан-Франциско: Морган Кауфманн. ISBN 1-55860-618-1. CS1 maint: обескураженный параметр ( ссылка )
- Кортес, Руди; Рагхавачари, Сати (2008). Руководство по языку затенения RenderMan . Бостон, Массачусетс: Технология курса Томсона. ISBN 1-59863-286-8.