WikiDer > Адаптивное обновление плитки
Эта статья нужны дополнительные цитаты для проверка. (Февраль 2011 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Адаптивное обновление плитки это компьютерная графика техника для видеоигры с боковой прокруткой. Наиболее широко его использовали id Программное обеспечениес Джон Кармак в таких играх, как Командир Кин чтобы компенсировать низкую графическую производительность ПК в начале 1990-х годов. Его главное нововведение - новое использование нескольких EGA аппаратные функции для выполнения аппаратной прокрутки. Этот метод назван в честь другого его аспекта - отслеживания перемещенных графических элементов, чтобы минимизировать количество перерисовки, требуемой в каждом кадре. Вместе эта комбинация экономит время обработки, которое в противном случае потребовалось бы для перерисовки всего экрана.[1]:50 Кармак разработал программный движок на основе прокручиваемого дисплея для больших изображений 1970-х годов.[2]
Потому что CGA (предыдущее поколение графического оборудования ПК) не имеет функций для аппаратной прокрутки, прокрутка раньше должна была выполняться программно, путем перерисовки всего экрана для каждого кадра - задача, которую ПК того времени не может выполнить. Адаптивное обновление плитки сводит к минимуму вычислительную мощность, необходимую для игр с боковой прокруткой, в пределах досягаемости доступного оборудования. Это работает путем пометки фрагментов растрового изображения и перерисовки только той графики на экране, которая действительно обновляется.[3]
История
Адаптивное обновление плитки с использованием аппаратной прокрутки впервые появилось в еще не выпущенной тестовой игре под названием Опасный Дэйв в нарушении авторских прав, реализованный Кармаком. Название "Опасный Дэйв"ранее использовались Джон Ромеро при программировании игр для Softdisk. Новая игра представляет собой воссоздание первого уровня Nintendoс Супер Марио Братья 3, задуманный как реалистичный испытательный стенд для концепции адаптивного обновления плитки, был разработан в течение недели. Команда будущих сотрудников id Software, все еще работающих в Softdisk, затем полностью воссоздала Марио в надежде, что Nintendo выдаст лицензию на игру для ПК. Nintendo отклонила предложение выпустить игру после того, как id Software завершила ее.[4][5][1]
Первое появление на рынке адаптивного обновления плитки Кармака появилось в первом выпуске id Software. Командир Кин серия игр Оставленный на Марсе.
Технические детали
![]() | Эта секция возможно содержит оригинальные исследования. (Январь 2018) (Узнайте, как и когда удалить этот шаблон сообщения) |
EGA имеет несколько функций, обеспечивающих эффект адаптивного обновления плитки:
- В экранный буфер может быть немного шире экрана и произвольно высоко в зависимости от видеопамять ограничения.
- Положение в этом буфере, из которого отрисовывается экран, может быть смещено с шагом в 1 пиксель по горизонтали или вертикали.
- В нем достаточно видеопамяти для хранения двух таких экранных буферов, и еще есть место для плитка и спрайты.
Кармак использовал эти возможности для создания буфера, который на 64 пикселя шире и выше экрана, оставляя место для двух дополнительных строк и столбцов тайлов в буфере за пределами экрана. Он использовал возможности смещения карты, чтобы позволить экрану скользить через буфер для плавной прокрутки, которая частично показывает лишние плитки.
Прокрутка ограничена размером буфера, а дальнейшая прокрутка оборачивается для отображения данных с другой стороны буфера. Таким образом, чтобы прокрутить весь уровень, когда прокрутка составляет ценность целого тайла, код Кармака затем рисует следующий ряд тайлов с уровня в буфер, сразу за краем экрана, готовый к отображению, когда прокрутка продолжается в этом направлении.
Но поскольку в любой момент перерисовываются только края экрана, спрайты на уровне не перерисовываются, пока не достигнут края экрана. Чтобы противодействовать этому, код вычисляет, какие плитки движущийся спрайт ранее покрыл, и перерисовывает их, чтобы стереть старое изображение спрайта, а затем рисует новое изображение спрайта в его новой позиции. Это позволяет анимировать спрайты независимо от прокрутки с минимальными вычислительными затратами.
Поскольку перемещение спрайта таким образом включает сначала его стирание, а затем его перерисовку, изображение стертого спрайта может быть видно на короткое время, вызывая мерцание. Последняя часть техники Кармака - это использование тех же аппаратных функций EGA, которые используются для прокрутки, чтобы также реализовать двойная буферизация: настройка второго буфера, в который код может рисовать, пока первый буфер отображается на экране, который затем отключается во время обновления экрана. Это гарантирует, что ни один кадр не будет отображаться в середине рисунка, что дает плавную анимацию без мерцания.
Рекомендации
- ^ а б Кушнер, Дэвид (2004) [2003]. Мастера судьбы: как два парня создали империю и изменили поп-культуру. Нью-Йорк, штат Нью-Йорк: Random House, Inc. ISBN 9780375505249. OCLC 50129329.
- ^ Кушнер, Дэвид (1 августа 2002 г.). «Волшебство программного обеспечения для видеоигр». IEEE Spectrum. Получено 13 апреля, 2018.
- ^ Эйкок, Джон (9 мая 2016 г.). Retrogame Archeology: Exploring Old Computer Games. Springer. п. 45. Дои:10.1007/978-3-319-30004-7. ISBN 978-3-319-30004-7. S2CID 20655963. Получено 27 ноября, 2017.
- ^ Демоверсия Super Mario Bros. 3 (1990). Джон Ромеро. 1990 г.. Получено 15 декабря, 2015.
- ^ Орланд, Кайл (14 декабря 2015 г.). «Вот как мог бы выглядеть порт Mario 3 от id Software». Ars Technica. Получено 15 декабря, 2015.