Gracias Gracias:  0
Resultados 1 al 13 de 13

Tema: Que es un shader

  1. #1
    M0DIFICADOR OBSOLETO
    Fecha de ingreso
    Jun 2005
    Ubicación
    Aquim, en mi casa, como ET.
    Mensajes
    410

    ¿Que es un shader?

    Bueno, pues la pregunta esta clara. Aunque he buscado por el foro y aun a riesgo de recibir una monumental pitada ¿podéis explicarme con palabras entendibles para un novato que es un shader y el proceso por encima para crearlo?

    Gracias mil.
    "¿3D Studio Max?. No deja de ser una calculadora gorda" Por DarkHate

  2. #2
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: ¿Que es un shader?

    Cita Iniciado por dogday
    ¿podéis explicarme con palabras entendibles para un novato que es un shader
    Muy muy 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.

    Cita Iniciado por dogday
    el proceso por encima para crearlo?
    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, Maya o también el módulo Slim de las "RenderMan Artist Tools" de Pixar (disponible para Maya).

    Por ejemplo, en MAX creo que no hay más remedio que programarlo en C++ ya que no dispone de un sistema visual para trabajar a ese nivel tan bajo, tal y como hacen las aplicaciones que he mencionado.

    Siguiendo por el camino de la programación, los shaders se pueden programar en cualquier lenguaje, que dependerá de cada renderer. Por ejemplo, como he dicho, en MAX se programan en C++. En los renderers basados en la especificación Renderman, con un lenguaje de shaders propio. Para desarrollar shaders para su ejecución en tiempo real a través de las GPUs, existen varios lenguajes. Los más conocidos son el HLSL de Microsoft, GLSL de OpenGL, Cg de nVidia...

    PD: evidentemente, con el sistema de nodos te tienes que ceñir a las operaciones que te ofrezca el programa. Con programación te lo puedes crear tú todo, por lo que no tendrías esa limitación. Aunque normalmente se da la posibilidad de crear nuevos nodos en forma de plugins (programando, claro).

    Saludos.
    Última edición por HalfVector; 19-06-2006 a las 07:09

  3. #3
    pythonized... Avatar de Cesar Saez
    Fecha de ingreso
    Mar 2004
    Ubicación
    Granada, España
    Mensajes
    3,765

    Re: ¿Que es un shader?

    Muy buena explicación Half Vector, más claro hecharle 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

  4. #4
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: ¿Que es un shader?

    Cita Iniciado por Cesar Saez
    Muy buena explicación Half Vector, más claro hecharle 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
    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:

    • Surface shaders
    • Displacement shaders
    • Light shaders
    • Atmosphere shaders
    • Interior shaders
    • Exterior shaders
    • Transformation shaders
    • Imager shaders


    Saludos.

  5. #5
    M0DIFICADOR OBSOLETO
    Fecha de ingreso
    Jun 2005
    Ubicación
    Aquim, en mi casa, como ET.
    Mensajes
    410

    Re: ¿Que es un shader?

    Agradezco las explicaciones. Partiendo de ellas voy a seguir buscando información sobre como usarlos, ya que he leído algunos hilos en los que se menciona: "descargate este shader y usalo para ...."
    "¿3D Studio Max?. No deja de ser una calculadora gorda" Por DarkHate

  6. #6
    Senior Member
    Fecha de ingreso
    Feb 2004
    Ubicación
    Santiago,Chile
    Mensajes
    414

    Re: ¿Que es un shader?

    en palabras sencillas shader se le suele llamar a los materiales que le aplicas a un objeto, un shader por ejemplo seria el aluminio ya que este tiene propiedades especificas por ejemplo la reflexión de su entorno. (eso es lo que entiendo yo sobre el concepto)...

  7. #7
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: ¿Que es un shader?

    En realidad yo el material lo veo como algo distinto al shader. Para mí el material abastece al shader de los datos que necesita para realizar sus cálculos. Algo así como si el shader fuera una plantilla (aunque lo correcto es decir que es un programa con una serie de parámetros de entrada) y el material una instancia de dicha plantilla.

    Por ejemplo, en MAX, si creas un material de tipo standard, puedes indicar para cada uno una textura diffuse diferente pero el shader es el mismo para todos ellos.

    Pero bueno, esto ya cada uno que lo interprete como quiera.

    Saludos.

  8. #8
    M0DIFICADOR OBSOLETO
    Fecha de ingreso
    Jun 2005
    Ubicación
    Aquim, en mi casa, como ET.
    Mensajes
    410

    Re: ¿Que es un shader?

    Vaya HalfVector !, esta última aclaracion tuya si que me ha puesto las cosas en su sitio. Muy buena. Gracias de nuevo. Sigo investigando.
    "¿3D Studio Max?. No deja de ser una calculadora gorda" Por DarkHate

  9. #9
    Miembro
    Fecha de ingreso
    Nov 2005
    Ubicación
    Barcelona
    Mensajes
    99

    Re: ¿Que es un shader?

    Hola, muy interesante este hilo. la verdad es que he empezado a buscar un poco.. pero todo lo que encuentro de programación de shaders solo lo encuentro para XSI. Alguien sabe de algún sitio que expliquen como programar un shader en MAX. Habeis dicho que era en c++, pero que clases se utilizan como se deve utilizar,compliar,como puedo tener más o menos intuicion de que me ara lo que estoy programando.

    Muchas grácias

    Realmente cada vez más me gusta este foro!

    Soys unos genios!

  10. #10
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: ¿Que es un shader?

    Cita Iniciado por Dai-X
    Alguien sabe de algún sitio que expliquen como programar un shader en MAX. Habeis dicho que era en c++, pero que clases se utilizan
    La clase base de la que debes derivar para implementar un material (y un shader, ya que en MAX 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.

    Cita Iniciado por Dai-X
    como se deve utilizar
    Mírate el SDK de MAX. Ahí tienes el código de todos los materiales de MAX. Concretamente el Standard (archivo stdmtl.cpp) implementa Phong, Blinn y Metal.

    Cita Iniciado por Dai-X
    compliar
    Mírate la ayuda del SDK de 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.

    Cita Iniciado por Dai-X
    como puedo tener más o menos intuicion de que me ara lo que estoy programando
    En MAX es bastante engorroso el tema de probar lo que programas ya que tienes que estar a cada momento abriendo y cerrando el MAX. Lo importante es que tengas claro lo que quieras hacer y que sepas lo que estas haciendo. Es decir, que seas capaz de predecir lo que hace tu código. Es algo complicado y que se alcanza con experiencia.

    En ese sentido yo prefiero con diferencia el sistema de Renderman. El procedimiento para desarrollar un shader para Renderman es extremadamente sencillo (otra cosa es lo complicado que pueda llegar a ser el código de propio shader). Tan sólo necesitas un editor de texto y luego compilar desde la línea de comandos. Te olvidas de jerarquías de clases y demás "parafernalia" que complican el desarrollo. Sobre todo para el que empieza. Si te metes a programar plugins para MAX ya entenderás por qué te lo digo.

    Saludos.

  11. #11
    Senior Member
    Fecha de ingreso
    Aug 2005
    Mensajes
    621

    Re: ¿Que es un shader?

    chapo! Half Vector

  12. #12
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: ¿Que es un shader?

    Por cierto Dai-X, si tu intención es la de aprender sobre desarrollo de shaders sin importarte la aplicación, te aconsejo que cojas cualquier renderer gratuito basado en Renderman (por ejemplo Pixie) y te pongas a ello. Como he dicho en mi anterior mensaje te ahorras muchas cosas y vas directo al grano. Además, los resultados los veras más rápidamente que con MAX.

    Ahora, si quieres un feedbak instantaneo, te aconsejo que desarrolles shaders orientados a tiempo real. Para ello nada mejor que coger editores especializados como RenderMonkey de ATI o FX Composer de nVidia. Evidentemente aquí entra en juego la potencia de tu tarjeta gráfica. Yo te aconsejo una que soporte shaders 2.0x o 3.0 ya que te permiten escribir shaders más complejos. Y si no pues con shaders 2.0.

    Tal vez ésta última sea la mejor opción para empezar a aprender sobre el desarrollo de shaders. Además, hay que tener en cuenta que los lenguajes de shaders como HLSL, GLSL o Cg son muy parecidos a los de Renderman. Evidentemente en Renderman no tienes las limitaciones de los shaders pensados para ser ejecutados en tiempo real.

    Saludos.
    Última edición por HalfVector; 20-06-2006 a las 16:16

  13. #13
    Glidereando Avatar de Chaman
    Fecha de ingreso
    Jul 2005
    Ubicación
    Madrid
    Mensajes
    1,820

    Re: ¿Que es un shader?

    Chapó half. Con explicaciones así da gusto leer los hilos

Temas similares

  1. Eye shader
    Por THE GRINGO en el foro Materiales y Texturizado
    Respuestas: 3
    Último mensaje: 20-06-2011, 17:17
  2. Shader FX
    Por MiraVirtual en el foro Noticias
    Respuestas: 1
    Último mensaje: 21-01-2009, 11:53
  3. que es un shader
    Por carlosall en el foro Infografía General
    Respuestas: 9
    Último mensaje: 30-08-2008, 17:27
  4. que es un oclussion shader
    Por tas en el foro Render, Iluminación y Cámaras
    Respuestas: 7
    Último mensaje: 08-11-2005, 19:54
  5. Definicion de shader
    Por Quibey en el foro Materiales y Texturizado
    Respuestas: 7
    Último mensaje: 17-12-2004, 01:05

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •