Я продолжаю слышать, как люди говорят о «грязном рендеринге», когда дело касается рендеринга карт для HTML5. Я гуглил и искал в GameDev об этом, но ничего особенного.
- Что именно это?
- Как правильно это реализовать?
источник
Я продолжаю слышать, как люди говорят о «грязном рендеринге», когда дело касается рендеринга карт для HTML5. Я гуглил и искал в GameDev об этом, но ничего особенного.
Это означает, что когда фон нарисован, не весь он перерисовывается каждый кадр. Когда что-то на карте перемещается, область, которую оно занимало, помечается как грязная . Затем, когда вы рисуете, вы знаете, что вам нужно перерисовать только ту часть фона. Это полезно, потому что тогда вам нужно только перерисовать области, которые не были показаны ранее.
Так что это действительно полезно только тогда, когда у вас не так много движущихся вещей, в противном случае вы тратите больше времени на выяснение новых областей, чем если бы вы просто перерисовали весь фон. Это уже не так часто, так как платформа обычно достаточно быстра, чтобы перерисовать все без проблем. Поскольку это на самом деле просто функция оптимизации, я бы пока проигнорировал ее и вернулся к ней, если вы обнаружите, что производительности не хватает.
Рендеринг в большинстве игр происходит внутри цикла (игрового цикла), и на каждой итерации игрового цикла весь буферный буфер очищается (в данном случае ваш холст) и перерисовывается с нуля.
Термин « грязный рендеринг» относится к технике, в которой вместо очистки всего холста в каждом кадре вы очищаете его только по требованию (т.е. только когда что-то изменилось в сцене) и, возможно, только его часть (т.е. только часть, где что-то изменилось). ).
Этот процесс маркировки только части вашего холста для перерисовки - это то, на что ссылается « грязный» (т.е. эта часть холста грязная и должна быть перерисована, но все остальное все еще чисто и не должно быть затронуто ).
Я понятия не имею, есть ли какой-то особый способ для вас реализовать это в HTML5, но я нашел этот ресурс, который может дать вам некоторые идеи.