Jump to content

Язык шейдеров RenderMan

Язык шейдинга Renderman (сокращенно RSL) является компонентом спецификации интерфейса RenderMan и используется для определения шейдеров . Синтаксис языка C-подобен .

Шейдер, написанный на RSL, можно использовать без изменений в любом RenderMan-совместимом рендерере, таком как PhotoRealistic RenderMan от DNA Research от Pixar, 3Delight , Air от Sitexgraphics или в решении с открытым исходным кодом, таком как Pixie или Aqsis .

Язык шейдинга RenderMan определяет автономные функции и пять типов шейдеров: шейдеры поверхности, света, объема, изображения и шейдеры смещения.

Пример шейдера поверхности, определяющего металлическую поверхность:

поверхность   металла   (  float   Ka   =   1  ;   float   Ks   =   1  ;   float   шероховатость   =   0,1  ;)  {    normal   Nf   =   faceforward   (  normalize  (  N  ),   I  );    вектор   V   =   -   нормализовать   (  I  );    Ой   =   Ос  ;    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: создание CGI для кинофильмов . Сан-Франциско: Морган Кауфманн. ISBN  1-55860-618-1 .
  • Кортес, Руди; Рагхавачари, Саты (2008). Руководство по языку шейдеров RenderMan . Бостон, Массачусетс: Технология курса Томсона. ISBN  1-59863-286-8 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1b8c99c83885c4f69e594aeb8e2fb24e__1701983400
URL1:https://arc.ask3.ru/arc/aa/1b/4e/1b8c99c83885c4f69e594aeb8e2fb24e.html
Заголовок, (Title) документа по адресу, URL1:
RenderMan Shading Language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)