적응형 타일 리프레시

Adaptive tile refresh

적응형 타일 리프레시는 비디오 게임을 측면 스크롤하기 위한 컴퓨터 그래픽 기술입니다.1990년대 초반 PC의 그래픽 성능 저하를 보완하기 위해 Commander Keen과 같은 게임에서 ID Software의 John Carmack에 의해 가장 잘 알려져 있습니다.주요 혁신은 여러 EGA 하드웨어 기능을 사용하여 하드웨어에서 스크롤을 수행하는 것입니다.이 기술은 모든 프레임에서 필요한 재묘화 양을 최소화하기 위해 움직이는 그래픽 요소의 추적이라는 다른 측면을 위해 명명되었습니다.이 조합으로 전체 화면을 다시 [1]: 50 그릴 때 필요한 처리 시간이 절약됩니다.Carmack은 1970년대 [2]대형 이미지용 스크롤 디스플레이를 기반으로 소프트웨어 엔진을 설계했다.

CGA(이전 세대의 PC 그래픽 하드웨어)에는 하드웨어 스크롤 기능이 없기 때문에 이전에는 모든 프레임에 대해 화면 전체를 다시 그려야 했습니다.이것은 당시의 PC에는 퍼포먼스가 부족했던 작업입니다.적응형 타일 리프레시 기능을 통해 이용 가능한 하드웨어 범위 내에서 게임을 사이드 스크롤하는 데 필요한 컴퓨팅 성능을 최소화할 수 있습니다.이것은 비트맵 타일에 플래그를 붙이고 실제로 [3]업데이트되는 화면의 그래픽만 다시 그리는 방식으로 작동합니다.

역사

하드웨어 스크롤을 사용한 적응형 타일 리프레시는 Carmack이 구현한 Dangerous Dave in Copyrightion이라는 미공개 테스트 게임에서 처음 등장했습니다.'위험한 데이브'라는 타이틀은 존 로메로가 소프트디스크용 게임을 프로그래밍할 때 사용했던 것이다.신작 게임은 닌텐도의 슈퍼 마리오 브라더스 3의 1레벨을 재현한 것으로, 적응형 타일 리프레시 컨셉의 현실적인 테스트 베드로, 1주일 이내에 개발되었습니다.Softdisk에서 여전히 일하고 있는 미래 id Software 직원들로 구성된 팀은 닌텐도가 이 게임을 PC용으로 라이선스하기를 바라며 마리오 게임 전체를 재현했다.닌텐도는 아이디소프트웨어가 게임을 [4][5][1]완성한 후 출시 제안을 거절했다.

Carmack의 적응형 타일 리프레쉬의 첫 번째 시장 출시는 Commander Keen 게임 시리즈인 Marooned on Mars에서 나왔다.

기술적 세부사항

EGA에는 적응형 타일 리프레시 효과를 가능하게 하는 몇 가지 기능이 있습니다.

  1. 화면 버퍼는 화면보다 약간 넓을 수 있으며 비디오 메모리에 제한이 있을 수 있습니다.
  2. 화면이 그려지는 버퍼 내의 위치는 수평 또는 수직으로 1픽셀씩 오프셋할 수 있습니다.
  3. 2개의 화면 버퍼를 저장할 수 있는 충분한 비디오 메모리가 있으며 타일과 스프라이트를 저장할 수 있는 여유 공간이 남아 있습니다.

Carmack은 이러한 기능을 사용하여 화면보다 64픽셀 넓이의 버퍼를 만들고 화면 가장자리에서 떨어진 버퍼에 2줄의 타일을 추가할 수 있는 공간을 확보했습니다.그는 카드의 오프셋 기능을 사용하여 화면이 버퍼를 통해 미끄러져 부드러운 스크롤을 할 수 있도록 했고, 여분의 타일이 부분적으로 드러났습니다.

스크롤은 버퍼 크기로 제한되며 스크롤은 버퍼의 반대쪽에서 데이터를 표시하기 위해 더 감깁니다.따라서 전체 레벨을 스크롤하려면 스크롤이 전체 타일의 가치가 될 때 Carmack의 코드에 따라 해당 레벨의 다음 행의 타일이 버퍼로 그려집니다. 화면 가장자리 바로 바깥쪽에 있습니다.이러한 방향으로 스크롤이 계속되었을 때 표시할 수 있습니다.

그러나 화면의 가장자리만 항상 다시 그려지기 때문에 레벨의 스프라이트는 화면 가장자리에 도달할 때까지 다시 그려지지 않습니다.이 문제를 해결하기 위해 코드는 움직이는 스프라이트가 이전에 덮었던 타일을 계산하고 다시 그려 이전 스프라이트 이미지를 지운 다음 새 위치에 새 스프라이트 이미지를 그립니다.따라서 최소한의 계산 작업만으로 스크롤과 독립적으로 스프라이트를 애니메이션화할 수 있습니다.

이렇게 스프라이트를 움직이면 먼저 스프라이트를 지운 후 다시 그리게 되므로 지워진 스프라이트의 이미지가 잠깐 보여 깜박거릴 수 있습니다.Carmack 기술의 마지막 부분은 더블 버퍼링을 구현하기 위해 스크롤에 사용되는 것과 동일한 EGA 하드웨어 기능을 사용하는 것입니다.첫 번째 버퍼가 화면에 표시되어 있는 동안 코드가 입력될 수 있는 두 번째 버퍼를 설정하고, 그 버퍼는 화면 새로 고침 중에 꺼집니다.이것에 의해, 도면 도중에 프레임이 표시되지 않게 되어, 부드럽고 플리커가 없는 애니메이션을 실현할 수 있습니다.

레퍼런스

  1. ^ a b Kushner, David (2004) [2003]. Masters of Doom: how two guys created an empire and transformed pop culture. New York, NY: Random House, Inc. ISBN 9780375505249. OCLC 50129329.
  2. ^ Kushner, David (August 1, 2002). "The Video Game Software Wizardry of Id". IEEE Spectrum. Retrieved April 13, 2018.
  3. ^ Aycock, John (May 9, 2016). Retrogame Archeology: Exploring Old Computer Games. Springer. p. 45. doi:10.1007/978-3-319-30004-7. ISBN 978-3-319-30004-7. S2CID 20655963. Retrieved November 27, 2017.
  4. ^ Super Mario Bros. 3 Demo (1990). John Romero. 1990. Retrieved December 15, 2015.
  5. ^ Orland, Kyle (December 14, 2015). "Here's what id Software's PC port of Mario 3 could have looked like". Ars Technica. Retrieved December 15, 2015.