В настоящее время я реализую эффект двумерной деформируемой местности в игре, над которой я работаю, и все идет хорошо, но я могу себе представить, что она очень быстро превратится в скачок производительности, когда я начну добавлять больше слоев к эффекту.
Теперь я ищу способ сохранить путь, или обтравочную маску или подобное, вместо того, чтобы сохранять каждую точку пути на местности, которую мне нужно рисовать через каждый кадр.И когда я добавляю больше слоев, мне нужно будет повторять путь все больше и больше, который может содержать тысячи точек.
Какой-то очень простой код, демонстрирующий то, что я сейчас делаю
for (var i = 0; i < aMousePoints.length; i++)
{
cRenderContext.save();
cRenderContext.beginPath();
var cMousePoint = aMousePoints[i];
cRenderContext.arc(cMousePoint.x, cMousePoint.y, 30, 0, 2 * Math.PI, false);
cRenderContext.clip();
cRenderContext.drawImage(cImg, 0, 0);
cRenderContext.closePath();
cRenderContext.restore();
}
По сути, я стремлюсь к эффективному способу рисования моей обтравочной маски для моего изображения снова и снова в каждом кадре