|
Двойная буферизация
Следующий метод, требующий использования дополнительной экранной памяти, обычно называют двойной буферизацией (double buffering). Он применяется для обеспечения плавности движения в быстро меняющихся изображениях (например, при мультипликации). Даже в простых моделях с быстродействующим аппаратным обеспечением непрерыное перерисовывание объекта может вызвать заметное мерцание экрана. Оно вызвано необходимостью всякий раз очищать дисплей перед тем, как система начнет рисовать объект в новой позиции . Чтобы устранить этот дефект, двойная буферизация позволяет системе рисовать образ в неотображаемой части экранной памяти, а затем переключать отображение на эту часть. В этом случае обьект немедленно воспроизводится в новой позиции.
Фактически, этот метод переопределяет некоторое количество плоскостей (вторичный буфер) как скрытую память и затем меняет местами два буфера так, что первичный буфер становится неотображаемым. Если вы работаете с псевдо-цветными изображениями, вам нужно два блока памяти глубиной по 8 плоскостей, всего 16 плоскостей, чтобы использовать этот метод. Если вы пожелаете иметь двухбуферное изображение с действительными цветами, понадобится уже 48 плоскостей. Когда формирование вторичного изображения завершено, вы сообщаете системе об изменении участка отображаемой памяти, и следующий кадр изображения возникнет на экране. Заметим, что такой подход не позволяет вам рисовать буферы быстрее , он только дает ощущение более реалистичного движения. Пока существует только теоретическая возможность генерировать двойные псевдо-цветные изображения для PC , и слишком мало программных средств ее реализуют.
Пример реализации содержится в проекте 3D Animator.
[Назад]
|
|
|
|