uma coisa interessante da funcao shader 'e que quando voce assinala essa funcao dentro de uma variavel float ela vai retornar a distancia do ponto atingido ao inves da cor
para a funcao trace funcionar no seu RFM ou RAT voce precisar ligar o "RAYTRACING" no seu render globals
segue um exemplo de um shader com trace
uma simples bola com reflexo aplicado :
surface TraceReflex( ) {
/* captura as informacoes necessarias para o calculo da superficie */
normal NormalSurface = normalize(N);
vector Observador = normalize(I);
color TempColorReflex = 0;
/* verifica o angulo entre a superficie e o observador */
if (NormalSurface.Observador < 0) {
/* acha a direcao do reflexo entre a surface e o observador */
vector DirecaoReflex = reflect(NormalSurface,Observador);
/* captura a cor do reflexo naquele ponto usando a funcao trace */
TempColorReflex = trace(P, DirecaoReflex);
}
/* assinala a cor capturada pela funcao trace na cor final do objeto */
Ci = Os * TempColorReflex;
Oi = Os;
}
um exemplo do render :

No comments:
Post a Comment