我目前正在XNA中进行2D“蠕虫”克隆,其功能之一是“可变形”地形(例如,当火箭击中该地形时,会发生爆炸,并且大部分地形消失了)。
我当前的操作方式是使用接近中心的“红色”值逐渐升高的纹理。我循环遍历“变形”纹理的每个像素,如果当前像素与地形像素重叠并且具有足够高的红色值,则将表示地形的颜色阵列修改为透明。如果当前像素的Red值不够高,我将使地形颜色变黑(红色值越接近阈值,它越黑)。在此操作结束时,我使用SetData更新了地形纹理。
我意识到这不是一个好方法,不仅因为我已经阅读了有关管道停顿的知识,而且还因为如果同时添加大量的陨石坑,它可能会变得很漫长。我想在GPU上重新制作Crater Generation,而不是在目标和要修改的纹理之间使用“渲染目标”“渲染”。那不是问题,我知道该怎么做。问题是我不知道如何使用这种方法保持刻录效果。
现在是刻录效果的样子:
是否有人知道我将如何创建类似的刻录效果(使形成的弹坑周围的边缘变暗)?我对Shaders完全不熟悉,但是如果需要它的话,如果有人指导我完成操作,我将非常感激。如果还有其他方法也很好。