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?

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


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 .


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.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.