Jak wdrażane jest oświetlenie 2D?

58

Zastanawiam się, jaki jest najlepszy sposób na uzyskanie efektu „oświetlenia” w grach 2D. Na przykład, jeśli moja główna postać świeci, jakich technik mogę użyć, aby ukończyć efekt wizualny postaci świecącej, gdy znajduje się ona w pobliżu innych obiektów, na które wpłynęłoby światło?

Christopher Horenstein
źródło

Odpowiedzi:

39

Możesz nałożyć prostą teksturę z efektem jarzenia z miękkimi przezroczystymi krawędziami. Jeśli chcesz mieć oświetlenie / cienie podobne do tego, co można znaleźć w świecie 3d, możesz zrobić coś takiego: http://www.catalinzima.com/2010/07/my-technique-for-the-shader-based-dynamic -2d-shadows / . Jeśli jednak dopiero zaczynasz przygodę z HLSL, może to być trochę za dużo.

edycja : Natknąłem się na fajny samouczek HTML5 2d

zfedoran
źródło
Ten link jest dokładnie tym, czego szukałem. Nie mogę ci wystarczająco podziękować; to jest bardzo pomocne.
Christopher Horenstein
7

Istnieje projekt XNA typu open source, który jest doskonałą biblioteką i implementacją oświetlenia 2D, która okazuje się być zgodna z profilem zasięgu XNA 4.0 - Krypton XNA .

Christopher Horenstein
źródło
4

Potrzebujesz efektu shadera po filtrze napisanego w HLSL lub GLSL. Moduł cieniujący odbierałby współrzędne odtwarzacza i modyfikował jasność dla wszystkich pikseli w określonym zakresie. XNA obsługuje dość dobrze shadery 2D.

Innym rozwiązaniem byłoby symulowanie jasności za pomocą tekstury z kanałem alfa. Tekstura byłaby w większości czarna, z wyjątkiem przezroczystego miejsca na środku. Ta tekstura będzie nakładką na ekran gry z przezroczystym miejscem na środku „świecącej” postaci gracza. Stare gry przygodowe wykorzystywały tę technikę do symulacji latarek.

Stephen
źródło