Actualmente estoy trabajando en un clon 2D "Worms" en XNA, y una de las características es el terreno "deformable" (por ejemplo, cuando un cohete golpea el terreno, hay una explosión y una parte del terreno desaparece).
Lo que estoy haciendo actualmente es mediante el uso de una textura que tiene un valor Rojo progresivamente más alto a medida que se acerca al centro. Recorro cada píxel de esa textura "Deformar", y si el píxel actual se superpone a un píxel del terreno y tiene un valor rojo lo suficientemente alto, modifico el conjunto de colores que representa el terreno a transparente. Si el píxel actual NO tiene un valor Rojo lo suficientemente alto, oscurezco el color del terreno (se vuelve más negro cuanto más se acerca el valor Rojo al umbral). Al final de esta operación, uso SetData para actualizar mi textura de terreno.
Me doy cuenta de que esta no es una buena manera de hacerlo, no solo porque he leído sobre los puestos de ductos y demás, sino también porque puede volverse bastante lento si se agregan muchos cráteres al mismo tiempo. Quiero rehacer mi generación de cráteres en la GPU en lugar de usar "Renderizar objetivos" entre ser el objetivo y la textura a modificar. Ese no es el problema, sé cómo hacerlo. El problema es que no sé cómo mantener mi efecto de quemado con este método.
Así es como se ve el efecto de quemado en este momento:
¿Alguien tiene una idea de cómo crearía un efecto de quemado similar (oscureciendo los bordes alrededor del cráter formado)? No estoy completamente familiarizado con Shaders, pero si lo requiere, estaría muy agradecido si alguien me explicara cómo hacerlo. Si hay otras formas, eso también sería genial.