Адаптивное обновление плитки
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2011 г. ) |
Адаптивное обновление плиток — это метод компьютерной графики для видеоигр с боковой прокруткой . Наиболее широко его использовал id Software из Джон Кармак в таких играх, как Commander Keen, чтобы компенсировать плохую графическую производительность ПК в начале 1990-х годов. Его основным нововведением является новое использование нескольких аппаратных функций EGA для аппаратной прокрутки. Этот метод назван в честь другого своего аспекта — отслеживания перемещенных графических элементов, чтобы минимизировать количество перерисовок, необходимых в каждом кадре. Вместе эта комбинация экономит время обработки, которое в противном случае потребовалось бы для перерисовки всего экрана. [ 1 ] : 50 Кармак разработал программный движок на основе прокручиваемого дисплея для больших изображений 1970-х годов. [ 2 ]
Поколение графики IBM PC, предшествующее EGA, — это CGA , в котором отсутствуют аппаратные функции прокрутки. Таким образом, прокрутка CGA выполняется программно путем перерисовки всего экрана для каждого кадра, чего таким системам не хватает производительности для полноэкранной анимации. Адаптивное обновление плиток минимизирует вычислительную мощность, необходимую для игр с боковой прокруткой, чтобы обеспечить доступность современного оборудования. Это работает путем пометки растровых фрагментов и перерисовки только той графики на экране, которая действительно обновляется. [ 3 ]
История
[ редактировать ]Адаптивное обновление тайлов с помощью аппаратной прокрутки дебютировало в неизданном прототипе игры Dangerous Dave in Copyright Infringement , реализованном Кармаком. Титул « Опасный Дэйв » ранее использовался Джоном Ромеро при программировании игр для Softdisk . Он был разработан в течение одной недели как воссоздание первого уровня игры Nintendo от Super Mario Bros. 3 и задуман как реалистичный прототип концепции адаптивного обновления плиток. Команда будущих сотрудников id Software, все еще работающая в Softdisk, затем завершила копию всей игры, которую передала Nintendo для лицензирования для ПК. Nintendo отказалась от предложения после того, как id Software завершила работу над прототипом. [ 4 ] [ 5 ] [ 1 ]
Первый выпуск адаптивного обновления плиток Кармака появился в первой части серии игр Commander Keen , Marooned on Mars , от id Software .
Технические детали
[ редактировать ]![]() | Возможно, этот раздел содержит оригинальные исследования . ( январь 2018 г. ) |
EGA имеет несколько функций, которые обеспечивают эффект адаптивного обновления плитки:
- Буфер кадра может быть немного шире экрана и произвольной высоты в зависимости от ограничений видеопамяти .
- Положение внутри этого буфера, из которого рисуется экран, может быть смещено с шагом в 1 пиксель по горизонтали или по вертикали.
- Видеопамяти у него достаточно для хранения двух таких экранных буферов, а также тайлов и спрайтов .
Кармак использовал эти возможности для создания буфера, который на 64 пикселя шире и выше экрана, оставляя место для двух дополнительных строк и столбцов плиток в буфере за пределами экрана. Он использовал возможности карты по смещению, чтобы позволить экрану скользить по буферу для плавной прокрутки, которая частично обнажает дополнительные плитки.
Когда видимая часть достигает конца буфера, позиция буфера смещается назад на одну плитку, а измененные плитки перерисовываются. [ 6 ] Это сделало метод зависимым от повторяющихся плиток, чтобы ограничить количество перерисовываемых плиток. [ 7 ]
Другая версия метода, представленная в Commander Keen в Keen Dreams, использует память EGA для отображения данных с другой стороны буфера. [ 7 ] Чтобы прокрутить весь уровень, когда прокрутка равна стоимости целой плитки, следующий ряд плиток с уровня затем рисуется в буфер, сразу за краем экрана, готовый к отображению при продолжении прокрутки. в этом направлении.
Поскольку в любой момент времени перерисовываются только края экрана, спрайты в видимой части экрана не будут перерисовываться, пока не достигнут края экрана. Чтобы противодействовать этому, код вычисляет, какие плитки ранее были покрыты движущимся спрайтом, и перерисовывает их, чтобы стереть старое изображение спрайта, а затем рисует новое изображение спрайта в его новом положении. Это позволяет анимировать спрайты независимо от прокрутки с минимальными вычислительными затратами.
Поскольку перемещение спрайта таким способом предполагает сначала его стирание, а затем перерисовку, изображение стертого спрайта может быть видимым на короткое время, вызывая мерцание. Последняя часть техники Кармака заключается в использовании тех же функций аппаратной прокрутки EGA для реализации двойной буферизации . Это создает второй буфер, в который код может рисовать во время отображения первого буфера, который затем отключается во время обновления экрана. Это гарантирует, что ни один кадр не будет отображаться в середине рисунка, что обеспечивает плавную анимацию без мерцания.
Ссылки
[ редактировать ]- ^ Jump up to: а б Кушнер, Дэвид (2004) [2003]. Мастера Doom: как два парня создали империю и изменили поп-культуру . Нью-Йорк, штат Нью-Йорк: ISBN Random House, Inc. 9780375505249 . OCLC 50129329 .
- ^ Кушнер, Дэвид (1 августа 2002 г.). «Магия программного обеспечения для видеоигр от Id» . IEEE-спектр . Проверено 13 апреля 2018 г.
- ^ Эйкок, Джон (9 мая 2016 г.). Археология ретроигр: исследование старых компьютерных игр . Спрингер. п. 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 для ПК» . Арс Техника . Проверено 15 декабря 2015 г.
- ^ Кармак, Джон. «Твиттер, 18:53 · 11 июля 2020 г.» . Твиттер . Проверено 19 января 2024 г.
- ^ Jump up to: а б Кармак, Джон. «Твит, 21:52 · 14 сентября 2018 г.» . Твиттер . Проверено 19 января 2024 г.