stringtranslate.com

Lenguaje de sombreado RenderMan

El lenguaje de sombreado Renderman (abreviado RSL) es un componente de la especificación de interfaz RenderMan y se utiliza para definir sombreadores . La sintaxis del lenguaje es similar a la de C.

Un shader escrito en RSL se puede utilizar sin cambios en cualquier renderizador compatible con RenderMan, como PhotoRealistic RenderMan de Pixar, 3Delight de DNA Research , Air de Sitexgraphics o una solución de código abierto como Pixie o Aqsis .

El lenguaje de sombreado RenderMan define funciones independientes y cinco tipos de sombreadores: de superficie, de luz, de volumen, de imágenes y de desplazamiento.

Un ejemplo de un sombreador de superficie que define una superficie metálica es:

superficie metálica ( flotante Ka = 1 ; flotante Ks = 1 ; flotante rugosidad = 0,1 ;) { normal Nf = faceforward ( normalizar ( N ), I ); vector V = - normalizar ( I ); Oi = Os ; Ci = Os * Cs * ( Ka * ambiente () + Ks * especular ( Nf , V , rugosidad )); }                                            

Los sombreadores expresan su trabajo leyendo y escribiendo variables especiales como Cs (color de la superficie), N (normal en un punto determinado) y Ci (color de la superficie final). Los argumentos de los sombreadores son parámetros globales que se adjuntan a los objetos del modelo (por lo que se puede utilizar un sombreador de metales para diferentes metales, etc.). Los sombreadores no tienen valores de retorno, pero se pueden definir funciones que toman argumentos y devuelven un valor. Por ejemplo, la siguiente función calcula la longitud del vector utilizando el operador de producto escalar ".":

float length ( vector v ) { return sqrt ( v . v ); /* . es un producto escalar */ }          

Lectura adicional

Enlaces externos