Shadeop
From Wikipedia, the free encyclopedia
Shadeop is a term used in computer graphics rendering to refer to an atomic built-in function used in a shader.
It is an abbreviation and contraction of the terms shading and operation.
[edit] Meaning in the RenderMan context
The term is specifically used in the context of shaders written in the RenderMan Shading Language (RSL) for use with RenderMan-compliant renderers.
User-defined functions written in RSL are just referred to as "functions". Hence, use of the term mostly serves as a means to distinguish the latter type from built-in type functions.
However, RSL allows for binary plugins written in C to be loaded and treated like built-in shadeops. These are commonly referred to as DSO shadeops. Two RenderMan implementations, 3Delight and PhotoRealistic RenderMan, have recently added a new type called RSL plugin shadeop. This type uses a newer C++ API but otherwise can't be distinguished from the older type by a user, when called in a shader.
[edit] Example
The following example shader makes use of the ambient(), diffuse(), faceforward() and normalize() built-in shadeops as well as the checkerboard() user-defined RSL plugin shadeop.
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 * (Ka * ambient() + Kd * diffuse(Nf)); }