Monday, January 02, 2006

crie o seu primeiro shader para Renderman ( uma visao geral sobre RSL)

RSL `e uma linguagem similar ao C++ , o que isso quer dizer !?! tenho que aprender C++ ?? bem c vc nao tem nenhum conhecimento basico sobre programacao . seria bom comecar a aprender,tudo bem nao precisa ficar com medo , eu tbm nao sou programador , mas o basico de programacao `e bem facil de aprender e vai ajudar muito nao so com RSL mas tbm com MEL(maya scritp),outra coisa boa`e vc ter um conhecimento basico de 3d na parte de Render e Shader do seu programa favorito, muitas das palavras que usamos em um shader feito RSL tem seu equivalente na interface do seu programa.
Bem pra comecar `e preciso entender a anatomia do shader no ponto de vista do renderman:


O Renderman pinta os objetos dando pequenas pinceladas de cor ponto a ponto sobre o objeto . para isso ele precisa de informacoes sobre a geometria , luz , e o ponto de observacao da camera e etc . essas informacoes sao predefinidas no renderman , sao as chamadas Variaveis Globais do Renderman

Abaixo uma pequena (micro) lista de algumas variaveis :

Os surface Opacity = transparencia original da surface
Cs Surface Color = cor original da surface
Oi Surface Opacity Incident = a transparencia da surface em direcao a camera
Ci Surface Color Incident = a cor da surface em direcao a camera
P Surface Position = um ponto qualquer na surface
N Shading Normal = direcao da Normal de uma surface
I Incident Vector = direcao do observador
E Vantage (eye)point = a posicao do observador
L Light Vector = direcao da Luz

Antes de sair programando `e preciso falar sobre as variaveis " Os,Cs,Oi,Ci ", o renderman considera que a surface tem uma cor default e uma opacidade default, essas cores originais em geral sao variaveis que sao definidas dentro do corpo do arquivo .RIB .
A Cor incidente e a Opacidade Incidente sao as cores e a transparencia final do objeto , resumindo , o renderman sempre vai colorir e definir a transparencia do seu objeto pela cor que vc definir na variavel Ci e Oi , mesmo que Cs e Os sejam cores diferentes.

Abaixo o shader de renderman MaisSimplesDoMundo :

surface
MaisSimplesDoMundo( color vermelho = (1.0 , 0.0 , 0.0 ) ; )
{
Ci = vermelho ;
}

Render feito no Maya usando
o Shader MaisSimplesDoMundo:

No comments: