Saya tidak yakin dengan istilah yang tepat untuk mencari di atau bahkan di mana untuk memulai meskipun saya membayangkan itu adalah semacam efek pemrosesan pos.
Saya telah melihat game seperti I Wanna Be The Boshy dan You Have To Win the Game yang berhasil mengubah perspektif game 2D untuk memberikan semacam efek 3D kepada mereka (lihat gambar di bawah). Boshy pada dasarnya membuatnya tampak seperti Anda berada di dalam menara (silinder) sementara You Have To Win the Game mendistorsi gambar sehingga terlihat seperti Anda bermain di monitor CRT lama, khususnya tampilan yang agak membulat.
- Apakah ada istilah untuk efek ini?
- Apa cara standar untuk menerapkan efek ini (terminologi)?
- Bagaimana saya akan menerapkan efek seperti itu di mesin / kerangka kerja tingkat tinggi seperti Unity atau XNA / Monogame dari tampilan 20.000 kaki? (kode terperinci diterima dengan senang hati tetapi tidak perlu - Saya menyadari detail implementasi yang tepat mungkin bervariasi tetapi detail tingkat tinggi tentang apa yang perlu dilakukan akan sangat dihargai)
Saya Ingin menjadi Boshy
Anda harus memenangkan permainan
2d
graphic-effects
post-processing
Spartan Donut
sumber
sumber
Jawaban:
Ini dapat diimplementasikan sebagai jenis efek pasca pemrosesan. (Saat menggunakan Unity / XNA / Dx / OGL / ...)
Metode geometri
Mulailah dengan membuat mesh yang menyerupai efek distorsi yang ingin Anda capai. (mis. model setengah silinder (atau kerucut, bola, kubus, ...), pastikan untuk mengatur koordinat tekstur). Render game 2D Anda seperti biasa, tetapi render hasil akhirnya menjadi tekstur. Kemudian, render geometri distorsi dengan tekstur yang baru saja Anda buat. Anda dapat menggunakan dunia / tampilan / proyeksi atau memodifikasi koordinat geometri / tekstur yang sebenarnya untuk mengontrol kekuatan distorsi. (gambar 1 menunjukkan game 2D biasa, gambar 2 menunjukkan tekstur yang sama diproyeksikan ke bola)
Metode distorsi
Alat pemrosesan gambar sering menawarkan efek distorsi yang dapat meniru proyeksi (sedikit seperti ilusi optik). Misalnya, gambar 3 dihasilkan menggunakan filter tonjolan dari Paint.Net
.
(Anda dapat menemukan implementasi (OpenGL ES 2.0) dari efek distorsi ini dari proyek GPUImage - lihat GPUImageBulgeDistortionFilter)
Bergantung pada implementasinya, metode mana pun mungkin lebih cepat atau memberikan kecocokan yang lebih baik untuk hasil yang Anda inginkan. Karena kedua implementasi cukup sederhana, Anda dapat mencoba mengimplementasikan keduanya dan melihat mana yang paling cocok untuk Anda.
sumber