RenderMan Shading Language
Renderman Shading Language (förkortat RSL) är en komponent i RenderMan Interface Specification och används för att definiera shaders . Språksyntaxen är C-liknande .
En shader skriven i RSL kan användas utan ändringar på någon RenderMan-kompatibel renderare, som Pixars PhotoRealistic RenderMan , DNA Researchs 3Delight , Sitexgraphics Air eller en öppen källkodslösning som Pixie eller Aqsis .
RenderMan Shading Language definierar fristående funktioner och fem typer av shaders: yta, ljus, volym, imager och förskjutnings shaders.
Ett exempel på en ytskuggare som definierar en metallyta är:
ytmetall ( float Ka = 1 ; float Ks = 1 ; floatgrovhet = 0,1 ;) { normal Nf = framåtvänd ( normalisera ( N ) , I ) ; vektor V = - normalisera ( I ); Oi = Os ; Ci = Os * Cs * ( Ka * omgivande () + Ks * spegelbild ( Nf , V , grovhet )); }
Shaders uttrycker sitt arbete genom att läsa och skriva speciella variabler som Cs (ytfärg), N (normal vid en given punkt) och Ci (slutlig ytfärg). Argumenten till shaders är globala parametrar som är kopplade till objekt i modellen (så att en metall shader kan användas för olika metaller och så vidare). Shaders har inga returvärden, men funktioner kan definieras som tar argument och returnerar ett värde. Till exempel, följande funktion beräknar vektorlängden med hjälp av punktproduktoperatorn ". " :
float length ( vektor v ) { return sqrt ( v . v ); /* . är en punktprodukt */ }
Vidare läsning
- Upstill, Steve (1990). The RenderMan companion: en programmerares guide till realistisk datorgrafik . Uppläsning, mässa: Addison-Wesley. ISBN 0-201-50868-0 .
- Apodaca, Anthony ; Gritz, Larry (1999). Advanced RenderMan: skapa CGI för filmer . San Francisco: Morgan Kaufmann. ISBN 1-55860-618-1 .
- Cortes, Rudy; Raghavachary, Saty (2008). Språkguiden för RenderMan-skuggning . Boston, Mass: Thomson Course Technology. ISBN 1-59863-286-8 .