Sprite (Computergrafik) - Sprite (computer graphics)
Teil einer Serie zum Thema: |
Grafik von Videospielen |
---|
In der Computergrafik ist ein Sprite eine zweidimensionale Bitmap , die in eine größere Szene integriert ist, meistens in ein 2D- Videospiel . Ursprünglich bezog sich der Begriff Sprite auf Objekte mit fester Größe, die durch Hardware mit einem Hintergrund zusammengefügt wurden. Die Verwendung des Begriffs ist inzwischen allgemeiner geworden.
Zu den Systemen mit Hardware-Sprites gehören Arcade-Videospiele der 1970er und 1980er Jahre; Spielkonsolen wie Atari VCS (1977), ColecoVision (1982), Nintendo Entertainment System (1983) und Sega Genesis (1988); und Heimcomputer wie Texas Instruments TI-99/4A (1979), Atari 8-Bit-Familie (1979), Commodore 64 (1982), MSX (1983), Amiga (1985) und X68000 (1987). Die Hardware variiert in Bezug auf die Anzahl der unterstützten Sprites, die Größe und Farben der einzelnen Sprites sowie Spezialeffekte wie Skalierung oder pixelgenaue Überlappung.
Die Hardwarezusammensetzung von Sprites erfolgt, wenn jede Abtastzeile für das Videoausgabegerät, wie beispielsweise eine Kathodenstrahlröhre , vorbereitet wird , ohne dass die Haupt- CPU involviert ist und ohne dass ein Vollbild-Bildpuffer benötigt wird . Sprites können durch Festlegen von Attributen, die während des Hardware-Zusammensetzungsprozesses verwendet werden, positioniert oder geändert werden. Die Anzahl der Sprites, die pro Scanzeile angezeigt werden können, ist oft geringer als die Gesamtzahl der Sprites, die ein System unterstützt. Der TMS9918- Chip von Texas Instruments unterstützt beispielsweise 32 Sprites, aber nur 4 können auf derselben Scan-Zeile erscheinen.
Die CPUs in modernen Computern, Videospielkonsolen und mobilen Geräten sind schnell genug, dass Bitmaps ohne spezielle Hardwareunterstützung in einen Framebuffer gezeichnet werden können. Alternativ können moderne GPUs eine große Anzahl skalierter, gedrehter, geglätteter und teilweise durchscheinender Bilder parallel zur CPU rendern.
Geschichte
Arcade-Systeme
Die Verwendung von Sprites hat ihren Ursprung in Arcade-Videospielen . Nolan Bushnell hat das ursprüngliche Konzept entwickelt, als er das erste Arcade-Videospiel Computer Space (1971) entwickelte. Technische Einschränkungen machten es schwierig, das frühe Mainframe-Spiel Spacewar anzupassen ! (1962), das bei jeder kleinen Bewegung einen kompletten Bildschirm-Refresh durchführte , fand er eine Lösung für das Problem: jedes einzelne Spielelement mit einem dedizierten Transistor zu steuern . Die Raketen waren im Wesentlichen festverdrahtete Bitmaps , die sich unabhängig vom Hintergrund über den Bildschirm bewegten, eine wichtige Innovation, die eine effizientere Produktion von Bildschirmbildern ermöglichte und die Grundlage für Sprite-Grafiken bildete.
Die frühesten Videospiele darstellen Spielercharaktere als menschliche Spieler Sprites arcade waren Sport - Videospiele , aus dem Taito ‚s TV Basketball , veröffentlicht im April 1974 und auf lizenzierte Midway Fertigung für die Freigabe in Nordamerika. Entworfen von Tomohiro Nishikado , wollte er über einfache Rechtecke im Pong- Stil zu Charaktergrafiken übergehen, indem er die Rechteckformen in Objekte umordnete, die wie Basketballspieler und Basketballkörbe aussehen . Ramtek veröffentlichte später im Oktober 1974 ein weiteres Sportvideospiel , Baseball , das ähnlich menschenähnliche Charaktere zeigte.
Die Namco Galaxian Arcade-System , für das 1979 - Arcade - Spiel Galaxian , Displays animiert, mehrfarbige Sprites über einen Scroll - Hintergrund Es wurde die Grundlage für Nintendo ‚s Radar Scope und Donkey Kong Arcade - Hardware und Heimkonsolen wie dem Nintendo Entertainment System . Laut Steve Golson von der General Computer Corporation wurde damals der Begriff "Stempel" anstelle von "Sprite" verwendet.
Heimsysteme
Signetics entwickelte die ersten Chips, die Sprite-Grafiken ( von Signetics als Objekte bezeichnet ) für Heimsysteme erzeugen können. Die Signetics 2636 Videoprozessoren wurden erstmals 1978 im 1292 Advanced Programmable Video System und später im 1979er Elektor TV Games Computer verwendet .
Das 1977 veröffentlichte Atari VCS verfügt über eine Hardware-Sprite-Implementierung, bei der fünf grafische Objekte unabhängig vom Spielfeld bewegt werden können. Der Begriff Sprite wurde zu dieser Zeit nicht verwendet. Die Sprites des VCS werden im Programmierhandbuch als bewegliche Objekte bezeichnet , weiter bezeichnet als zwei Spieler , zwei Raketen und ein Ball . Diese bestehen jeweils aus einer einzelnen Pixelzeile, die auf einer Abtastzeile dargestellt werden . Um eine zweidimensionale Form zu erzeugen, wird die einzeilige Bitmap des Sprites durch Software von einer Abtastzeile zur nächsten geändert.
Die Atari 400- und 800 -Heimcomputer von 1979 haben ähnliche, aber ausgeklügeltere Schaltungen, die in der Lage sind, acht einfarbige Objekte pro Abtastzeile zu bewegen: vier 8-Bit-breite Player und vier 2-Bit-breite Raketen . Jeder hat die volle Höhe des Displays – ein langer, dünner Streifen. DMA aus einer Tabelle im Speicher setzt automatisch die Grafikmusterregister für jede Abtastzeile. Hardware-Register steuern die horizontale Position jedes Spielers und jeder Rakete. Vertikale Bewegung wird durch Verschieben der Bitmap-Daten innerhalb des Streifens eines Spielers oder einer Rakete erreicht. Die Funktion wurde von Atari Player/Missile Graphics genannt .
Der Begriff Sprite wurde erstmals im grafischen Sinne von einem der Definierer des Videoanzeigeprozessors (VDP) 9918(A) von Texas Instruments verwendet . Der Begriff wurde erstmals Ende der 1970er Jahre von Danny Hillis bei Texas Instruments verwendet. Der Begriff wurde von der Tatsache abgeleitet, dass Sprites, anstatt Teil der Bitmap-Daten im Framebuffer zu sein, stattdessen oben herum "schwebten", ohne die Daten im Framebuffer darunter zu beeinflussen, ähnlich wie ein Geist oder " Sprite ". Zu diesem Zeitpunkt waren Sprites so weit fortgeschritten, dass vollständige zweidimensionale Formen mit minimalem Softwareaufwand horizontal und vertikal über den Bildschirm bewegt werden konnten.
Systeme mit Hardware-Sprites
Dies sind grundlegende Hardwarespezifikationen und enthalten keine zusätzlichen Programmiertechniken, wie die Verwendung von Raster-Interrupts , um Sprites in der Mitte des Frames neu zu verwenden.
Computersystem | Sprite-Hardware | Jahr | Sprites auf dem Bildschirm | Sprites online | max. Texel online | Textur Breite | Texturhöhe | Farben | Hardware-Zoom | Drehung | Hintergrund | Kollisionserkennung | Transparenz | Quelle |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Amstrad Plus | 1990 | 16 | 16 | ? | 16 | 16 | fünfzehn | 2, 4× vertikal, 2, 4× horizontal | Nein | 1 Bitmap-Ebene | Nein | Farbschlüssel | ||
Atari 2600 | TIA | 1977 | 5 | 5 | 19 | 1, 8 | 262 | 1 | 2, 4, 8× horizontal | Horizontale Spiegelung | 1 Bitmap-Ebene | ja | Farbschlüssel | |
Atari 8-Bit-Familie | GTIA / ANTIC | 1979 | 8 | 8 | 40 | 2, 8 | 128, 256 | 1 | 2× vertikal, 2, 4× horizontal | Nein | 1 Kachel- oder Bitmap-Ebene | ja | Farbschlüssel | |
Kommodore 64 | VIC-II | 1982 | 8 | 8 | 96, 192 | 12, 24 | 21 | 1, 3 | 2× ganze Zahl | Nein | 1 Kachel- oder Bitmap-Ebene | ja | Farbschlüssel | |
Amiga (OCS) | Denise | 1985 | 8, kann horizontal in 4-Pixel-Schritten wiederverwendet werden | Beliebig, 8 einzigartige | Willkürlich | 16 | Willkürlich | 3, 15 | Vertikal nach Anzeigeliste | Nein | 2 Bitmap-Ebenen | ja | Farbschlüssel | |
Amiga (AGA) | Lisa | 1992 | 8, kann horizontal in 2-Pixel-Schritten wiederverwendet werden | Beliebig, 8 einzigartige | Willkürlich | 16, 32, 64 | Willkürlich | 3, 15 | Vertikal nach Anzeigeliste | Nein | 2 Bitmap-Ebenen | ja | Farbschlüssel | |
ColecoVision | TMS9918A | 1983 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 2× ganze Zahl | Nein | 1 Fliesenschicht | Teilweise | Farbschlüssel | |
TI-99/4A | TMS9918A | 1981 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 2× ganze Zahl | Nein | 1 Fliesenschicht | Teilweise | Farbschlüssel | |
Spielduino | 2011 | 256 | 96 | 1.536 | 16 | 16 | 255 | Nein | ja | 1 Fliesenschicht | ja | Farbschlüssel | ||
Intelligenz | STIC AY-3-8900 | 1979 | 8 | 8 | 64 | 8 | 8,16 | 1 | 2, 4, 8× vertikal, 2× horizontal | Horizontale und vertikale Spiegelung | 1 Fliesenschicht | ja | Farbschlüssel | |
MSX | TMS9918A | 1983 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 2× ganze Zahl | Nein | 1 Fliesenschicht | Teilweise | Farbschlüssel | |
MSX2 | Yamaha V9938 | 1986 | 32 | 8 | 128 | 8, 16 | 8,16 | 1, 3, 7, 15 pro Zeile | 2× ganze Zahl | Nein | 1 Kachel- oder Bitmap-Ebene | Teilweise | Farbschlüssel | |
MSX2+ / MSX Turbo R | Yamaha V9958 | 1988 | 32 | 8 | 128 | 8,16 | 8,16 | 1, 3, 7, 15 pro Zeile | 2× ganze Zahl | Nein | 1 Kachel- oder Bitmap-Ebene | Teilweise | Farbschlüssel | |
Namco Pac-Man (Arcade) |
TTL | 1980 | 6 | 6 | 96 | 16 | 16 | 3 | Nein | Horizontale und vertikale Spiegelung | 1 Fliesenschicht | Nein | Farbschlüssel | |
TurboGrafx-16 | HuC6270A | 1987 | 64 | 16 | 256 | 16, 32 | 16, 32, 64 | fünfzehn | Nein | Horizontale und vertikale Spiegelung | 1 Fliesenschicht | ja | Farbschlüssel | |
Namco Galaxian (Spielhalle) |
TTL | 1979 | 7 | 7 | 112 | 16 | 16 | 3 | Nein | Horizontale und vertikale Spiegelung | 1 Fliesenschicht | Nein | Farbschlüssel | |
Nintendo Donkey Kong , Radarzielfernrohr (Arcade) |
1979 | 128 | 16 | 256 | 16 | 16 | 3 | Ganze Zahl | Nein | 1 Fliesenschicht | ja | Farbschlüssel | ||
Nintendo ds | Integrierte PPU | 2004 | 128 | 128 | 1.210 | 8, 16, 32, 64 | 8, 16, 32, 64 | 65.536 | Ja, affin | Ja, affin | 4 Schichten pro Bildschirm; jede Schicht ist unabhängig | Nein | Farbschlüssel, Überblendung | |
NES/Famicom | Ricoh RP2C0x-PPU | 1983 | 64 | 8 | 64 | 8 | 8, 16 | 3 | Nein | Horizontale und vertikale Spiegelung | 1 Fliesenschicht | Teilweise | Farbschlüssel | |
Game Boy | Integrierte PPU | 1989 | 40 | 10 | 80 | 8 | 8, 16 | 3 | Nein | Horizontale und vertikale Spiegelung | 1 Fliesenschicht | Nein | Farbschlüssel | |
Game Boy Advance | Integrierte PPU | 2001 | 128 | 128 | 1210 | 8, 16, 32, 64 | 8, 16, 32, 64 | 15, 255 | Ja, affin | Ja, affin | 4 Schichten, 2 Schichten und 1 affine Schicht, 2 affine Schichten | Nein | Farbschlüssel, Überblendung | |
Master-System , Spielausrüstung |
YM2602B VDP (TMS9918-abgeleitet) |
1985 | 64 | 8 | 128 | 8, 16 | 8, 16 | fünfzehn | 2× ganzzahlig, 2× vertikal | Spiegelung der Hintergrundkachel | 1 Fliesenschicht | ja | Farbschlüssel | |
Sega Genesis | YM7101 VDP (SMS VDP-abgeleitet) |
1988 | 80 | 20 | 320 | 8, 16, 24, 32 | 8, 16, 24, 32 | fünfzehn | Nein | Horizontale und vertikale Spiegelung | 2 Fliesenschichten | ja | Farbschlüssel | |
Sega OutRun (Arcade) | 1986 | 128 | 128 | 1600 | 8 bis 512 | 8 bis 256 | fünfzehn | Ja, anisotrop | Horizontale und vertikale Spiegelung | 2 Kachelebenen und 1 Bitmap-Ebene | ja | Alpha | ||
X68000 | Cynthia jr. (Original), Cynthia (spätere Modelle) | 1987 | 128 | 32 | 512 | 16 | 16 | fünfzehn | 2× ganze Zahl | Horizontale und vertikale Spiegelung | 1-2 Kachelebenen und 1-4 Bitmap-Ebenen | Teilweise | Farbschlüssel | |
Neo Geo | LSPC2-A2 | 1990 | 384 | 96 | 1536 | 16 | 16 bis 512 | fünfzehn | Sprite schrumpft | Horizontale und vertikale Spiegelung | 1 Fliesenschicht | Teilweise | Farbschlüssel | |
Super NES/ Super Famicom |
S-PPU1, S-PPU2 | 1990 | 128 | 34 | 256 | 8, 16, 32, 64 | 8, 16, 32, 64 | fünfzehn | Nein | Horizontale und vertikale Spiegelung | 3 Kachelebenen oder 1 affin zugeordnete Kachelebene | ja | Farbschlüssel, Mittelwertbildung | |
Computersystem | Sprite-Hardware | Jahr | Sprites auf dem Bildschirm | Sprites online | max. Texel online | Textur Breite | Texturhöhe | Farben | Hardware-Zoom | Drehung | Hintergrund | Kollisionserkennung | Transparenz | Quelle |
Synonyme
Einige Hardwarehersteller verwendeten andere Begriffe, insbesondere bevor Sprites gebräuchlich wurden.
Player/Missile Graphics war ein von Atari, Inc. verwendeter Begriff für Hardware-Sprites in den Atari 8-Bit-Computern (1979) und der Atari 5200- Konsole (1982). Der Begriff spiegelt die Verwendung sowohl für Charaktere ("Spieler") als auch für kleinere zugehörige Objekte ("Raketen") wider, die dieselbe Farbe haben. Das frühere Atari Video Computer System und einige Atari Arcade-Spiele verwendeten auch Spieler , Raketen und Kugeln für Sprites.
Stamp wurde in den frühen 1980er Jahren in einigen Arcade-Hardware verwendet, darunter in Ms. Pac-Man .
Movable Object Block oder MOB wurde in derGrafikchip-Literatur von MOS Technology verwendet. Commodore , der Hauptanwender von MOS-Chips und Eigentümer von MOS für die meiste Zeit des Chipherstellers, verwendete den Begriff Sprite für den Commodore 64.
OBJ s (kurz für Objects ) wird in den Entwicklerhandbüchern für NES , Super NES und Game Boy verwendet . Der zum Speichern von Sprite-Attributen und Koordinaten verwendete RAM-Bereich ist OAM (Object Attribute Memory). Dies gilt auch für den Game Boy Advance und den Nintendo DS .