Muy básicamente, un Shader es un programa que define la apariencia de la superficie de un objeto. Por ejemplo, textura, interacción con la luz, reflexión, refracción, displacement, etc.¿Podéis explicarme con palabras entendibles para un novato que es un shader.
Para crear un Shader tienes que programarlo o crearlo a través de algún sistema visual como, por ejemplo, el sistema de nodos de Houdini, XSI, Autodesk Maya o también el módulo Slim de las RenderMan artista tools de Pixar (disponible para Maya).El proceso por encima para crearlo?
Exacto. Se me olvidó decir que en Mental Ray los Shaders se suelen programar en c y que tanto en éste como en RenderMan, existen diferentes tipos de Shaders (yo sólo he mencionado los surface & displacement Shaders). Pero como has dicho hay más. Por ejemplo:Muy buena explicación half Vector, más claro echarle agua. Sólo quería agregar que en motores como Mental Ray el concepto tradicional de Shader (como interactúa la luz con la superficie del objeto y sus propiedades) se extiende virtualmente para hacer a todos los aspectos del renderizado personalizable y programable. En Mental Ray, un Shader es una función que calcula los efectos de la luz, estos pueden ser Shaders para focos, cámaras (lente), materiales, sombras, etc. Saludos.
La clase base de la que debes derivar para implementar un material (y un shader, ya que en 3dsmax el Shader se programa dentro del material) es mtl (aunque puedes derivar de clases más funcionales que, a su vez derivan de mtl, por ejemplo, la clase stdmat). En esa clase tienes un método que es shade al que se le pasa un parámetro de tipo shadecontext que te ofrece toda la información necesaria para llevar a cabo el Shading (posición, normal, luces, etc). Al mismo tiempo, shadecontext tiene un miembro de tipo shadeoutput que tendrás que rellenar con la información de Shading (color, transparencia) para que max renderice correctamente la superficie.Alguien sabe de algún sitio que expliquen como programar un Shader en 3dsmax. Habéis dicho que era en C++, pero que clases se utilizan.
Mírate el SDK de 3ds Max. Ahí tienes el código de todos los materiales de 3ds Max. Concretamente el standard (archivo stdmtl, cpp) implementa Phong, Blinn y metal.Cómo se debe utilizar.
Mírate la ayuda del SDK de 3ds Max para una explicación sobre cómo crear y compilar un proyecto para cualquier tipo de plugin. Aunque siempre puedes utilizar los proyectos (para visual Studio. Net 2003) ya creados de los ejemplos que vienen con el SDK y modificarlos a tu antojo.Compliar.
En max es bastante engorroso el tema de probar lo que programas ya que tienes que estar a cada momento abriendo y cerrando el 3ds Max. Lo importante es que tengas claro lo que quieras hacer y que sepas lo que estás haciendo. Es decir, que seas capaz de predecir lo que hace tu código. Es algo complicado y que se alcanza con experiencia.Como puedo tener más o menos intuición de que me ara lo que estoy programando.