Шейдеоп
Shadeop — это термин, используемый в рендеринге компьютерной графики для обозначения атомарной встроенной функции , используемой в шейдере .
Это сумка , сочетающая в себе термины «затенение» и «операция» .
Значение в контексте RenderMan
[ редактировать ]Этот термин специально используется в контексте шейдеров, написанных на языке шейдеров RenderMan (RSL) для использования с RenderMan-совместимыми средствами визуализации .
Пользовательские функции, написанные на RSL, называются просто «функциями». Следовательно, использование этого термина в основном служит средством отличия последнего типа от встроенных функций типа.
RSL также позволяет загружать двоичные плагины, написанные на C, и обрабатывать их как встроенные шейдеры. Их обычно называют DSO шейдерами . В две реализации RenderMan, 3Delight и PhotoRealistic RenderMan , в последние годы был добавлен новый тип под названием RSL плагин Shadeop . Этот тип использует более новый C++ API , но в остальном пользователь не может отличить его от старого типа при вызове из шейдера.
Пример
[ редактировать ]В следующем примере шейдера используются встроенные шейдеры Ambient() , Diffuse() , Faceforward() , Normalize() и Transform(), а также Checkerboard() определяемый пользователем шейдер RSL-плагина .
plugin "checkerboard";
surface
checkmatte(float Ka = 1, Kd = 1;)
{
normal Nf = faceforward(normalize(N), I);
color pattern = checkerboard(transform("object", P));
Oi = Os;
Ci = Oi * Cs * pattern * (Ka * ambient() + Kd * diffuse(Nf));
}