Преимущества экрана очистки Libgdx - PullRequest
0 голосов
/ 09 мая 2019

Я много смотрел в интернете, но почему-то не смог найти никаких преимуществ, чтобы всегда очищать экран в методе рендеринга, или не очень хорошо понял.

Так какая же выгода от того, что очистка экрана не очистит каким-либо образом, что игра будет рисовать все с нуля каждый раз, когда вызывается метод рендеринга?

1 Ответ

3 голосов
/ 09 мая 2019

Если в вашей игре есть хотя бы одна движущаяся вещь, отсутствие очистки экрана приведет к тому, что спрайт (если вы используете спрайт) этой вещи будет в каждом месте, где она была в прошлых кадрах.Обычно вы очищаете экран, чтобы удалить прошлые нарисованные объекты и перерисовать обновленные позиции.Вы могли бы запрограммировать некоторую логику, чтобы знать, переместился ли материал, и избежать очистки экрана, но я не думаю, что очистка вычислительных затрат экрана достаточно высока для усилий.
Ниже приведен пример эффекта, вызванного не очисткой экрана каждого кадра.enter image description here

Редактировать: Как указано в Tenfour04, есть еще одна веская причина для очистки экрана: Perfomance .

Libgdx, как и почти все игровые движки, использует двойную буферизацию, что означает, что, пока один кадр отображается на экране, он уже рисует следующий кадр в другом буфере кадров.Если вы не очистите экран, он должен подождать, а затем скопировать содержимое первого буфера во второй, прежде чем он сможет начать рисовать на нем.Таким образом, это тратит впустую время GPU, а также предотвращает многозадачность, которая экономит время

...