E aew André como va?!
Bom este exemplo foi tirado do livro de programação do mental ray que estava vendo alguns dias atras.
Não sei muito ainda de programação do MR mas ja da para arriscar alguma coisa.
//toda declaração do shader tem que começar com essa palavra reservada
declare shader
//definição do shader tipo "phong" e dizendo que ambient, diffuse e specular são cores
color "phong" (color "ambient",
color "diffuse",
color "specular")
//versão do shader, isso se houver modificações futuras e se ja tiver algum objeto com esse shader, ele substitui para a nova versão
version 1
//tambem uma palavra reservada dizendo que é o fim da declaração do shader....é bom ter o SDK do MR pra saber quais as palavras reservadas, tipo (color, declare, texture, shader, scalar etc....)
end declare
//novamente declarando a estura do shader e dizendo que "texture" é um bitmap ou seja uma imagem externa
declare shader
struct {color "a", color "b"}
"texture" (color texture "BITMAP")
version 1
end declare
//dizendo que a cor da declaração texture é uma imagem externa do tipo RGB
color texture "text_map" "BITMAP"
//declaração do objeto "map", dizendo para conter a imagem acima declarada ficara contida no objeto "map"
shader "map" "texture" (
"BITMAP" "text_map")
//finalmente o fim.....o nome do shader, tipo e a cor de ambient, lembrando que as cores do MR vai de 0 a 1.0 ja não é de 0 a 255 e tambem dizendo que diffuse e specular são cores como declarado acima e tamem podem ser texturas declarado na estrutura "map"
shader "mtlsh" "phong" (
"ambient" 0.3 0.3 0.3,
"diffuse" = "map.a",
"specular" = "map.b")
Para isso rodar é preciso lincar a alguma biblioreca existente na qual controla estes parametros no casa a base, se fosse DGS, photon etc seria o physics:
$include <base.mi>
link "base.dll"
O livro aborda mais para a versão standalone onde tem toda liberdade para desenvolver shader, no caso de integração com algum soft é mais complicado pois tera que desenvolver baseando-se no seu soft....
Fagner Granella
Programador Oracle PL/SQL - Java