locked
2D Point Light XNA RRS feed

  • Pregunta

  • Que tal amigos, soy bastante novato con esto de programacion y  XNA, y algo que he querido hacer es un Point Light, para hacer de Antorchas , he visto por alli muchos ejemplos con Shaders y Texturas , a mi me gustaria aprender hacer esto , utilizando solo shader , sin ninguna textura involucrada, pero no tengo idea , se que es con shader, pero no conozco mucho , pueden ayudarme ? o algun ejemplo muy basico de como crear un simple point light?

    Saludos

    martes, 7 de febrero de 2012 19:11

Respuestas

  • Como poder hacerse puede hacerse... pero al final tienes que trabajar con alguna textura, y hacerlo todo en una pasada de shader implica que no puedes tener muchas luces en escena.

    A mi personalmente para la iluminación una aproximación que me gusta mucho es esta, http://www.soolstyle.com/2010/06/29/2d-lightning-continued/, no tengo mucho tiempo ahora para explciarla, pero es mucho más interesante que lo que propones.

    Que por cierto se haría algo así:

       1. Le pasas al shader la posicion de las luces en coordenadas de pantalla, o en las de mundo y luego las conviertes en el shader, o trabajas en coordenadas de mundo, pero el caso el que al pixel shader llegue una posicion de pixel y una posicion de la luz en las mismas coordendas. (Propiamente halando en la misma base)

       2.En el vertex shader le pasas la posicion del vertice al pixel shader para que interpole y llegue al pixel shader la posicion del pixel.

       3. En le pixel shader calculas la distancia del pixel a la luz, y si la distancia es menor que un radio iluminas y si no oscureces.


    Tambien conocido como Blau www.youtube.com/malditis www.charcostudios.com

    martes, 7 de febrero de 2012 23:45

Todas las respuestas

  • Como poder hacerse puede hacerse... pero al final tienes que trabajar con alguna textura, y hacerlo todo en una pasada de shader implica que no puedes tener muchas luces en escena.

    A mi personalmente para la iluminación una aproximación que me gusta mucho es esta, http://www.soolstyle.com/2010/06/29/2d-lightning-continued/, no tengo mucho tiempo ahora para explciarla, pero es mucho más interesante que lo que propones.

    Que por cierto se haría algo así:

       1. Le pasas al shader la posicion de las luces en coordenadas de pantalla, o en las de mundo y luego las conviertes en el shader, o trabajas en coordenadas de mundo, pero el caso el que al pixel shader llegue una posicion de pixel y una posicion de la luz en las mismas coordendas. (Propiamente halando en la misma base)

       2.En el vertex shader le pasas la posicion del vertice al pixel shader para que interpole y llegue al pixel shader la posicion del pixel.

       3. En le pixel shader calculas la distancia del pixel a la luz, y si la distancia es menor que un radio iluminas y si no oscureces.


    Tambien conocido como Blau www.youtube.com/malditis www.charcostudios.com

    martes, 7 de febrero de 2012 23:45
  • Hola! No se si estos ejemplos se ajustan a lo que quieres pero puedes echarle un vistazo, en la web que te indicaba Blau puedes encontrar este ejemplo también: http://www.soolstyle.com/2010/02/15/2d-deferred-lightning/ y en este puedes ver como crear sombras en 2D también: http://www.catalinzima.com/2010/07/my-technique-for-the-shader-based-dynamic-2d-shadows/

    Espero que puedan resultar útiles, un saludo.

     
    lunes, 13 de febrero de 2012 21:47