래스터 바

Raster bar
Atari ST의 반복실험자의 도입부에서 텍스트 뒤로 래스터 막대가 이동하는 예제

래스터 바(래스터 바 또는 동선 바라고도 함)는 일반적으로 수평인 애니메이션 컬러 바를 표시하는 데모 및 오래된 비디오 게임에 사용효과로, 테두리, 즉 디스플레이의 변경 불가능한 영역(오버스캔 없음)까지 확장될 수 있습니다.래스터 바 스타일의 효과는 Atari 2600과 Atari 8비트 제품군에서 일반적이었습니다(이러한 시스템의 하드웨어를 사용하여 쉽게 표시할 수 있었기 때문입니다). 그리고 나중에 코모도어 64, Amiga, Atari ST, ZX Spectrum 및 Amstrad CPC 데모에서 사용되었습니다.

카퍼바라는 용어는 Coopper(코프로세서의 단축형)라고 불리는 Amiga 가정용 컴퓨터의 그래픽 코프로세서에서 유래했습니다.프레임당 한 번 막대의 위치를 업데이트하는 것을 제외하고 CPU를 필요로 하지 않고 스캔 라인별로 디스플레이 색상을 변경하도록 프로그래밍할 수 있습니다.

수평 래스터 바

이러한 컴퓨터는 그래픽 능력이 제한적이었고, 일반적으로 한 번에 표시할 수 있는 색상 또는 잉크의 수(암스트래드 CPC의 최대 16개)는 고정된 수였으며, 이는 종종 각 표시 가능한 색상을 가능한 색상 선택(팔레트)의 더 큰 선택 중 하나에 매핑하는 색상 룩업 테이블(CLUT)에서 할당되었다.(를 들어 CPC의 경우 27).래스터 바 및 유사한 효과(예를 들어 플레이 영역과 다른 색상 세트를 사용하는 HUD 포함)는 스크린이 그려지는 동안(원래 전자 빔에 의해) CLUT의 엔트리를 변경하여 스크린의 후속 부분에 다른 색상 세트를 표시함으로써 달성된다.가장 기본적인 래스터 바는 단순히 전자총이 선을 그리기 직전에 CLUT에서 선을 덮는 색상의 값을 변경한 후 선이 완료되면 이전 색상으로 다시 변경함으로써 단일 스캔 라인에 영향을 줍니다.여러 가지 색을 연속해서 사용하고 변화를 세심하게 계조함으로써 금속처럼 보이는 수평봉 효과를 얻을 수 있다.

많은 그래픽 칩은 수평 블랭크 간격 또는 수직 동기 시작 시 인터럽트, 특히 래스터 인터럽트라고 불리는 인터럽트를 트리거할 수 있습니다.따라서 인터럽트 핸들러는 래스터 바 및 기타 색상 변경 효과의 CLUT 엔트리를 정확하게 갱신하는 태스크를 실행할 수 있습니다.

수직 래스터 바

Angel의 "Coppermaster" Amiga 데모의 수직 래스터 바의 예(배경에는 수평 래스터 바가 있음)

유사한 효과가 수직으로 발생할 수 있지만 종종 경계 영역까지 확장되지는 않습니다.세로 막대를 생성하기 위해 모든 스캔 라인에서 동일한 비디오 메모리가 반복적으로 출력됩니다.프레임의 상부에서 비디오 메모리는 일반적으로 공백으로 되어 있으며 수평 블랭크 간격마다 약간 다른 위치에 새로운 "막대"로 갱신되어 "스텝" 효과가 발생합니다.

코드 예시