Parte de una serie sobre: |
Gráficos de videojuegos |
---|
En los gráficos por computadora , un sprite es un mapa de bits bidimensional que se integra en una escena más grande, con mayor frecuencia en un videojuego 2D . Originalmente, el término sprite se refería a objetos de tamaño fijo compuestos juntos, por hardware, con un fondo. [1] Desde entonces, el uso del término se ha generalizado.
Los sistemas con sprites de hardware incluyen videojuegos arcade de las décadas de 1970 y 1980; consolas de juegos como Atari VCS (1977), ColecoVision (1982), Nintendo Entertainment System (1983) y Sega Genesis (1988); y computadoras domésticas como Texas Instruments TI-99 / 4A (1979), la familia Atari de 8 bits (1979), Commodore 64 (1982), MSX (1983), Amiga (1985) y X68000(1987). El hardware varía en la cantidad de sprites admitidos, el tamaño y los colores de cada sprite y los efectos especiales, como escalar o informar superposición precisa de píxeles.
La composición de hardware de los sprites ocurre cuando cada línea de escaneo se prepara para el dispositivo de salida de video, como un CRT , sin involucrar a la CPU principal y sin la necesidad de un búfer de cuadros de pantalla completa . [1] Los sprites se pueden posicionar o modificar mediante la configuración de atributos utilizados durante el proceso de composición del hardware. El número de sprites que se pueden mostrar por línea de exploración suele ser menor que el número total de sprites que admite un sistema. Por ejemplo, el chip Texas Instruments TMS9918 admite 32 sprites, pero solo 4 pueden aparecer en la misma línea de escaneo.
Las CPU de las computadoras modernas, las consolas de videojuegos y los dispositivos móviles son lo suficientemente rápidas como para que los mapas de bits se puedan dibujar en un búfer de cuadros sin asistencia especial de hardware. Alternativamente, las GPU modernas pueden generar una gran cantidad de imágenes escaladas, rotadas, suavizadas y parcialmente translúcidas en paralelo con la CPU.
El uso de sprites se originó con los videojuegos arcade . A Nolan Bushnell se le ocurrió el concepto original cuando desarrolló el primer videojuego arcade, Computer Space (1971). ¡Las limitaciones técnicas hicieron que fuera difícil adaptar el primer juego de mainframe Spacewar! (1962), que realizaba una actualización de pantalla completa para cada pequeño movimiento, por lo que se le ocurrió una solución al problema: controlar cada elemento individual del juego con un transistor dedicado . Los cohetes eran esencialmente mapas de bits cableadosque se movía por la pantalla independientemente del fondo, una innovación importante que permitió que las imágenes de la pantalla se produjeran de manera más eficiente y proporcionaran la base para los gráficos de sprites. [2]
Los primeros juegos que representan personajes del jugador como sprites jugador humanos eran de arcade videojuegos deportivos , que se remonta a Taito 's TV baloncesto , [3] [4] [5] publicado en abril de 1974 y con licencia para Midway Manufacturing para el lanzamiento en América del Norte . [6] Diseñado por Tomohiro Nishikado , quería ir más allá de simples Pong rectángulos al estilo de gráficos de los personajes, reordenando las formas rectangulares en objetos que se parecen a baloncesto jugadores y canastas de baloncesto . [7] [8] RamtekPosteriormente lanzó otro videojuego de deportes en octubre de 1974, Baseball , [6] que mostraba de manera similar personajes parecidos a los humanos. [9]
La placa del sistema de arcade Namco Galaxian , para el juego de arcade de 1979 Galaxian , presentaba sprites multicolores animados. [10] Se utilizó una costumbre un sistema de sprites sprites que precargados animados más de un desplazamiento de fondo, que se convirtió en la base para Nintendo 's pantalla del radar y Donkey Kong de hardware arcade y consolas domésticas tales como la Nintendo Entertainment System . [11] Según Steve Golson de General Computer Corporation , en ese momento se usó el término "sello" en lugar de "sprite". [12]
Signetics ideó los primeros chips capaces de generar gráficos de sprites (denominados objetos por Signetics) para sistemas domésticos. Los procesadores de video Signetics 2636 se utilizaron por primera vez en el sistema de video programable avanzado 1292 de 1978 y más tarde en la computadora de juegos Elektor TV de 1979 .
El Atari VCS , lanzado en 1977, presenta una implementación de sprite de hardware donde cinco objetos gráficos se pueden mover independientemente del campo de juego. El término sprite no estaba en uso en ese momento. Los sprites del VCS se denominan objetos móviles en el manual de programación, y se identifican además como dos jugadores , dos misiles y una pelota . [13] Cada uno de ellos consta de una única fila de píxeles que se muestran en una línea de exploración . Para producir una forma bidimensional, el software modifica el mapa de bits de una sola fila del objeto de una línea de exploración a la siguiente.
Las computadoras domésticas Atari 400 y 800 de 1979 cuentan con circuitos similares, pero más elaborados, capaces de mover ocho objetos de un solo color por línea de escaneo: cuatro reproductores de 8 bits de ancho y cuatro misiles de 2 bits de ancho . Cada uno tiene la altura completa de la pantalla: una tira larga y delgada. El DMA de una tabla en la memoria establece automáticamente los registros de patrones gráficos para cada línea de exploración. Los registros de hardware controlan la posición horizontal de cada jugador y misil. El movimiento vertical se logra moviendo los datos del mapa de bits dentro de la franja de un jugador o misil. La característica fue llamada gráficos de jugador / misil por Atari.
El término sprite fue utilizado por primera vez en sentido gráfico por uno de los definidores del procesador de pantalla de video (VDP) 9918 (A) de Texas Instruments . [14] El término fue utilizado por primera vez por Danny Hillis en Texas Instruments a finales de la década de 1970. [15] El término se derivó del hecho de que los sprites, en lugar de ser parte de los datos de mapa de bits en el framebuffer, "flotaban" en la parte superior sin afectar los datos en el framebuffer de abajo, como un fantasma o " sprite ". Para entonces, los sprites habían avanzado hasta el punto en que se podían mover formas bidimensionales completas por la pantalla horizontal y verticalmente con una mínima sobrecarga de software.
Estas son especificaciones de hardware básicas y no incluyen técnicas de programación adicionales, como el uso de interrupciones de ráster para reutilizar los sprites en la mitad del cuadro.
Sistema informático | Hardware de Sprite | Año | Sprites en pantalla | Sprites en línea | Max. texels en línea | Ancho de textura | Altura de la textura | Colores | Zoom de hardware | Rotación | Fondo | Detección de colisiones | Transparencia | Fuente |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Amstrad Plus | 1990 | dieciséis | dieciséis | ? | dieciséis | dieciséis | 15 | 1, 2, 4 × vertical, 1, 2, 4 × horizontal | No | 1 capa de mapa de bits | No | Clave de color | [dieciséis] | |
Atari 2600 | TIA | 1977 | 5 | 5 | 19 | 1, 8 | 262 | 1 | 1, 2, 4, 8 × horizontal | Reflejo horizontal | 1 capa de mapa de bits | sí | Clave de color | [17] |
Familia Atari de 8 bits | GTIA / ANTIC | 1979 | 8 | 8 | 40 | 2, 8 | 128, 256 | 1 | 1, 2 × vertical, 1, 2, 4 × horizontal | No | 1 capa de mosaico o mapa de bits | sí | Clave de color | [18] |
Comodoro 64 | VIC-II | mil novecientos ochenta y dos | 8 | 8 | 96, 192 | 12, 24 | 21 | 1, 3 | 1, 2 × entero | No | 1 capa de mosaico o mapa de bits | sí | Clave de color | [19] |
Amiga (OCS) | Denise | 1985 | Arbitrario | 8 | 128 | dieciséis | Arbitrario | 3, 15 | Vertical por lista de visualización | No | 2 capas de mapa de bits | sí | Clave de color | [20] |
Amiga (AGA) | Lisa | 1992 | Arbitrario | 8 | 512 | 16, 32, 64 | Arbitrario | 3, 15 | Vertical por lista de visualización | No | 2 capas de mapa de bits | sí | Clave de color | |
Colecovision | Texas Instruments TMS9918A | 1983 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 1, 2 × entero | No | 1 capa de azulejos | Parcial | Clave de color | |
Texas Instruments TI-99 / 4A | Texas Instruments TMS9918A | 1981 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 1, 2 × entero | No | 1 capa de azulejos | Parcial | Clave de color | |
Gameduino | 2011 | 256 | 96 | 1,536 | dieciséis | dieciséis | 255 | No | sí | 1 capa de azulejos | sí | Clave de color | [21] | |
Intellivision | STIC AY-3-8900 | 1979 | 8 | 8 | 64 | 8 | 8,16 | 1 | 1, 2, 4, 8 × vertical, 1, 2 × horizontal | Reflejo horizontal y vertical | 1 capa de azulejos | sí | Clave de color | [22] |
MSX | Texas Instruments TMS9918A | 1983 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 1, 2 × entero | No | 1 capa de azulejos | Parcial | Clave de color | [23] |
MSX2 | Yamaha V9938 | 1986 | 32 | 8 | 128 | 8, 16 | 8,16 | 1, 3, 7, 15 por línea | 1, 2 × entero | No | 1 capa de mosaico o mapa de bits | Parcial | Clave de color | |
MSX2 + / MSX turbo R | Yamaha V9958 | 1988 | 32 | 8 | 128 | 8,16 | 8,16 | 1, 3, 7, 15 por línea | 1, 2 × entero | No | 1 capa de mosaico o mapa de bits | Parcial | Clave de color | |
Namco Pac-Man (arcade) | TTL | 1980 | 6 | 6 | 96 | dieciséis | dieciséis | 3 | No | Reflejo horizontal y vertical | 1 capa de azulejos | No | Clave de color | [24] |
TurboGrafx-16 | HuC6270A | 1987 | 64 | dieciséis | 256 | 16, 32 | 16, 32, 64 | 15 | No | No | 1 capa de azulejos | sí | Clave de color | |
Namco Galaxian ( sala de juegos ) | TTL | 1979 | 7 | 7 | 112 | dieciséis | dieciséis | 3 | No | Reflejo horizontal y vertical | 1 capa de azulejos | No | Clave de color | [25] [26] [27] |
Nintendo Donkey Kong , mira telescópica (arcade) | 1979 | 128 | dieciséis | 256 | dieciséis | dieciséis | 3 | Entero | No | 1 capa de azulejos | sí | Clave de color | [28] | |
Nintendo DS | PPU integrado | 2004 | 128 | 128 | 1.210 | 8, 16, 32, 64 | 8, 16, 32, 64 | 65,536 | Sí, afín | Sí, afín | 4 capas por pantalla; cada capa es independiente | No | Clave de color, mezcla | [29] |
NES / Famicom | Ricoh RP2C0x PPU | 1983 | 64 | 8 | 64 | 8 | 8, 16 | 3 | No | Reflejo horizontal y vertical | 1 capa de azulejos | Parcial | Clave de color | [30] |
Chico del juego | PPU integrado | 1989 | 40 | 10 | 80 | 8 | 8, 16 | 3 | No | Reflejo horizontal y vertical | 1 capa de azulejos | No | Clave de color | [31] |
Game Boy Advance | PPU integrado | 2001 | 128 | 128 | 1210 | 8, 16, 32, 64 | 8, 16, 32, 64 | 15, 255 | Sí, afín | Sí, afín | 4 capas, 2 capas y 1 capa afín, 2 capas afines | No | Clave de color, mezcla | [32] |
Sistema maestro , equipo de juego | YM2602B VDP (derivado de TMS9918) | 1985 | 64 | 8 | 128 | 8, 16 | 8, 16 | 15 | 1, 2 × entero, 1, 2 × vertical | Duplicación de mosaico de fondo | 1 capa de azulejos | sí | Clave de color | [33] [34] |
Sega Génesis | YM7101 VDP (derivado de SMS VDP) | 1988 | 80 | 20 | 320 | 8, 16, 24, 32 | 8, 16, 24, 32 | 15 | No | Reflejo horizontal y vertical | 2 capas de azulejos | sí | Clave de color | [35] [36] |
Sega OutRun (arcade) | 1986 | 128 | 128 | 1600 | 8 hasta 512 | 8 hasta 256 | 15 | Sí, anisotrópico | Reflejo horizontal y vertical | 2 capas de mosaicos y 1 capa de mapa de bits | sí | Alfa | [37] [38] [39] [40] [41] [42] [43] | |
Sharp X68000 | Cynthia jr. (original), Cynthia (modelos posteriores) | 1987 | 128 | 32 | 512 | dieciséis | dieciséis | 15 | 1, 2 × entero | Reflejo horizontal y vertical | 1-2 capas de mosaicos y 1-4 capas de mapa de bits | Parcial | Clave de color | [44] [45] [46] |
Neo Geo | LSPC2-A2 | 1990 | 384 | 96 | 1536 | dieciséis | 16 hasta 512 | 15 | Sprite encogiéndose | Reflejo horizontal y vertical | 1 capa de azulejos | Parcial | Clave de color | [47] [48] [49] |
Super NES / Super Famicom | S-PPU1, S-PPU2 | 1990 | 128 | 34 | 272 | 8, 16, 32, 64 | 8, 16, 32, 64 | 15 | Solo antecedentes | Reflejo horizontal y vertical | 3 capas de teselas o 1 capa de teselas mapeadas afines | sí | Clave de color, promediado | |
Sistema informático | Hardware de Sprite | Año | Sprites en pantalla | Sprites en línea | Max. texels en línea | Ancho de textura | Altura de la textura | Colores | Zoom de hardware | Rotación | Fondo | Detección de colisiones | Transparencia | Fuente |
Esta sección necesita citas adicionales para su verificación . ( abril de 2016 ) |
Algunos fabricantes de hardware usaron términos diferentes, especialmente antes de que los sprites se volvieran comunes.
Player / Missile Graphics fue un término utilizado por Atari, Inc. para los sprites de hardware en las computadoras Atari de 8 bits (1979) y la consola Atari 5200 (1982). [50] El término refleja el uso tanto de personajes ("jugadores") como de objetos asociados más pequeños ("misiles") que comparten el mismo color. El anterior Atari Video Computer System y algunos juegos de arcade de Atari también usaban jugador , misil y pelota como sprites.
Stamp se usó en algunos equipos de arcade a principios de la década de 1980, incluida la Sra. Pac-Man . [12]
Movable Object Block , o MOB , se utilizó en laliteratura de chips gráficos de MOS Technology . Commodore , el principal usuario de chips MOS y propietario de MOS durante la mayor parte de la vida del fabricante de chips, utilizó el término sprite para el Commodore 64.
OBJ s (abreviatura de objetos ) se usa en los manuales para desarrolladores de NES , Super NES y Game Boy . La región de RAM utilizada para almacenar atributos y coordenadas de sprites es OAM (Object Attribute Memory). Esto también se aplica a Game Boy Advance y Nintendo DS .
[…] 6 personajes en movimiento, lo que hoy llamarías "sprites", entonces los llamábamos "sellos", […].