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 "sprites" 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 TI-99 / 4A (1979), la familia Atari de 8 bits (1979), Commodore 64 (1982), Nintendo Entertainment System (1983), Amiga (1985), Sega Genesis (1988) y arcade. juegos de los años setenta y ochenta. El hardware varía en la cantidad de sprites admitidos, cuántos se pueden mostrar por línea de escaneo (a menudo un número menor), 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 exploración se prepara para el dispositivo de salida de video, como un CRT , sin la participación de 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.
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 componer sin asistencia especial de hardware; Alternativamente, las GPU modernas pueden realizar la composición de una gran cantidad de imágenes escaladas, rotadas, suavizadas y parcialmente translúcidas en paralelo con la CPU.
Historia
El uso de sprites se originó con los videojuegos arcade . El primer videojuego para representar personajes jugadores como sprites jugador humanos fue Taito 's TV baloncesto , [2] [3] [4] lanzado en abril de 1974 y con licencia para Midway Manufacturing para el lanzamiento en América del Norte. [5] Ramtek lanzó más tarde otro videojuego de deportes en octubre de 1974, Baseball , [5] que mostraba de manera similar personajes similares a los humanos. [6]
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 . [7] 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.
La placa del sistema de arcade Namco Galaxian , para el juego de arcade de 1979 Galaxian , presentaba sprites multicolores animados. [8] Fue pionera en 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 . [9] Según Steve Golson de General Computer Corporation , en ese momento se usaba el término "sello" en lugar de "sprite". [10]
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 . [11] El término fue utilizado por primera vez por Danny Hillis en Texas Instruments a fines de la década de 1970. [12] 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.
Sistemas con sprites de hardware
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 | [13] | |
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 | [14] |
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 | [15] |
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 | [dieciséis] |
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 | [17] |
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 | [18] | |
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 | [19] |
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 | [20] |
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 | [21] |
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 | [22] [23] [24] |
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 | [25] | |
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 | [26] |
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 | [27] |
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 | [28] |
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 | [29] |
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 | [30] [31] |
Sega Genesis | 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 | [32] [33] |
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 | [34] [35] [36] [37] [38] [39] [40] | |
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 | [41] [42] [43] |
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 | [44] [45] [46] |
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 |
Usar en renderizado 3D
Las imágenes 2D con canales alfa restringidos para mirar hacia la cámara pueden usarse en gráficos 3D . Son comunes para renderizar vegetación, aproximarse a objetos distantes o para efectos de partículas . A veces se les llama "vallas publicitarias" o "Z-sprites". Si se procesa sobre la marcha para almacenar en caché una vista aproximada de un modelo 3D subyacente , estos sprites se denominan impostores . [47] El hardware de GPU moderno puede imitar sprites con dos triángulos de textura mapeada o primitivas específicas como sprites puntuales .
Sinónimos
Algunos fabricantes de hardware utilizaron otros términos además de sprite .
Player / Missile Graphics fue un término utilizado por Atari, Inc. para los sprites generados por hardware en las computadoras Atari de 8 bits y la consola Atari 5200 . [48] 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 2600 y algunos juegos de arcade de Atari también usaban jugador , misil y pelota como sprites.
Movable Object Block , o MOB , se usó en laliteratura de chips gráficos de MOS Technology (hojas de datos, etc.) Sin embargo, Commodore , el usuario principal de chips MOS y propietario de MOS durante la mayor parte de la vida del fabricante de chips, usó el término sprite para el Commodore 64.
Los manuales para desarrolladores de NES , Super NES y Game Boy se refieren a los sprites como OBJ (abreviatura de "objetos"), y la región de RAM utilizada para almacenar atributos y coordenadas de los sprites se conocía como OAM (Object Attribute Memory). Esto también se aplica a los sistemas portátiles Game Boy Advance y Nintendo DS .
Ver también
- 2.5D
- Capas (edición de imágenes digitales)
Referencias
- ^ a b La Haya, James. "¿Por qué existen consolas de juegos dedicadas?" . Programación en el siglo XXI .
- ^ Colby, Richard; Johnson, Matthew SS; Colby, Rebekah Shultz (27 de enero de 2021). La ética de jugar, investigar y enseñar juegos en el aula de escritura . Springer Nature . pag. 130. ISBN 978-3-030-63311-0.
- ↑ Video Game Firsts , The Golden Age Arcade Historian (22 de noviembre de 2013)
- ^ Baloncesto Flyer (1974), Museo Arcade Flyer
- ^ a b Akagi, Masumi (13 de octubre de 2006).ア ー ケ ー ド TV ゲ ー ム リ ス ト 国内 • 海外 編 (1971-2005) [ Arcade TV Game List: Domestic • Overseas Edition (1971-2005) ] (en japonés). Japón: Agencia de noticias de atracciones. págs. 40–1, 51, 129. ISBN 978-4990251215.
- ^ Thorpe, Nick (marzo de 2014). "Los 70: La génesis de una industria" . Jugador retro . No. 127. págs. 24–7.
- ^ Wright, Steve (3 de diciembre de 1979). "Guía del programador de Stella" (PDF) .
- ^ Dillon, Roberto (19 de abril de 2016). La edad de oro de los videojuegos: el nacimiento de una industria multimillonaria . Prensa CRC. ISBN 9781439873243 - a través de Google Books.
- ^ Haciendo de la Famicom una realidad , Nikkei Electronics (12 de septiembre de 1994)
- ^ Steve Golson (2016). Postmortem del juego clásico: 'Ms. Pac-Man '(Conferencia). Conferencia de desarrolladores de juegos . El evento ocurre a las 20:30 . Consultado el 26 de enero de 2017 .
[…] 6 personajes en movimiento, lo que hoy llamarías "sprites", entonces los llamábamos "sellos", […].
- ^ "Conferencia de Karl Guttag sobre Delphi TI Net - comp.sys.ti | Grupos de Google" . Consultado el 29 de noviembre de 2009 .
- ^ Johnstone, Bob (2003). No importa las computadoras portátiles: niños, computadoras y la transformación del aprendizaje . pag. 108. ISBN 978-0595288427.
- ^ "Más - CPCWiki" . Cpcwiki.eu . Consultado el 29 de noviembre de 2009 .
- ^ "Adaptador de interfaz de televisión" . AtariArchives.com . Consultado el 6 de febrero de 2011 .
- ^ "Preguntas frecuentes de Atari 5200 - Descripción general del hardware" . AtariHQ.com . Consultado el 6 de febrero de 2011 .
- ^ "El controlador de video MOS 6567/6569 (VIC-II) y su aplicación en el Commodore 64" . Archivado desde el original el 30 de agosto de 2006 . Consultado el 8 de enero de 2006 .CS1 maint: bot: estado de URL original desconocido ( enlace )
- ^ "Amiga Hardware Reference Manual 4: sprite hardware" . 1989.
- ^ "Especificaciones de Gameduino" . excamera.com.
- ^ "STIC - Intellivision Wiki" . wiki.intellivision.us . Consultado el 15 de marzo de 2018 .
- ^ TEXAS INSTRUMENTS 9900: Procesadores de pantalla de video TMS9918A / TMS9928AITMS9929A (PDF) . Consultado el 5 de julio de 2011 .
- ^ Montfort, Nick; Bogost, Ian (9 de enero de 2009). Racing the Beam: el sistema informático de vídeo Atari . MIT Press. ISBN 9780262261524 - a través de Google Books.
- ^ "Hardware de video derivado de Galaxian" . GitHub . MAME . Consultado el 23 de octubre de 2018 .
- ^ "Hardware derivado de galaxias" . GitHub . MAME . Consultado el 23 de octubre de 2018 .
- ^ "Familia de hardware Galaxian" . GitHub . MAME . Consultado el 23 de octubre de 2018 .
- ^ Nathan Altice (2015), Soy un error: la plataforma del sistema de entretenimiento / computadora de la familia Nintendo , páginas 53 y 69 , MIT Press
- ^ "Especificaciones" . Nocash.emubase.de. Archivado desde el original el 21 de junio de 2009 . Consultado el 29 de noviembre de 2009 .
- ^ "Microsoft Word - NESDoc.doc" (PDF) . Consultado el 29 de noviembre de 2009 .
- ^ "GameBoy - Spielkonsolen Online Lexikon" . At-mix.de. 2004-06-22 . Consultado el 29 de noviembre de 2009 .
- ^ "Especificaciones" . Nocash.emubase.de. Archivado desde el original el 21 de junio de 2009 . Consultado el 29 de noviembre de 2009 .
- ^ Charles MacDonald. "Documentación de Sega Master System VDP" . Archivado desde el original el 18 de marzo de 2014 . Consultado el 5 de julio de 2011 .
- ^ "Información técnica del Sega Master System" (TXT) . Smspower.org . Consultado el 28 de noviembre de 2016 .
- ^ "Preguntas frecuentes sobre programación de Sega 18 de octubre de 1995, sexta edición - final" . Archivado desde el original el 22 de enero de 2005 . Consultado el 10 de diciembre de 2015 .
- ^ Personal, Polygon (3 de febrero de 2015). "Cómo Sega construyó el Génesis" . Polígono . Consultado el 28 de noviembre de 2016 .
- ^ "Sega Out Run Hardware (Sega)" . Sistema 16. 2016-03-31 . Consultado el 28 de noviembre de 2016 .
- ^ "mame / segaorun.c en master · mamedev / mame · GitHub" . github.com . 21 de noviembre de 2014. Archivado desde el original el 21 de noviembre de 2014 . Consultado el 15 de marzo de 2018 .
- ^ "Fuera de ejecución" . 2001-02-27. Archivado desde el original el 27 de febrero de 2001 . Consultado el 28 de noviembre de 2016 .
- ^ "Out Run Hardware (Sega)" . Sistema 16 . Consultado el 29 de noviembre de 2009 .
- ^ "Versión 0.3 - 7 de febrero de 1998" . Coinop.org . Consultado el 28 de noviembre de 2016 .
- ^ "Copia archivada" . Archivado desde el original el 25 de enero de 2016 . Consultado el 9 de febrero de 2016 .Mantenimiento de CS1: copia archivada como título ( enlace )
- ^ Notas de hardware de "Sega" X-Board " . Archivado desde el original (TXT) el 18 de marzo de 2014 . Consultado el 28 de noviembre de 2016 .
- ^ "X68000-Computer Museum" . Museum.ipsj.or.jp . Consultado el 28 de noviembre de 2016 .
- ^ "mame / x68k.c en master · mamedev / mame · GitHub" . github.com . 21 de noviembre de 2014. Archivado desde el original el 21 de noviembre de 2014 . Consultado el 15 de marzo de 2018 .
- ^ Yoshida, Koichi (12 de septiembre de 2001). "超 連射 68K 開 発 後記" . Página web de Yosshin (en japonés). Archivado desde el original el 12 de mayo de 2019 . Consultado el 28 de noviembre de 2016 .( Traducción de Shmuplations. Archivado el 2 de julio de 2019 en la Wayback Machine ).
- ^ "Notas de hardware de Neo-Geo MVS" (TXT) . Furrtek.free.fr . Consultado el 28 de noviembre de 2016 .
- ^ "Manual de programación de Neo-Geo" (PDF) . Furrtek.free.fr . Consultado el 28 de noviembre de 2016 .
- ^ "Gran lista de conmutadores DIP de depuración" . Neo-Geo. 2014-07-09 . Consultado el 28 de noviembre de 2016 .
- ^ "GPU Gems NVIDIA Developer" .
- ^ "De Re Atari" . 1981.