Bagaimana pencahayaan 2D diterapkan?

58

Saya bertanya-tanya apa cara terbaik untuk mendekati efek "pencahayaan" dalam game 2D. Sebagai contoh, jika karakter utama saya bersinar, teknik apa yang dapat saya gunakan untuk menyelesaikan efek visual dari karakter yang bersinar ketika berada di dekat objek lain yang akan dipengaruhi oleh cahaya?

Christopher Horenstein
sumber

Jawaban:

39

Anda bisa overlay tekstur efek cahaya sederhana dengan tepi transparan lembut. Jika Anda menginginkan pencahayaan / bayangan yang mirip dengan apa yang Anda temukan di dunia 3d, Anda dapat melakukan sesuatu seperti ini: http://www.catalinzima.com/2010/07/my-technique-for-the-shader-based-dynamic -2d-shadows / . Namun, jika Anda baru mengenal HLSL, maka itu mungkin sedikit terlalu banyak.

sunting : Saya menemukan tutorial ringan HTML5 2d yang bagus

zfedoran
sumber
Tautan itulah yang saya cari. Saya tidak bisa cukup berterima kasih; ini sangat membantu.
Christopher Horenstein
7

Ada proyek XNA open-source yang merupakan perpustakaan yang sangat baik dan implementasi pencahayaan 2D yang kebetulan kompatibel dengan profil Jangkauan XNA 4.0 - Krypton XNA .

Christopher Horenstein
sumber
4

Anda akan memerlukan efek shader postfilter yang ditulis dalam HLSL atau GLSL. Shader akan menerima koordinat pemain dan mengubah kecerahan untuk semua piksel dalam rentang tertentu. XNA mendukung shader 2D yang cukup baik.

Solusi lain adalah mensimulasikan kecerahan dengan menggunakan tekstur dengan saluran alpha. Teksturnya sebagian besar hitam kecuali tempat transparan di tengah. Tekstur ini kami overlay di atas layar game Anda dengan tempat transparan yang berpusat pada karakter pemain 'bersinar'. Game petualangan lama menggunakan teknik ini untuk mensimulasikan lampu senter.

Stephen
sumber