¿Cómo se implementa la iluminación 2D?

58

Me pregunto cuál es la mejor manera de abordar un efecto de "iluminación" en los juegos 2D. Por ejemplo, si mi personaje principal está brillando, ¿qué técnicas puedo usar para completar el efecto visual del personaje brillando cuando está cerca de otros objetos que podrían verse afectados por la luz?

Christopher Horenstein
fuente

Respuestas:

39

Puede superponer una textura de efecto de brillo simple con bordes suaves y transparentes. Si desea luces / sombras similares a las que puede encontrar en un mundo en 3D, puede hacer algo como esto: http://www.catalinzima.com/2010/07/my-technique-for-the-shader-based-dynamic -2d-sombras / . Sin embargo, si eres nuevo en HLSL, entonces eso puede ser demasiado.

editar : me topé con un bonito tutorial de HTML5 2d light

zfedoran
fuente
Ese enlace es exactamente lo que estaba buscando. No puedo agradecerte lo suficiente; Esto es extremadamente útil.
Christopher Horenstein
7

Hay un proyecto XNA de código abierto que es una excelente biblioteca e implementación de iluminación 2D que es compatible con el perfil Reach de XNA 4.0: Krypton XNA .

Christopher Horenstein
fuente
4

Necesitaría un efecto de sombreado posterior al filtro escrito en HLSL o GLSL. El sombreador recibiría las coordenadas del reproductor y modificaría el brillo de todos los píxeles en un rango determinado. XNA admite sombreadores 2D bastante buenos.

Otra solución sería simular el brillo mediante el uso de una textura con un canal alfa. La textura sería principalmente negra, excepto por una mancha transparente en el medio. Esta textura será una superposición sobre la pantalla de tu juego con el punto transparente centrado en el personaje del jugador 'brillante'. Los viejos juegos de aventuras usaban esta técnica para simular linternas.

Stephen
fuente