스프라이트 (컴퓨터 그래픽스)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
스프라이트는 컴퓨터 그래픽스에서 사용되는 2차원 이미지로, 배경과 독립적으로 움직이며 화면에 겹쳐 표시될 수 있다. 최초의 아케이드 게임인 '컴퓨터 스페이스'에서 개념이 시작되었으며, 'TV 바스켓볼'과 같은 초기 비디오 게임에서 플레이어 캐릭터를 표현하는 데 사용되었다. 스프라이트는 프로그래밍의 효율성을 높이고, CPU 부하를 줄여 게임의 성능을 향상시키는 데 기여했다. 다양한 하드웨어 시스템에서 스프라이트 기능을 지원하며, 2.5D 및 3D 게임에서도 활용된다.
더 읽어볼만한 페이지
스프라이트 (컴퓨터 그래픽스) | |
---|---|
컴퓨터 그래픽스 | |
종류 | 2차원 비트맵 |
용도 | 더 큰 장면 위에 표시 |
관련 기술 | 텍스처 아틀라스, 픽셀 아트 |
영상 기술 (일본) | |
정의 | 텔레비전 게임 등의 영상에서, 캐릭터나 아이템 등 배경 이외의 것 |
특징 | 배경 데이터와는 별도로, 위치 정보와 함께 기억됨 표시 위치나 표시 순서를 실시간으로 변경 가능 |
용어 유래 | 요정 (妖精) |
기술적 분류 | 하드웨어 스프라이트 소프트웨어 스프라이트 |
하드웨어 스프라이트 | 개요: 전용 회로에 의해 고속으로 처리됨 장점: 처리 속도 빠름 단점: 표시 가능한 스프라이트 수 제한 |
소프트웨어 스프라이트 | 개요: CPU에 의해 처리됨 장점: 표시 가능한 스프라이트 수 유연함 단점: CPU 부하 증가 |
역사 | 기원: 아케이드 게임 발전: 가정용 게임기, PC 게임 등으로 확대 |
관련 기술 | 비트맵 팔레트 스크롤 |
2. 역사
스프라이트는 아케이드 게임에서 시작되었다. 놀런 부쉬넬은 최초의 아케이드 게임인 ''컴퓨터 스페이스''(1971)를 개발하면서 이 개념을 처음 생각했다. 이후, 타이토의 ''TV 바스켓볼''(1974)을 거쳐, 1979년 남코의 아케이드 게임 ''갤럭시안''은 스크롤 배경 위에 애니메이션된 여러 색상의 스프라이트를 표시했다.[12]
가정용 시스템에서는 1977년 아타리 VCS가 하드웨어 스프라이트 구현을 갖추었고, 1979년 아타리 400 및 800은 각 스캔 라인당 8개의 단색 객체를 이동시킬 수 있는 더 정교한 회로를 갖추었다. 텍사스 인스트루먼츠는 1979년 TI-99/4를 위해 스프라이트 지원 기능이 있는 TMS9918 칩을 개발했고, 사이네틱스는 스프라이트 그래픽을 생성할 수 있는 최초의 칩을 개발하여 1978년 1292 어드밴스드 프로그래머블 비디오 시스템에 처음 사용했다.
2. 1. 아케이드 게임
놀런 부쉬넬은 최초의 아케이드 게임인 컴퓨터 스페이스(1971)를 개발하면서 스프라이트 개념을 처음 고안했다. 그는 각 게임 요소를 전용 트랜지스터로 제어하여, 초기 메인프레임 게임 스페이스워!(1962)의 기술적 제약을 해결했다. 이로써 로켓은 배경과 독립적으로 움직이는 하드와이어된 비트맵이 되었고, 이는 스프라이트 그래픽의 기반을 마련하는 중요한 혁신이었다.[4]플레이어 캐릭터를 인간 플레이어 스프라이트로 표현한 최초의 비디오 게임은 타이토의 TV 바스켓볼(1974)이다.[5][6][7] 니시카도 토모히로는 사각형 모양을 농구 선수와 농구 골대처럼 보이도록 재배열하여, 단순한 ''퐁'' 스타일의 사각형을 넘어선 캐릭터 그래픽으로 발전시키고자 했다.[9][10] 램테크의 ''베이스볼''(1974) 역시 사람과 비슷한 캐릭터를 표시했다.[8][11]
1979년 남코는 갤럭시안을 위해 스크롤 배경 위에 애니메이션된 여러 색상의 스프라이트를 표시하는 아케이드 시스템 보드를 제작했다.[12] 이는 닌텐도의 ''레이더 스코프''와 ''동키콩'' 아케이드 하드웨어, 닌텐도 엔터테인먼트 시스템 등의 기반이 되었다.[13]
2. 2. 가정용 시스템
아타리 VCS는 1977년에 출시된 가정용 게임기로, 하드웨어 스프라이트 구현을 통해 5개의 그래픽 객체를 게임 화면과 독립적으로 움직일 수 있게 했다. 당시에는 '스프라이트'라는 용어 대신 '이동 가능한 객체'라고 불렸으며, 이들은 두 개의 '플레이어', 두 개의 '미사일', 그리고 하나의 '공'으로 구성되었다.[15] 각 객체는 한 줄의 픽셀로 이루어져 있으며, 2차원 모양을 만들기 위해 소프트웨어가 각 줄마다 스프라이트의 비트맵을 변경했다.1979년에는 아타리 400 및 800 가정용 컴퓨터가 출시되었는데, 이들은 각 스캔 라인당 8개의 단색 객체(4개의 8비트 너비 '플레이어'와 4개의 2비트 너비 '미사일')를 움직일 수 있는 더 정교한 회로를 갖추고 있었다. 각 객체는 화면 전체 높이의 길고 얇은 스트립 형태였다. DMA를 통해 메모리의 테이블에서 각 스캔 라인에 대한 그래픽 패턴 레지스터를 자동으로 설정했으며, 하드웨어 레지스터는 각 플레이어 및 미사일의 수평 위치를 제어했다. 수직 이동은 비트맵 데이터를 이동시켜 수행되었다. 아타리는 이 기능을 '플레이어/미사일 그래픽'이라고 불렀다.
텍사스 인스트루먼츠는 1979년 TI-99/4 가정용 컴퓨터를 위해 스프라이트 지원 기능이 있는 TMS9918 칩을 개발했다. 1981년에는 업데이트된 버전이 TI-99/4A에 사용되었다.
사이네틱스는 가정용 시스템을 위해 스프라이트 그래픽을 생성할 수 있는 최초의 칩(사이네틱스에서 ''객체''라고 지칭)을 개발했다. 사이네틱스 2636 비디오 프로세서는 1978년 1292 어드밴스드 프로그래머블 비디오 시스템에 처음 사용되었고, 이후 1979년 엘렉터 TV 게임 컴퓨터에 사용되었다.
2. 3. 2.5D 및 3D 게임

스프라이트는 1980년대 후반과 1990년대 초반 2.5D 게임(2D 맵에서 3D 게임 공간을 재현하는 게임)이 부상하면서 인기를 유지했다. 빌보딩이라는 기술을 통해 2.5D 게임은 화면상의 스프라이트를 항상 플레이어 시점을 향하도록 회전시킬 수 있다. 1993년작 둠과 같은 일부 2.5D 게임은 3D의 환상을 더욱 증진시키기 위해 뷰어에 대한 회전에 따라 동일한 엔티티를 서로 다른 스프라이트로 표현할 수 있다.
완전한 3D 게임은 일반적으로 세계의 객체를 3D 모델로 표시하지만, GoldSrc[16] 및 언리얼[17]과 같은 일부 3D 게임 엔진에서도 스프라이트가 지원되며, 빌보드 처리되거나 고정된 방향으로 고정될 수 있다. 스프라이트는 세 번째 차원의 부재가 큰 단점이 아닌 작은 세부 사항, 파티클 효과 및 기타 응용 프로그램에 유용하게 사용된다.
예를 들어 게임에서 주인공(플레이어)이 썰매를 타는 장면을 표현하는 경우, 스프라이트를 사용한 영상 표현에서는 앉아있는 주인공이 그려진 스프라이트 아래에 썰매 스프라이트를 겹쳐 놓고, 썰매가 움직이기 시작할 때 썰매와 주인공을 세밀하게 위아래 또는 좌우로 작게 움직여 주인공이 탄 썰매가 빠르게 질주하며 울퉁불퉁한 지면에 의해 진동하는 모습을 표현할 수 있다. 주인공이 썰매에서 보트로 갈아타는 경우에는 앉아있는 주인공 스프라이트 아래에 보트 스프라이트를 놓는 것만으로 충분하다. 이처럼 실제로 표시되는 데이터 자체를 수정하는 것보다 훨씬 가벼운 처리이며, 표시 자체보다 움직임이라는 점에서 뛰어난 표현력을 발휘한다.
반면, 특히 라인 버퍼 방식의 구현에서는 메모리 속도에 가로 방향의 동시 표시 개수가 의존하기 때문에, 해당 캐릭터의 크기와 개수는 하드웨어 설계에 제한을 받는다. 스프라이트 기능이 단색 하드웨어에서 여러 색상의 캐릭터를 표현하는 경우에는 색상별 캐릭터를 여러 개 겹쳐서 처리한다.
3. 프로그래밍 상의 이점
스프라이트는 캐릭터를 이동시킬 때 각 스프라이트의 표시 위치 정보만 변경하면 되므로, 소프트웨어에서 이미지를 겹쳐서 표시하는 처리 등을 할 필요가 없다. 따라서 CPU 부하, VRAM 버스 부하, 소프트웨어 개발(주로 프로그래머) 부담이 적어 프로그램의 품질이 안정된다. 우선 순위 지정을 통해 깊이(Z-index)도 쉽게 표현할 수 있다. 이는 앞서 언급한 응용 표현과 같이, 특히 몇몇 부품을 따로 또는 함께 움직임으로써 움직임에 대한 표현 능력을 향상시키는 동시에, 부품 단위의 합성이 용이해져 전체 데이터량 감소에 기여하며, 제작 부담을 줄이고 적은 용량의 저장 매체로 더욱 풍부한 표현력의 게임을 제공할 수 있게 되었다.
4. 하드웨어
"스프라이트"라는 용어는 1979년 텍사스 인스트루먼트 TMS9918 비디오 디스플레이 프로세서 엔지니어 중 한 명인 칼 구택(Karl Guttag)에 따르면 TI의 매니저인 데이비드 애클리(David Ackley)로부터 유래되었다.[1] 1970년대 후반 텍사스 인스트루먼트에서 대니 힐리스(Danny Hillis)에 의해 사용되기도 했다.[2] 스프라이트가 배경 이미지를 덮어쓰지 않고 그 위에 "떠다니는" 모습이 마치 유령이나 신화 속 정령과 유사하다는 사실에서 유래된 것이다.
일부 하드웨어 제조업체는 "스프라이트"가 보편화되기 전에 다른 용어를 사용했다.
- '''플레이어/미사일 그래픽'''은 아타리가 아타리 8비트 컴퓨터 (1979)와 Atari 5200 콘솔 (1982)의 하드웨어 스프라이트에 사용한 용어이다.[3]
- '''스탬프'''는 ''Ms. Pac-Man''을 포함하여 1980년대 초 일부 아케이드 하드웨어에서 사용되었다.[14]
- '''이동 가능한 객체 블록''' 또는 '''MOB'''은 MOS Technology의 그래픽 칩 문서에 사용되었다. 코모도어 인터내셔널(Commodore International)은 코모도어 64에 "스프라이트"라는 용어를 사용했다.
- '''OBJ''' (''객체''의 약자)는 NES, 슈퍼 NES, 게임보이의 개발자 매뉴얼에 사용된다. 스프라이트 속성과 좌표를 저장하는 데 사용되는 비디오 램 영역을 '''OAM''' (객체 속성 메모리)라고 한다.
스프라이트는 아케이드 게임에서 시작되었다. 놀런 부쉬넬은 최초의 아케이드 게임인 ''컴퓨터 스페이스''(1971)를 개발하면서 이 개념을 처음 생각해냈다.[4] 로켓은 본질적으로 하드와이어된 비트맵으로, 배경과 독립적으로 화면을 이동했다.
인간 플레이어 스프라이트로 플레이어 캐릭터를 표현한 최초의 비디오 게임은 1974년 4월에 출시된 타이토의 ''TV 바스켓볼''이다.[5][6][7] 니시카도 토모히로가 설계했으며, 그는 단순한 ''퐁'' 스타일의 사각형을 넘어 캐릭터 그래픽으로 발전시키고자 했다.[9][10] 램테크는 1974년 10월에 ''베이스볼''을 출시했는데,[8] 이 게임 역시 사람과 비슷한 캐릭터를 표시했다.[11]
1979년 아케이드 게임 ''갤럭시안''을 위해 제작된 남코의 아케이드 시스템 보드는 스크롤 배경 위에 애니메이션된, 여러 색상의 스프라이트를 표시했다.[12] 이는 닌텐도의 ''레이더 스코프''와 ''동키콩'' 아케이드 하드웨어, 그리고 닌텐도 엔터테인먼트 시스템과 같은 가정용 게임기의 기반이 되었다.[13]
사이네틱스는 가정용 시스템을 위해 스프라이트 그래픽을 생성할 수 있는 최초의 칩(사이네틱스에서 ''객체''라고 지칭)을 개발했다. 사이네틱스 2636 비디오 프로세서는 1978년 1292 어드밴스드 프로그래머블 비디오 시스템에 처음 사용되었고, 이후 1979년 엘렉터 TV 게임 컴퓨터에 사용되었다.
1977년에 출시된 아타리 VCS는 하드웨어 스프라이트 구현을 갖추고 있어 5개의 그래픽 객체를 게임 플레이 필드와 독립적으로 이동시킬 수 있었다. 당시에는 ''스프라이트''라는 용어가 사용되지 않았다. VCS의 스프라이트는 프로그래밍 매뉴얼에서 ''이동 가능한 객체''라고 불리며, 두 개의 ''플레이어'', 두 개의 ''미사일'', 그리고 하나의 ''공''으로 추가적으로 식별된다.[15]
1979년 출시된 아타리 400 및 800 가정용 컴퓨터는 각 스캔 라인당 8개의 단색 객체(4개의 8비트 너비 ''플레이어''와 4개의 2비트 너비 ''미사일'')를 이동시킬 수 있는 회로를 갖추고 있었다. 수직 이동은 플레이어 또는 미사일 스트립 내에서 비트맵 데이터를 이동하여 수행된다. 이 기능은 아타리에서 ''플레이어/미사일 그래픽''이라고 불렸다.
텍사스 인스트루먼츠는 1979년 TI-99/4 가정용 컴퓨터를 위해 스프라이트 지원 기능이 있는 TMS9918 칩을 개발했다. 업데이트된 버전은 1981년 TI-99/4A에 사용되었다.
시스템 | 스프라이트 하드웨어 | 출시 | 화면당 스프라이트 수 | 스캔 라인당 스프라이트 수 | 라인당 최대 텍셀 수 | 텍스처 너비 | 텍스처 높이 | 색상 수 | 줌 | 회전 | 충돌 감지 | 투명도 | 출처 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Amstrad Plus | ASIC | 1990 | 16 | 16 | ? | 16 | 16 | 15 | 색상 키 | [18] | |||||
Atari 2600 | TIA | 1977 | 5 | 5 | 19 | 1, 8 | 262 | 1 | 색상 키 | [19] | |||||
Atari 8비트 컴퓨터 | GTIA/ANTIC | 1979 | 8 | 8 | 40 | 2, 8 | 128, 256 | 1 | 색상 키 | [20] | |||||
코모도어 64 | VIC-II | 1982 | 8 | 8 | 96, 192 | 12, 24 | 21 | 1, 3 | 색상 키 | [21] | |||||
아미가(OCS) | Denise | 1985 | 8, 수평으로 4픽셀 단위로 재사용 가능 | 임의, 8개 고유 | 임의 | 16 | 임의 | 3, 15 | 색상 키 | [22] | |||||
아미가(AGA) | Lisa | 1992 | 8, 수평으로 2픽셀 단위로 재사용 가능 | 임의, 8개 고유 | 임의 | 16, 32, 64 | 임의 | 3, 15 | 색상 키 | ||||||
ColecoVision | TMS9918A | 1983 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 색상 키 | ||||||
TI-99/4 & 4A | TMS9918 | 1979 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 색상 키 | ||||||
Gameduino | 2011 | 256 | 96 | 1,536 | 16 | 16 | 255 | 색상 키 | [23] | ||||||
Intellivision | STIC AY-3-8900 | 1979 | 8 | 8 | 64 | 8 | 8,16 | 1 | 색상 키 | [24] | |||||
MSX | TMS9918A | 1983 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 색상 키 | [25] | |||||
MSX2 | Yamaha V9938 | 1986 | 32 | 8 | 128 | 8, 16 | 8,16 | 라인당 1, 3, 7, 15 | 색상 키 | ||||||
MSX2+ / MSX turbo R | Yamaha V9958 | 1988 | 32 | 8 | 128 | 8,16 | 8,16 | 라인당 1, 3, 7, 15 | 색상 키 | ||||||
남코 팩맨 (아케이드) | TTL | 1980 | 6 | 6 | 96 | 16 | 16 | 3 | 색상 키 | [26] | |||||
TurboGrafx-16 | HuC6270A | 1987 | 64 | 16 | 256 | 16, 32 | 16, 32, 64 | 15 | 색상 키 | [27] | |||||
Namco Galaxian (아케이드) | TTL | 1979 | 7 | 7 | 112 | 16 | 16 | 3 | 색상 키 | [28][29][30] | |||||
닌텐도 동키콩, 레이더 스코프 (아케이드) | 1979 | 128 | 16 | 256 | 16 | 16 | 3 | 색상 키 | [31] | ||||||
닌텐도 DS | 통합 PPU | 2004 | 128 | 128 | 1,210 | 8, 16, 32, 64 | 8, 16, 32, 64 | 65,536 | 색상 키, 블렌딩 | [32] | |||||
NES/패밀리 컴퓨터 | Ricoh RP2C0x PPU | 1983 | 64 | 8 | 64 | 8 | 8, 16 | 3 | 색상 키 | [33] | |||||
게임보이 | 통합 PPU | 1989 | 40 | 10 | 80 | 8 | 8, 16 | 3 | No | 색상 키 | [34] | ||||
게임보이 어드밴스 | 통합 PPU | 2001 | 128 | 128 | 1210 | 8, 16, 32, 64 | 8, 16, 32, 64 | 15, 255 | 색상 키, 블렌딩 | [35] | |||||
마스터 시스템, 게임 기어 | YM2602B VDP (TMS9918 파생) | 1985 | 64 | 8 | 128 | 8, 16 | 8, 16 | 15 | 색상 키 | [36][37] | |||||
제네시스 / 메가 드라이브 | YM7101 VDP (SMS VDP 파생) | 1988 | 80 | 20 | 320 | 8, 16, 24, 32 | 8, 16, 24, 32 | 15 | Yes | 색상 키 | [38][39] | ||||
세가 아웃런 (아케이드) | 1986 | 128 | 128 | 1600 | 8 to 512 | 8 to 256 | 15 | 알파 | [40][41][42][43][44][45][46] | ||||||
X68000 | Cynthia jr. (오리지널), Cynthia (후기 모델) | 1987 | 128 | 32 | 512 | 16 | 16 | 15 | 색상 키 | [47][48][49] | |||||
네오 지오 | LSPC2-A2 | 1990 | 384 | 96 | 1536 | 16 | 16 to 512 | 15 | 색상 키 | [50][51][52] | |||||
슈퍼 NES / 슈퍼 패미컴 | S-PPU1, S-PPU2 | 1990 | 128 | 34 | 256 | 8, 16, 32, 64 | 8, 16, 32, 64 | 15 | 색상 키, 평균 | [53] | |||||
시스템 | 스프라이트 하드웨어 | 출시 | 화면당 스프라이트 수 | 라인당 스프라이트 수 | 라인당 최대 텍셀 수 | 텍스처 너비 | 텍스처 높이 | 색상 수 | 하드웨어 줌 | 회전 | 충돌 감지 | 투명도 | 출처 |
스프라이트는 일반적인 화면 표시의 영상 정보를 기억하는 비디오 램과는 별도로, 다수의 작은 이미지를 화면상의 1픽셀 단위로 임의의 위치에 하드웨어로 합성하여 표시하는 것이다.
배경 이미지나 텍스트, 여러 개의 스프라이트를 임의의 우선 순위로 겹쳐서 합성 표시할 수 있으며, 저가형 기종에서는 단색이기도 하는 등, 그리기 표현보다는 움직이는 파츠를 표현하는 데 적합한 기능이다.
이는 애니메이션에서의 셀화의 개념과 비슷하며, 셀화에 비유하자면 배경 위에 캐릭터 크기로 자른 셀을 놓고, 1프레임마다 캐릭터의 셀을 배경 위에서 이동시키면서 움직이거나 다른 셀로 바꿔가는 것이다.
개별 스프라이트 이미지는 직사각형이지만, 투과는 픽셀 단위로 이루어진다. 이로 인해 원형, 삼각형 등 임의의 형태 도형을 배경과 합성할 수 있다. 각 스프라이트는 특정 투과색(크로마 키)을 가지며, 투과색으로 지정된 픽셀은 겹쳐졌을 때 배경이 비쳐 보인다. 스프라이트를 다른 스프라이트에 겹쳐 투과 표시하는 것도 가능하다.
메모리 절약을 위해, 컬러 스프라이트 이미지에는 인덱스 컬러 형식이 사용된다. 스프라이트 이미지마다 컬러 팔레트를 가짐으로써, 개별 스프라이트 이미지의 데이터를 줄이면서, 최종적으로 합성되어 화면에 표시되는 이미지 전체 색 수를 늘릴 수 있다.
비트 마스크와 논리 연산을 이용하면, 스프라이트 이미지와 투과 정보 이미지(마스크 이미지)를 분리할 수도 있다.
게임에서 주인공이 썰매를 타는 장면을 표현하는 경우, 스프라이트를 사용한 영상 표현에서는 앉아있는 주인공이 그려진 스프라이트 아래에 썰매 스프라이트를 겹쳐 놓고, 썰매가 움직일 때 썰매와 주인공을 세밀하게 위아래 또는 좌우로 작게 움직여 표현할 수 있다.
주인공이 썰매에서 보트로 갈아타는 경우에는 앉아있는 주인공 스프라이트 아래에 보트 스프라이트를 놓는 것만으로 충분하다. 이처럼 데이터 자체를 수정하는 것보다 훨씬 가벼운 처리이며, 표시 자체보다 움직임이라는 점에서 뛰어난 표현력을 발휘한다. 특히 라인 버퍼 방식 구현에서는 메모리 속도에 가로 방향 동시 표시 개수가 의존하기 때문에, 캐릭터 크기와 개수는 하드웨어 설계에 제한을 받는다. 스프라이트 기능이 단색 하드웨어에서 여러 색상 캐릭터를 표현하는 경우에는 색상별 캐릭터를 여러 개 겹쳐서 처리한다.
초기에는 아케이드 게임에서 전용 전자 회로를 구성하여 실현되었다. 점차 범용화되어, 패미컴과 같은 게임기, 퍼스널 컴퓨터 (PC)의 일부 (MSX, X68000, FM TOWNS) 등에서 이용할 수 있게 되었다.
슈팅 게임이나 레이싱 게임에서 유용하게 사용되었다. 스프라이트 기능을 탑재한 하드웨어는 적은 CPU 리소스로 캐릭터를 화면상에서 다수 부드럽게 움직일 수 있기 때문에, CPU 처리 능력이 낮은 시대의 컴퓨터에서는 부드러운 움직임과 속도를 요구하는 게임에서 그 힘을 발휘했다.
4. 1. 라인 버퍼 방식
모니터에 출력할 영상 신호를 생성하기 직전에, VRAM에서 읽어온 비트맵 또는 캐릭터 기반 그래픽 면 데이터와, 스프라이트 IC에서 전송되는 스프라이트 데이터를 주사선 1라인 분량의 라인 버퍼에서 합성 처리한다.이 방식의 장점은, 그래픽 버스를 거의 소비하지 않으며, 캐릭터 합성 처리에 필요한 워크 RAM이 적게 든다는 점이다.
그러나 화면 주사과 병행하여 스프라이트를 합성하기 때문에, 해당 스프라이트용 버퍼에는 고속 메모리가 필요하며, 가로 방향으로 다수 표시할 경우, 합성 처리가 따라가지 못해, 처리되지 못한 것은 표시되지 않는 상황이 발생한다. 이때, 일반적으로 내부 인덱스가 느린 (우선순위가 낮은) 스프라이트부터 표시가 누락되기 시작하며, 스프라이트 수가 증가할수록, 1라인 내 합성 처리 타이밍이 더 민감해진다. 이러한 사양을 역이용하여, 합성 처리의 일부로 사용한 소프트웨어도 존재한다.
이러한 제한에 대해, 특히 최대 표시 개수에 제약이 많은 가정용 게임기 등, 많은 소프트웨어에서는, 표시할 스프라이트를 선별하여 깜빡이게 하면서 표시함으로써, 스프라이트 누락을 완화했다. 또한, 수평 귀선 기간 내 제어 가능한 하드웨어에서는, 주사선 판정, 인터럽트 등을 사용하여, 실제 표시가 완료된 영역의 스프라이트 위치 정보를 아직 주사되지 않은 영역에서 이용함으로써, 사양상의 최대 표시 수를 초과한 화면 표시를 하는 "스프라이트 더블러" 등의 처리도 개발되었다 (래스터 스크롤도 참조).
4. 2. 프레임 버퍼 방식
FM TOWNS나 아케이드 게임기 등에서 사용되던 방식이다. 광의로는 3D 그래픽 기능(폴리곤과 텍스처 매핑)으로 흉내 내어 구현하는 방법도 해당한다.[56]일본의 가정용 컴퓨터에서는 FM TOWNS에서 처음 채택되었다. 발매 당시 가정용 컴퓨터에서 일반적이었던 스프라이트 기능 구현 방식과 달라서, 속칭 "의사 스프라이트"라고 불리기도 했다.[56] 3DO나 세가 새턴 등의 5세대 이후 게임기에서도 주류가 되었다.
원리는 단순하며, 스프라이트만 그리는 프레임 버퍼를 2 화면분 확보한다. 그리고 1프레임 분의 스프라이트를 오프 스크린의 프레임 버퍼에 모두 그린다. 그리기 완료 후 현재 오프 스크린의 프레임 버퍼와 온 스크린의 프레임 버퍼를 전환한다. 스프라이트 그리기가 완료된 프레임 버퍼는 단순한 비트맵 그래픽 평면으로서 다른 그래픽 평면과 합성되어 출력된다. 이를 반복한다.
라인 버퍼 방식과 달리, 가로 방향으로 스프라이트를 나열할 수 있는 수에 제한이 없는것이 장점이다. 스프라이트 IC에 의한 VRAM으로의 그리기 속도와 VRAM의 속도가 향상되면, 선형적으로 스프라이트의 표시 상한을 향상시킬 수 있다. 이 때문에 프레임 버퍼 방식의 스프라이트는 라인 버퍼 방식을 훨씬 뛰어넘는 최대 표시 개수를 실현하는 경우가 많다. 또한 기본적으로는 CPU가 수행하는지 스프라이트 IC가 수행하는지의 차이를 제외하면, VRAM에 비트맵 데이터를 그리는 점에서는 같기 때문에 스프라이트에 대한 확대 축소 등의 특수 효과 구현에 무리가 없다.
단점은 VRAM이 대량으로 필요하며, 또한 VRAM으로의 스프라이트 데이터(즉 비트맵 데이터)의 고속 그리기 능력도 필요하다는 점이다. 또한 1프레임 중에 표시 가능한 매수를 넘어서 표시하려고 하면 표시 버퍼를 전환하는 타이밍이 2프레임 이후가 되어, 이 지연에 의한 표시 멈춤이 발생한다. 또한 프레임 버퍼 방식에서도 초기 구현(세가의 시스템 기판 등)의 경우에는, 수직 귀선 기간에 모든 스프라이트의 전송이 완료되는 것을 전제로 1프레임분밖에 버퍼를 설정하지 않아, 스프라이트 레이어의 그리기 타이밍이 어떤 이유로든 지연되면, 우선순위가 낮은 스프라이트가 통째로 대량으로 사라지기도 한다.
5. 소프트웨어
프로그래밍 기법 자체가 광고 문구로 많이 사용되던 시대에는 하드웨어 스프라이트에 대응하여 소프트웨어에 의한 겹쳐 표시, 캐릭터 표시의 고속 처리를 소프트웨어 스프라이트 또는 유사 스프라이트라고 표현했다. 반드시 하드웨어 스프라이트가 가진 특징, 우위성을 모두 포함하는 것은 아니다. 그 후, 마이크로소프트 윈도우 등 하드웨어 스프라이트를 갖지 않는 환경에서도 DirectDraw 등의 API를 통해 유사한 처리가 프레임 버퍼에 그려지는 형태로 유사하게 구현되었다.[1]
PC에서는 하드웨어 스프라이트가 도태되었지만, 소프트웨어에 의한 것은 여전히 보편적인 기법이다. 배경과 캐릭터의 분리에 의한 데이터 절약이 가능하기 때문에 노벨 게임과 같이 움직임이 적은 경우에도 중요하다. 인터넷에서도 Ajax의 보급과 Cascading Style Sheets의 강화 등으로 인해, 종래에는 애니메이션 GIF나 Adobe Flash로 구현되던 웹사이트의 동적인 액센트 등에 활용되고 있다.[1]
6. 3D 그래픽스 기능
카메라를 마주보도록 제한된 알파 채널이 있는 2D 이미지는 3D 그래픽스로 사용될 수 있다. 이러한 이미지는 주로 초목, 근접한 물체, 입자 효과를 렌더링할 때 사용되며, Z-스프라이드 또는 빌보드라고 불린다. 임포스터(impostor)는 기반 3D 모델의 대략적인 뷰를 캐시하기 위해 중간에 렌더링되는 스프라이트를 의미한다.[61]
1980년대 후반과 1990년대 초반, 2.5D 게임(2D 맵에서 3D 게임 공간을 재현하는 게임)이 인기를 얻으면서 스프라이트 기술도 함께 발전했다. 빌보딩 기술을 통해 2.5D 게임은 화면상의 스프라이트를 항상 플레이어 시점을 향하도록 회전시킬 수 있었다. 1993년작 ''둠''과 같은 일부 2.5D 게임은 3D 효과를 더욱 강화하기 위해 뷰어에 대한 회전에 따라 동일한 엔티티를 서로 다른 스프라이트로 표현하기도 했다.
완전한 3D 게임은 일반적으로 세계의 객체를 3D 모델로 표시하지만, GoldSrc[16] 및 언리얼[17]과 같은 일부 3D 게임 엔진에서는 스프라이트를 지원하여 빌보드 처리하거나 고정된 방향으로 설정할 수 있다. 스프라이트는 세 번째 차원이 크게 중요하지 않은 작은 세부 사항, 파티클 효과 및 기타 응용 프로그램에 유용하게 사용된다.
예를 들어, 게임에서 주인공이 썰매를 타는 장면을 표현할 때, 스프라이트를 사용하면 앉아있는 주인공 스프라이트 아래에 썰매 스프라이트를 겹쳐 놓고, 썰매가 움직일 때 썰매와 주인공을 미세하게 움직여 썰매가 빠르게 움직이며 진동하는 모습을 표현할 수 있다. 주인공이 썰매에서 보트로 갈아타는 경우에는 앉아있는 주인공 스프라이트 아래에 보트 스프라이트를 놓으면 된다. 이처럼 스프라이트는 실제로 표시되는 데이터를 수정하는 것보다 훨씬 가벼운 처리이며, 움직임을 표현하는 데 효과적이다.
플레이스테이션 등에서도 그래픽스 하드웨어에 구현된 3D 지오메트리 엔진의 텍스처 매핑 및 래스터라이저 기능을 응용하여 정면을 향한 사각형 폴리곤 (빌보드)을 사용한 처리를 통해 유사한 스프라이트 기능을 구현하고 있다. SDK나 미들웨어 등에 준비된 라이브러리를 통해 제공되기도 한다. 범용 PC 및 모바일 기기에서 동작하는 애플리케이션 소프트웨어에서도 Direct3D나 OpenGL/OpenGL ES 등의 3D 그래픽스 API를 거쳐 GPU의 기능에 의한 합성이나 효과 등을 사용하여 스프라이트가 구현되고 있다.
GPU와 같은 그래픽스 프로세서에서는 폴리곤 정점 또는 텍스처가 가진 투과 정보를 이용하여 알파 블렌딩을 하드웨어에서 실행할 수 있다. 정점 색상이나 텍스처에는 24비트 RGB 색상 정보와 8비트 투과 정보 (알파 채널)를 가진 RGBA32 형식이 사용되는 경우가 많으며, 정점마다 또는 픽셀마다 256단계 (0-255)의 투과 레벨을 가질 수 있어 스프라이트의 투명도를 서서히 변화시키는 페이드 표현이나, 이미지의 가장자리가 안티앨리어싱된 부드러운 합성이 가능하다.
Direct3D (DirectX) 8/9 및 OpenGL 2.x에서는 포인트 스프라이트 기능이 제공되었다. 이는 "점" 도형의 렌더링에 사용되는 포인트 프리미티브에 크기, 텍스처, 블렌딩 상태를 지정하여 텍스처 매핑된 두 개의 삼각형 면으로 구성된 사각형을 자동으로 렌더링하는 것으로, 이 기능을 사용하면 스프라이트를 쉽게 그릴 수 있다.[57] Direct3D 10에서는 이 기능이 폐지되었으며, 대신 지오메트리 셰이더를 사용하는 것이 권장된다.[58]
스프라이트를 대량으로 렌더링하는 경우, 개별적으로 렌더링하면 드로우 콜이나 렌더링 상태 변경의 오버헤드가 크다. Direct3D 9/10의 확장 라이브러리 (D3DX)에서는 여러 스프라이트 렌더링 명령을 큐에 넣어 일괄 처리하는 기능이 제공되었다.[59][60]
7. 3D 렌더링에서의 사용
알파 채널을 가진 2D 이미지를 3D 그래픽스에서 카메라를 마주보도록 제한하여 사용할 수 있다. 이러한 방식은 초목, 근접한 물체, 입자 효과 렌더링에 주로 쓰이며, Z-스프라이드 또는 빌보드라고 불린다. 기반 3D 모델의 대략적인 모습을 캐싱하기 위해 중간 렌더링에 사용되는 스프라이트는 임포스터(impostor)라고 한다.[61]
1980년대 후반과 1990년대 초반, 2.5D 게임(2D 맵에서 3D 게임 공간을 표현하는 게임)의 부상과 함께 스프라이트는 계속 사용되었다. 빌보딩 기술을 통해 2.5D 게임은 화면상의 스프라이트를 항상 플레이어 시점을 향하도록 회전시켰다. 1993년작 ''둠'' 같은 일부 2.5D 게임은 3D 효과를 높이기 위해 뷰어에 대한 회전에 따라 동일한 객체를 서로 다른 스프라이트로 표현했다.
완전한 3D 게임은 주로 3D 모델로 객체를 표현하지만, GoldSrc[16] 및 언리얼[17] 같은 일부 3D 게임 엔진에서는 스프라이트를 지원하며, 빌보드 처리하거나 고정된 방향으로 설정할 수 있다. 스프라이트는 세 번째 차원이 크게 중요하지 않은 작은 세부 사항, 파티클 효과 등에 유용하다.
플레이스테이션 등에서도 그래픽 하드웨어에 구현된 3D 지오메트리 엔진의 텍스처 매핑 및 래스터라이저 기능을 활용하여 정면을 향한 사각형 폴리곤 (빌보드) 처리로 유사한 스프라이트 기능을 구현한다. 이는 SDK나 미들웨어에 포함된 라이브러리를 통해 제공되기도 한다. 범용 PC 및 모바일 기기의 애플리케이션 소프트웨어에서도 Direct3D나 OpenGL/OpenGL ES 등의 3D 그래픽스 API를 통해 GPU의 합성 및 효과 기능을 사용하여 비슷하게 구현된 스프라이트가 사용된다.
GPU 같은 그래픽스 프로세서는 폴리곤 정점이나 텍스처의 투과 정보를 이용해 알파 블렌딩을 하드웨어에서 실행한다. 정점 색상이나 텍스처에는 24비트 RGB 색상 정보와 8비트 투과 정보(알파 채널)를 가진 RGBA32 형식이 주로 사용되며, 정점 또는 픽셀마다 256단계(0-255)의 투과 레벨을 설정하여 스프라이트의 투명도를 점진적으로 변화시키는 페이드 표현이나 이미지 가장자리가 안티앨리어싱된 부드러운 합성이 가능하다.
Direct3D (DirectX) 8/9 및 OpenGL 2.x에서는 포인트 스프라이트 기능이 제공되었다. 이는 "점" 도형 렌더링에 사용되는 포인트 프리미티브에 크기, 텍스처, 블렌딩 상태를 지정하여 텍스처 매핑된 두 개의 삼각형 면으로 구성된 사각형을 자동 렌더링하는 방식으로, 스프라이트를 쉽게 그릴 수 있게 해준다.[57] Direct3D 10에서는 이 기능이 폐지되고, 대신 지오메트리 셰이더를 사용하는 것이 권장된다.[58]
스프라이트를 대량으로 렌더링할 때 개별 렌더링은 드로우 콜이나 렌더링 상태 변경으로 인한 오버헤드가 크다. Direct3D 9/10의 확장 라이브러리(D3DX)에서는 여러 스프라이트 렌더링 명령을 큐에 넣어 일괄 처리하는 기능을 제공했다.[59][60]
8. 기타 용어
텍사스 인스트루먼트 TMS9918 비디오 디스플레이 프로세서 엔지니어 중 한 명인 칼 구택(Karl Guttag)에 따르면, 1979년 TI의 매니저 데이비드 애클리(David Ackley)가 이 단어를 처음 사용했다.[1] 1970년대 후반 텍사스 인스트루먼트에서 대니 힐리스(Danny Hillis)도 이 용어를 사용했다.[2] 스프라이트가 배경 이미지를 덮어쓰지 않고 그 위에 "떠다니는" 모습이 마치 유령이나 신화 속 정령과 유사하다는 점에서 이 용어가 유래되었다.
일부 하드웨어 제조업체는 특히 "스프라이트"가 보편화되기 전에 다른 용어를 사용했다.
- '''플레이어/미사일 그래픽'''은 아타리가 아타리 8비트 컴퓨터(1979)와 Atari 5200 콘솔(1982)의 하드웨어 스프라이트에 사용한 용어이다.[3] 이 용어는 동일한 색상을 공유하는 캐릭터("플레이어")와 소규모 관련 객체("미사일") 모두에 사용된다는 점을 반영한다. 이전의 아타리 비디오 컴퓨터 시스템과 일부 아타리 아케이드 게임에서는 "플레이어", "미사일", "공"을 사용했다.
- '''이동 가능한 객체 블록'''(MOB)은 MOS Technology의 그래픽 칩 문서에 사용되었다. MOS 칩의 주요 사용자이자 칩 제조업체의 대부분의 수명 동안 MOS의 소유자였던 코모도어 인터내셔널(Commodore International)은 대신 코모도어 64에 "스프라이트"라는 용어를 사용했다.
9. 하드웨어 스프라이트를 지원하는 시스템
시스템 | 스프라이트 하드웨어 | 출시 | 화면당 스프라이트 수 | 스캔 라인당 스프라이트 수 | 라인당 최대 텍셀 수 | 텍스처 너비 | 텍스처 높이 | 색상 수 | 줌 | 회전 | 충돌 감지 | 투명도 | 출처 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Amstrad Plus | ASIC | 1990 | 16 | 16 | ? | 16 | 16 | 15 | 2, 4× 수직, 2, 4× 수평 | 색상 키 | [18] | ||||
Atari 2600 | TIA | 1977 | 5 | 5 | 19 | 1, 8 | 262 | 1 | 2, 4, 8× 수평 | 색상 키 | [19] | ||||
Atari 8비트 컴퓨터 | GTIA/ANTIC | 1979 | 8 | 8 | 40 | 2, 8 | 128, 256 | 1 | 2× 수직, 2, 4× 수평 | 색상 키 | [20] | ||||
코모도어 64 | VIC-II | 1982 | 8 | 8 | 96, 192 | 12, 24 | 21 | 1, 3 | 2× 정수 | 색상 키 | [21] | ||||
아미가(OCS) | Denise | 1985 | 8, 수평으로 4픽셀 단위로 재사용 가능 | 임의, 8개 고유 | 임의 | 16 | 임의 | 3, 15 | 디스플레이 목록에 따른 수직 | 색상 키 | [22] | ||||
아미가(AGA) | Lisa | 1992 | 8, 수평으로 2픽셀 단위로 재사용 가능 | 임의, 8개 고유 | 임의 | 16, 32, 64 | 임의 | 3, 15 | 디스플레이 목록에 따른 수직 | 색상 키 | |||||
ColecoVision | TMS9918A | 1983 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 2× 정수 | 색상 키 | |||||
TI-99/4 & 4A | TMS9918 | 1979 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 2× 정수 | 색상 키 | |||||
Gameduino | 2011 | 256 | 96 | 1,536 | 16 | 16 | 255 | 색상 키 | [23] | ||||||
Intellivision | STIC AY-3-8900 | 1979 | 8 | 8 | 64 | 8 | 8,16 | 1 | 2, 4, 8× 수직, 2× 수평 | 수평 및 수직 미러링 | 색상 키 | [24] | |||
MSX | TMS9918A | 1983 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 2× 정수 | 색상 키 | [25] | ||||
MSX2 | Yamaha V9938 | 1986 | 32 | 8 | 128 | 8, 16 | 8,16 | 라인당 1, 3, 7, 15 | 2× 정수 | 색상 키 | |||||
MSX2+ / MSX turbo R | Yamaha V9958 | 1988 | 32 | 8 | 128 | 8,16 | 8,16 | 라인당 1, 3, 7, 15 | 2× 정수 | 색상 키 | |||||
남코 팩맨 (아케이드) | TTL | 1980 | 6 | 6 | 96 | 16 | 16 | 3 | 수평 및 수직 미러링 | 색상 키 | [26] | ||||
TurboGrafx-16 | HuC6270A | 1987 | 64 | 16 | 256 | 16, 32 | 16, 32, 64 | 15 | 수평 및 수직 미러링 | 색상 키 | [27] | ||||
Namco Galaxian (아케이드) | TTL | 1979 | 7 | 7 | 112 | 16 | 16 | 3 | 수평 및 수직 미러링 | 색상 키 | [28][29][30] | ||||
닌텐도 동키콩, 레이더 스코프 (아케이드) | 1979 | 128 | 16 | 256 | 16 | 16 | 3 | 정수 | 색상 키 | [31] | |||||
닌텐도 DS | 통합 PPU | 2004 | 128 | 128 | 1,210 | 8, 16, 32, 64 | 8, 16, 32, 64 | 65,536 | 아핀 | 아핀 | 색상 키, 블렌딩 | [32] | |||
NES/패밀리 컴퓨터 | Ricoh RP2C0x PPU | 1983 | 64 | 8 | 64 | 8 | 8, 16 | 3 | 수평 및 수직 미러링 | 색상 키 | [33] | ||||
게임보이 | 통합 PPU | 1989 | 40 | 10 | 80 | 8 | 8, 16 | 3 | 수평 및 수직 미러링 | No | 색상 키 | [34] | |||
게임보이 어드밴스 | 통합 PPU | 2001 | 128 | 128 | 1210 | 8, 16, 32, 64 | 8, 16, 32, 64 | 15, 255 | 아핀 | 아핀 | 색상 키, 블렌딩 | [35] | |||
마스터 시스템, 게임 기어 | YM2602B VDP (TMS9918 파생) | 1985 | 64 | 8 | 128 | 8, 16 | 8, 16 | 15 | 2× 정수, 2× 수직 | 배경 타일 미러링 | 색상 키 | [36][37] | |||
제네시스 / 메가 드라이브 | YM7101 VDP (SMS VDP 파생) | 1988 | 80 | 20 | 320 | 8, 16, 24, 32 | 8, 16, 24, 32 | 15 | 수평 및 수직 미러링 | Yes | 색상 키 | [38][39] | |||
세가 아웃런 (아케이드) | 1986 | 128 | 128 | 1600 | 8 to 512 | 8 to 256 | 15 | 비등방성 | 수평 및 수직 미러링 | 알파 | [40][41][42][43][44][45][46] | ||||
X68000 | Cynthia jr. (오리지널), Cynthia (후기 모델) | 1987 | 128 | 32 | 512 | 16 | 16 | 15 | 2× 정수 | 수평 및 수직 미러링 | 색상 키 | [47][48][49] | |||
네오 지오 | LSPC2-A2 | 1990 | 384 | 96 | 1536 | 16 | 16 to 512 | 15 | 스프라이트 축소 | 수평 및 수직 미러링 | 색상 키 | [50][51][52] | |||
슈퍼 NES / 슈퍼 패미컴 | S-PPU1, S-PPU2 | 1990 | 128 | 34 | 256 | 8, 16, 32, 64 | 8, 16, 32, 64 | 15 | No | 수평 및 수직 미러링 | No | 색상 키, 평균 | [53] |
참조
[1]
웹사이트
First, Be Useful (Home computers and Pico Projectors)
https://kguttag.com/[...]
2011-12-06
[2]
서적
Never Mind the Laptops: Kids, Computers, and the Transformation of Learning
https://books.google[...]
iUniverse
2003
[3]
웹사이트
De Re Atari
http://www.atariarch[...]
1981
[4]
서적
The Pleasures of Computer Gaming: Essays on Cultural History, Theory and Aesthetics
https://books.google[...]
McFarland & Company
2015-05-12
[5]
서적
The Ethics of Playing, Researching, and Teaching Games in the Writing Classroom
https://books.google[...]
Springer Nature
2021-01-27
[6]
웹사이트
Video Game Firsts
https://web.archive.[...]
2017-11-05
[7]
웹사이트
Basketball Flyer
https://web.archive.[...]
2014-07-08
[8]
서적
アーケードTVゲームリスト国内•海外編(1971-2005)
https://archive.org/[...]
Amusement News Agency
2006-10-13
[9]
서적
They Create Worlds: The Story of the People and Companies That Shaped the Video Game Industry, Vol. I: 1971-1982
https://books.google[...]
CRC Press
2019-11-19
[10]
뉴스
スペースインベーダー・今明かす開発秘話――開発者・西角友宏氏、タイトー・和田洋一社長対談
http://trendy.nikkei[...]
2008-03-21
[11]
간행물
The 70s: The Genesis of an Industry
https://archive.org/[...]
2014-03
[12]
서적
The Golden Age of Video Games: The Birth of a Multibillion Dollar Industry
https://books.google[...]
CRC Press
2016-04-19
[13]
웹사이트
Making the Famicom a Reality
https://web.archive.[...]
[14]
AV media
Classic Game Postmortem: 'Ms. Pac-Man'
http://www.gdcvault.[...]
Game Developers Conference
2017-01-26
[15]
웹사이트
Stella Programmer's Guide
http://atarihq.com/d[...]
1979-12-03
[16]
웹사이트
GoldSrc Sprite Tutorial
https://the303.org/t[...]
2024-09-26
[17]
웹사이트
How to import and use Paper 2D Sprites in Unreal Engine
https://dev.epicgame[...]
Epic Games
2024-10-31
[18]
웹사이트
Plus - CPCWiki
http://cpcwiki.eu/in[...]
Cpcwiki.eu
2009-11-29
[19]
웹사이트
Television Interface Adaptor
http://www.atariarch[...]
AtariArchives.com
2011-02-06
[20]
웹사이트
Atari 5200 FAQ - Hardware Overview
http://www.atarihq.c[...]
AtariHQ.com
2011-02-06
[21]
웹사이트
The MOS 6567/6569 video controller (VIC-II) and its application in the Commodore 64
http://www.minet.uni[...]
2006-01-08
[22]
웹사이트
Amiga Hardware Reference Manual 4: sprite hardware
http://amigadev.elow[...]
1989
[23]
웹사이트
Gameduino Specifications
http://gameduino.com[...]
excamera.com
2011-06-13
[24]
웹사이트
STIC - Intellivision Wiki
http://wiki.intelliv[...]
2018-03-15
[25]
서적
TEXAS INSTRUMENTS 9900: TMS9918A/TMS9928AITMS9929A Video Display Processors
http://emu-docs.org/[...]
2011-07-05
[26]
서적
Racing the Beam: The Atari Video Computer System
https://books.google[...]
MIT Press
2009-01-09
[27]
웹사이트
Learn Multi platform 6502 Assembly Programming... For Monsters! Platform Specific Series
https://www.chibiaku[...]
2021-12-04
[28]
웹사이트
Galaxian-derived video hardware
https://github.com/m[...]
MAME
2018-10-23
[29]
웹사이트
Galaxian-derived hardware
https://github.com/m[...]
MAME
2018-10-23
[30]
웹사이트
Galaxian hardware family
https://github.com/m[...]
MAME
2018-10-23
[31]
문서
Nathan Altice (2015), I Am Error: The Nintendo Family Computer / Entertainment System Platform, pages 53 & 69
https://web.archive.[...]
MIT Press
2016-11-12
[32]
웹사이트
Specifications
http://nocash.emubas[...]
Nocash.emubase.de
2009-11-29
[33]
웹사이트
Microsoft Word - NESDoc.doc
http://nesdev.parodi[...]
2009-11-29
[34]
웹사이트
GameBoy - Spielkonsolen Online Lexikon
http://www.at-mix.de[...]
At-mix.de
2004-06-22
[35]
웹사이트
Specifications
http://nocash.emubas[...]
Nocash.emubase.de
2009-11-29
[36]
웹사이트
Sega Master System VDP documentation
http://cgfm2.emuview[...]
2011-07-05
[37]
웹사이트
Sega Master System Technical Information
http://www.smspower.[...]
2016-11-28
[38]
웹사이트
Sega Programming FAQ October 18, 1995, Sixth Edition - Final
https://web.archive.[...]
2015-12-10
[39]
웹사이트
How Sega built the Genesis
http://www.polygon.c[...]
Polygon
2015-02-03
[40]
웹사이트
Sega Out Run Hardware (Sega)
http://system16.com/[...]
System 16
2016-03-31
[41]
웹사이트
mame/segaorun.c at master · mamedev/mame · GitHub
https://archive.toda[...]
2014-11-21
[42]
웹사이트
Out Run
https://web.archive.[...]
2001-02-27
[43]
웹사이트
Out Run Hardware (Sega)
http://www.system16.[...]
System 16
2009-11-29
[44]
웹사이트
Version 0.3 - 7th February 1998
http://www.coinop.or[...]
2016-11-28
[45]
웹사이트
Sega 16-bit common hardware
https://web.archive.[...]
2016-02-09
[46]
웹사이트
Sega "X-Board" hardware notes
https://web.archive.[...]
2016-11-28
[47]
웹사이트
X68000-Computer Museum
http://museum.ipsj.o[...]
2016-11-28
[48]
웹사이트
mame/x68k.c at master · mamedev/mame · GitHub
https://archive.toda[...]
2014-11-21
[49]
웹사이트
超連射68K 開発後記
http://www2.tky.3web[...]
2001-09-12
[50]
웹사이트
Neo-Geo MVS Hardware Notes
http://furrtek.free.[...]
2016-11-28
[51]
웹사이트
Neo-Geo Programming Manual
http://furrtek.free.[...]
2016-11-28
[52]
웹사이트
Big List of Debug Dipswitches
http://www.neo-geo.c[...]
Neo-Geo
2014-07-09
[53]
웹사이트
snes sprite engine design guide
https://megacatstudi[...]
2021-03-30
[54]
웹사이트
BitBlt function (wingdi.h) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[55]
웹사이트
Oh!X関係者が語る,あのころのX68000。「X68000 Z」のローンチを記念して,かつての関係者にあれこれ話してもらおう
https://www.4gamer.n[...]
[56]
간행물
Oh!FM TOWNS
[57]
웹사이트
Point Sprites - Windows drivers | Microsoft Learn
https://learn.micros[...]
[58]
웹사이트
Deprecated Features (Direct3D 10) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[59]
웹사이트
ID3DXSprite interface (D3dx9core.h) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[60]
웹사이트
ID3DX10Sprite interface (D3DX10.h) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[61]
웹인용
GPU Gems NVIDIA Developer
https://developer.nv[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com