Saat ini saya sedang mengerjakan klon "Worms" 2D di XNA, dan salah satu fiturnya adalah medan "yang dapat dideformasi" (mis. Ketika sebuah roket mengenai medan, ada ledakan dan sepotong medan menghilang).
Cara saya saat ini melakukan ini adalah dengan menggunakan tekstur yang memiliki nilai Red semakin tinggi saat mendekati pusat. Saya menggilir setiap piksel dari tekstur "Kerusakan" itu, dan jika piksel saat ini tumpang tindih dengan piksel medan dan memiliki nilai merah yang cukup tinggi, saya memodifikasi susunan warna yang mewakili medan menjadi transparan. Jika piksel saat ini TIDAK memiliki nilai Merah yang cukup tinggi, saya menghitamkan warna medan (semakin gelap semakin dekat nilai Merah ke ambang). Di akhir operasi ini saya menggunakan SetData untuk memperbarui tekstur medan saya.
Saya menyadari ini bukan cara yang baik untuk melakukannya, bukan hanya karena saya telah membaca tentang saluran pipa dan semacamnya, tetapi juga karena itu bisa menjadi sangat lamban jika banyak kawah ditambahkan pada saat yang sama. Saya ingin membuat ulang Generasi Kawah saya di GPU sebagai gantinya menggunakan Target Render "ping-ponging" antara menjadi target dan tekstur untuk dimodifikasi. Bukan itu masalahnya, saya tahu bagaimana melakukannya. masalahnya adalah saya tidak tahu bagaimana cara menjaga efek luka bakar saya menggunakan metode ini.
Begini cara efek terbakar terlihat sekarang:
Adakah yang tahu bagaimana saya akan menciptakan efek luka bakar yang serupa (menggelapkan tepi di sekitar kawah yang terbentuk)? Saya benar-benar tidak terbiasa dengan Shader tetapi jika itu mengharuskan saya, saya akan sangat berterima kasih jika seseorang menuntun saya bagaimana melakukannya. Jika ada cara lain yang bagus juga.