Comment l'éclairage 2D est-il mis en œuvre?

58

Je me demande quelle est la meilleure façon d’aborder un effet "d’éclairage" dans les jeux en 2D. Par exemple, si mon personnage principal est rougeoyant, quelles techniques puis-je utiliser pour compléter l'effet visuel du personnage rougeoyant lorsqu'il se trouve à proximité d'autres objets susceptibles d'être affectés par la lumière?

Christopher Horenstein
la source

Réponses:

39

Vous pouvez superposer une simple texture d’effet de rayonnement à des bords transparents et doux. Si vous voulez un éclairage / des ombres similaires à ce que vous pouvez trouver dans un monde 3D, vous pouvez faire quelque chose comme ceci: http://www.catalinzima.com/2010/07/my-technique-for-the-shader-based-dynamic -2d-ombres / . Cependant, si vous êtes nouveau dans HLSL, cela risque d’être un peu trop.

edit : je suis tombé sur un bon tutoriel HTML5 2d light

Zfedoran
la source
Ce lien est exactement ce que je cherchais. Je ne peux pas vous remercier assez; c'est extrêmement utile.
Christopher Horenstein
7

Il existe un projet XNA open source qui constitue une excellente bibliothèque et une implémentation de l'éclairage 2D compatible avec le profil Reach de XNA 4.0 - Krypton XNA .

Christopher Horenstein
la source
4

Vous auriez besoin d'un effet postfilter shader écrit en HLSL ou GLSL. Le shader recevrait les coordonnées du joueur et modifierait la luminosité de tous les pixels d'une certaine plage. XNA supporte très bien les shaders 2D.

Une autre solution serait de simuler la luminosité en utilisant une texture avec un canal alpha. La texture serait principalement noire sauf une tache transparente au milieu. Cette texture nous permet de superposer votre écran de jeu avec la tache transparente centrée sur le personnage «brillant». Les vieux jeux d'aventure utilisaient cette technique pour simuler des lampes de poche.

Stephen
la source