Sprite (gráficos por computadora)

Mapa de bits 2D mostrado sobre una escena más grande
Sprites de tanques y cohetes de Broforce

En gráficos por computadora , un sprite es un mapa de bits bidimensional que se integra en una escena más grande, generalmente en un videojuego 2D . Originalmente, el término sprite se refería a objetos de tamaño fijo compuestos entre sí, por hardware, con un fondo. [1] Desde entonces, el uso del término se ha vuelto más general.

Los sistemas con sprites de hardware incluyen videojuegos arcade de los años 1970 y 1980; consolas de juegos como Atari VCS (1977), ColecoVision (1982), Famicom (1983), Genesis/Mega Drive (1988); y computadoras hogareñas como TI-99/4 (1979), computadoras 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 el escalado o el reporte de superposición con precisión de píxeles.

La composición de hardware de los sprites se produce a medida que se prepara cada línea de escaneo para el dispositivo de salida de vídeo, como un tubo de rayos catódicos , sin la participación de la CPU principal y sin la necesidad de un búfer de fotogramas de pantalla completa . [1] Los sprites se pueden posicionar o alterar configurando los atributos utilizados durante el proceso de composición de hardware. El número de sprites que se pueden mostrar por línea de escaneo suele ser inferior al número total de sprites que admite un sistema. Por ejemplo, el chip Texas Instruments TMS9918 admite 32 sprites, pero solo pueden aparecer cuatro en la misma línea de escaneo.

Las CPU de los ordenadores, las consolas de videojuegos y los dispositivos móviles modernos son lo suficientemente rápidas como para que los mapas de bits se puedan dibujar en un búfer de cuadros sin la ayuda de un hardware especial. Además, las GPU pueden reproducir una gran cantidad de imágenes escaladas, rotadas, suavizadas , parcialmente translúcidas y de muy alta resolución en paralelo con la CPU.

Etimología

Según Karl Guttag, uno de los dos ingenieros del procesador de pantalla de video Texas Instruments TMS9918 de 1979 , este uso de la palabra sprite proviene de David Ackley, un gerente de TI. [2] También fue utilizado por Danny Hillis en Texas Instruments a fines de la década de 1970. [3] El término se derivó del hecho de que los sprites "flotan" sobre la imagen de fondo sin sobrescribirla, como un fantasma o un sprite mitológico .

Algunos fabricantes de hardware usaban 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). [4] El término refleja el uso tanto para personajes ("jugadores") como para objetos asociados más pequeños ("misiles") que comparten el mismo color. El anterior Atari Video Computer System y algunos juegos arcade de Atari usaban player , missile y ball .

El sello se utilizó en algunos equipos arcade a principios de la década de 1980, incluido Ms. Pac-Man . [5]

El término "bloque de objeto móvil" (Movable Object Block , o MOB ) se utilizó enla literatura sobre 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ó en su lugar el término "sprite" para referirse al Commodore 64.

Los OBJ (abreviatura de objetos ) se utilizan en los manuales de desarrollo de NES , Super NES y Game Boy . La región de la RAM de video que se utiliza para almacenar los atributos y las coordenadas de los sprites se denomina OAM (memoria de atributos de objetos). Esto también se aplica a Game Boy Advance y Nintendo DS .

Historia

Videojuegos arcade

El uso de sprites se originó con los videojuegos arcade . Nolan Bushnell ideó 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 cableados que se movían por la pantalla independientemente del fondo, una innovación importante para producir imágenes de pantalla de manera más eficiente y proporcionar la base para los gráficos de sprites. [6]

Los primeros videojuegos que representaban personajes de jugadores como sprites de jugadores humanos fueron los videojuegos de deportes arcade , comenzando con Taito 's TV Basketball , [7] [8] [9] lanzado en abril de 1974 y licenciado a Midway Manufacturing para su lanzamiento en América del Norte. [10] Diseñado por Tomohiro Nishikado , quería ir más allá de los simples rectángulos al estilo Pong a los gráficos de personajes, reorganizando las formas de los rectángulos en objetos que parecen jugadores de baloncesto y aros de baloncesto . [11] [12] Ramtek lanzó otro videojuego de deportes en octubre de 1974, Baseball , [10] que mostraba de manera similar personajes humanos. [13]

La placa base del sistema arcade Namco Galaxian , para el juego arcade Galaxian de 1979 , muestra sprites animados y multicolores sobre un fondo desplazable. [14] Se convirtió en la base para el hardware arcade Radar Scope y Donkey Kong de Nintendo y consolas domésticas como Nintendo Entertainment System . [15] Según Steve Golson de General Computer Corporation , en ese momento se usaba el término "stamp" en lugar de "sprite". [5]

Sistemas domésticos

Signetics diseñó los primeros chips capaces de generar gráficos de sprites (a los que Signetics denomina objetos ) para sistemas domésticos. Los procesadores de vídeo Signetics 2636 se utilizaron por primera vez en el sistema de vídeo programable avanzado 1292 de 1978 y, más tarde, en el ordenador de juegos para televisión Elektor de 1979 .

El Atari VCS , lanzado en 1977, tiene una implementación de sprites de hardware donde se pueden mover cinco objetos gráficos independientemente del campo de juego. El término sprite no se usaba en ese momento. Los sprites del VCS se denominan objetos móviles en el manual de programación, identificados además como dos jugadores , dos misiles y una pelota . [16] Cada uno de ellos consiste en una sola fila de píxeles que se muestran en una línea de escaneo . Para producir una forma bidimensional, el mapa de bits de una sola fila del sprite se altera mediante software de una línea de escaneo a la siguiente.

Los ordenadores domésticos Atari 400 y 800 de 1979 tienen circuitos similares, pero más elaborados, capaces de mover ocho objetos de un solo color por línea de barrido: 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 barrido. Los registros de hardware controlan la posición horizontal de cada reproductor y misil. El movimiento vertical se logra moviendo los datos de mapa de bits dentro de la tira de un reproductor o misil. Atari llamó a esta función gráficos de reproductor/misil .

Texas Instruments desarrolló el chip TMS9918 con soporte para sprites para su computadora hogareña TI-99/4 de 1979. Se utilizó una versión actualizada en la TI-99/4A de 1981 .

En juegos 2.5D y 3D

Interacciones de los jugadores con sprites en un juego 2.5D

Los sprites siguieron siendo populares con el auge de los juegos 2.5D (aquellos que recrean un espacio de juego 3D a partir de un mapa 2D) a fines de la década de 1980 y principios de la de 1990. Una técnica llamada billboarding permite que los juegos 2.5D mantengan los sprites en pantalla rotados hacia la vista del jugador en todo momento. Algunos juegos 2.5D, como Doom de 1993 , permiten que la misma entidad sea representada por diferentes sprites según su rotación en relación con el espectador, lo que fomenta la ilusión de 3D.

Los juegos completamente en 3D suelen presentar los objetos del mundo como modelos 3D , pero algunos motores de juegos 3D , como GoldSrc [17] y Unreal [18] , admiten sprites , que pueden estar resaltados o bloqueados en orientaciones fijas. Los sprites siguen siendo útiles para pequeños detalles, efectos de partículas y otras aplicaciones en las que la falta de una tercera dimensión no es un inconveniente importante.

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 trama para reutilizar sprites a mitad de cuadro.

SistemaHardware de spritesIntroducidoSprites en la pantallaSprites por línea de escaneoMáximo de texels en líneaAncho de texturaAltura de la texturaBanderaZoomRotaciónDetección de colisionesTransparenciaFuente
Amstrad PlusASIC19901616?1616152, 4× verticales, 2, 4× horizontalesNoNoClave de color[19]
Atari 2600Agradecimiento especial197755191, 826212, 4, 8× horizontalesReflejo horizontalClave de color[20]
Computadoras Atari de 8 bitsGTIA / ANTIC197988402, 8128, 25612× verticales, 2, 4× horizontalesNoClave de color[21]
Comodoro 64VIC-II19828896, 19212, 24211, 32× enteroNoClave de color[22]
Amiga (OCS)Denise19858, se puede reutilizar horizontalmente en incrementos de 4 píxelesArbitrario, 8 únicosArbitrario16Arbitrario3, 15Vertical por lista de visualizaciónNoClave de color[23]
Amiga (AGA)Lisa19928, se puede reutilizar horizontalmente en incrementos de 2 píxelesArbitrario, 8 únicosArbitrario16, 32, 64Arbitrario3, 15Vertical por lista de visualizaciónNoClave de color
ColecoVisiónTMS9918A1983324648, 168, 1612× enteroNoParcialClave de color
TI-99/4 y 4ATMS99181979324648, 168, 1612× enteroNoParcialClave de color
Juego duino2011256961.5361616255NoClave de color[24]
IntellivisiónSTIC AY-3-89001979886488,1612, 4, 8× verticales, 2× horizontalesDuplicación horizontal y verticalClave de color[25]
MSXTMS9918A1983324648, 168, 1612× enteroNoParcialClave de color[26]
MSX2Yamaha V993819863281288, 168,161, 3, 7, 15 por línea2× enteroNoParcialClave de color
MSX2+ / MSX turbo RYamaha V995819883281288,168,161, 3, 7, 15 por línea2× enteroNoParcialClave de color
Pac-Man de Namco
(juego arcade)
Tiempo de vida1980669616163NoDuplicación horizontal y verticalNoClave de color[27]
TurboGrafx-16HuC6270A1987641625616, 3216, 32, 6415NoDuplicación horizontal y verticalClave de color[28]
Namco Galaxian
(juego arcade)
Tiempo de vida19797711216163NoDuplicación horizontal y verticalNoClave de color[29] [30] [31]
Nintendo Donkey Kong , Radar Scope
(juego arcade)
19791281625616163EnteroNoClave de color[32]
Nintendo DSPPU integrado20041281281.2108, 16, 32, 648, 16, 32, 6465.536AfínAfínNoClave de color, mezcla[33]
NES/FamicomUnidad de procesamiento de documentos Ricoh RP2C0x19836486488, 163NoDuplicación horizontal y verticalParcialClave de color[34]
Chico de juegoPPU integrado198940108088, 163NoDuplicación horizontal y verticalNoClave de color[35]
Juego Boy AdvancePPU integrado200112812812108, 16, 32, 648, 16, 32, 6415, 255AfínAfínNoClave de color, mezcla[36]
Sistema maestro ,
Game Gear
YM2602B VDP
(derivado de TMS9918)
19856481288, 168, 16152× entero, 2× verticalReflejo de mosaico de fondoClave de color[37] [38]
Génesis / Mega DriveVDP YM7101
(derivado de VDP de SMS)
198880203208, 16, 24, 328, 16, 24, 3215NoDuplicación horizontal y verticalClave de color[39] [40]
Sega OutRun (juego arcade)198612812816008 a 5128 a 25615AnisótropoDuplicación horizontal y verticalAlfa[41] [42] [43] [44] [45] [46] [47]
X68000Cynthia jr. (original), Cynthia (modelos posteriores)1987128325121616152× enteroDuplicación horizontal y verticalParcialClave de color[48] ​​[49] [50]
Neo GeoLSPC2-A219903849615361616 a 51215Sprite encogiéndoseDuplicación horizontal y verticalParcialClave de color[51] [52] [53]
Súper NES / Súper FamicomS-PPU1, S-PPU21990128342568, 16, 32, 648, 16, 32, 6415NoDuplicación horizontal y verticalNoClave de color, promedio[54]
SistemaHardware de spritesIntroducidoSprites en la pantallaSprites en líneaMáximo de texels en líneaAncho de texturaAltura de la texturaBanderaZoom de hardwareRotaciónDetección de colisionesTransparenciaFuente

Véase también

Referencias

  1. ^ ab Hague, James. "¿Por qué existen las consolas de juegos dedicadas?". Programación en el siglo XXI . Archivado desde el original el 23 de abril de 2018. Consultado el 2 de septiembre de 2019 .
  2. ^ Guttag, KArl (6 de diciembre de 2011). "Primero, sea útil (computadoras domésticas y proyectores Pico)". KGOnTech .
  3. ^ Johnstone, Bob (2003). No importan las computadoras portátiles: los niños, las computadoras y la transformación del aprendizaje. iUniverse. pág. 108. ISBN 978-0595288427.
  4. ^ "De Re Atari". 1981. Archivado desde el original el 31 de julio de 2017. Consultado el 10 de agosto de 2017 .
  5. ^ de Steve Golson (2016). Postmortem de juegos clásicos: 'Ms. Pac-Man' (Conferencia). Game Developers Conference . El evento ocurre a las 20:30 . Consultado el 26 de enero de 2017. […] 6 personajes en movimiento, lo que hoy llamaríamos "sprites", en aquel entonces los llamábamos "sellos", […].
  6. ^ Swalwell, Melanie; Wilson, Jason (12 de mayo de 2015). Los placeres de los juegos de ordenador: ensayos sobre historia cultural, teoría y estética. McFarland & Company . Págs. 109-10. ISBN. 978-0-7864-5120-3Archivado del original el 16 de mayo de 2021 . Consultado el 16 de mayo de 2021 .
  7. ^ 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 . p. 130. ISBN 978-3-030-63311-0Archivado del original el 3 de mayo de 2021 . Consultado el 3 de mayo de 2021 .
  8. ^ Video Game Firsts Archivado el 5 de noviembre de 2017 en Wayback Machine , The Golden Age Arcade Historian (22 de noviembre de 2013)
  9. ^ Basketball Flyer Archivado el 8 de julio de 2014 en Wayback Machine (1974), Arcade Flyer Museum
  10. ^ ab Akagi, Masumi (13 de octubre de 2006). アーケードTVゲームリスト国内•海外編(1971-2005) [Lista de juegos de Arcade TV: Edición nacional • Extranjera (1971-2005) ] (en japonés). Japón: Agencia de noticias de atracciones. págs. 40-1, 51, 129. ISBN 978-4990251215.
  11. ^ Smith, Alexander (19 de noviembre de 2019). They Create Worlds: The Story of the People and Companies That Shaped the Video Game Industry, vol. I: 1971-1982. CRC Press . págs. 191–95. ISBN 978-0-429-75261-2Archivado del original el 2 de mayo de 2021 . Consultado el 16 de mayo de 2021 .
  12. ^ "スペースインベーダー・今明かす開発秘話――開発者・西角友宏氏、タイトー・和田洋一社.長対談" [Space Invader, historia secreta de desarrollo revelada ahora: entrevista con el desarrollador Tomohiro Nishikado y el presidente de Taito, Yoichi Wada]. El Nikkei (en japonés). 21 de marzo de 2008. Archivado desde el original el 23 de marzo de 2008 . Consultado el 3 de mayo de 2021 .
    • "Space Invaders – Entrevista con los desarrolladores por el 30.º aniversario". Shmuplations .
  13. ^ Thorpe, Nick (marzo de 2014). "Los años 70: el origen de una industria". Retro Gamer . N.º 127. págs. 24–7.
  14. ^ Dillon, Roberto (19 de abril de 2016). La era dorada de los videojuegos: el nacimiento de una industria multimillonaria. CRC Press. ISBN 9781439873243– a través de Google Books.
  15. ^ La Famicom se convierte en realidad, Nikkei Electronics (12 de septiembre de 1994)
  16. ^ Wright, Steve (3 de diciembre de 1979). «Stella Programmer's Guide» (PDF) . Archivado (PDF) del original el 27 de marzo de 2016. Consultado el 14 de abril de 2016 .
  17. ^ "Tutorial de Sprite GoldSrc". the303.org . Consultado el 26 de septiembre de 2024 .
  18. ^ "Cómo importar y usar sprites de Paper 2D en Unreal Engine". epicgames.com . Epic Games . Consultado el 31 de octubre de 2024 .
  19. ^ "Plus - CPCWiki". Cpcwiki.eu. Archivado desde el original el 20 de julio de 2011. Consultado el 29 de noviembre de 2009 .
  20. ^ "Adaptador de interfaz de televisión". AtariArchives.com. Archivado desde el original el 25 de agosto de 2010. Consultado el 6 de febrero de 2011 .
  21. ^ "Atari 5200 FAQ - Hardware Overview" (Preguntas frecuentes sobre Atari 5200: descripción general del hardware). AtariHQ.com. Archivado desde el original el 14 de mayo de 2011. Consultado el 6 de febrero de 2011 .
  22. ^ "El controlador de vídeo 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 .{{cite web}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
  23. ^ "Manual de referencia de hardware de Amiga 4: hardware de sprites". 1989. Archivado desde el original el 14 de agosto de 2017. Consultado el 23 de mayo de 2017 .
  24. ^ "Especificaciones de Gameduino". excamera.com. Archivado desde el original el 2021-12-13 . Consultado el 2011-06-13 .
  25. ^ "STIC - Wiki de Intellivision". wiki.intellivision.us . Archivado desde el original el 9 de julio de 2018 . Consultado el 15 de marzo de 2018 .
  26. ^ TEXAS INSTRUMENTS 9900: Procesadores de pantalla de video TMS9918A/TMS9928AITMS9929A ​​(PDF) . Archivado desde el original (PDF) el 2017-08-14 . Consultado el 2011-07-05 .
  27. ^ Montfort, Nick; Bogost, Ian (9 de enero de 2009). Racing the Beam: The Atari Video Computer System. MIT Press. ISBN 9780262261524– a través de Google Books.
  28. ^ "Aprenda a programar en ensamblador 6502 multiplataforma... ¡para monstruos! Serie específica para cada plataforma". Archivado desde el original el 2021-12-04 . Consultado el 2021-12-04 .
  29. ^ "Hardware de video derivado de Galaxian". GitHub . MAME . Archivado desde el original el 30 de noviembre de 2017 . Consultado el 23 de octubre de 2018 .
  30. ^ "Hardware derivado de Galaxian". GitHub . MAME . Archivado desde el original el 5 de septiembre de 2018 . Consultado el 23 de octubre de 2018 .
  31. ^ "Familia de hardware Galaxian". GitHub . MAME . Archivado desde el original el 24 de febrero de 2021 . Consultado el 23 de octubre de 2018 .
  32. ^ Nathan Altice (2015), I Am Error: The Nintendo Family Computer / Entertainment System Platform, páginas 53 y 69 Archivado el 12 de noviembre de 2016 en Wayback Machine , MIT Press
  33. ^ "Especificaciones". Nocash.emubase.de. Archivado desde el original el 21 de junio de 2009. Consultado el 29 de noviembre de 2009 .
  34. ^ "Microsoft Word - NESDoc.doc" (PDF) . Archivado (PDF) desde el original el 30 de septiembre de 2011. Consultado el 29 de noviembre de 2009 .
  35. ^ "GameBoy - Spielkonsolen Online Lexikon". At-mix.de. 22 de junio de 2004. Archivado desde el original el 6 de mayo de 2010. Consultado el 29 de noviembre de 2009 .
  36. ^ "Especificaciones". Nocash.emubase.de. Archivado desde el original el 21 de junio de 2009. Consultado el 29 de noviembre de 2009 .
  37. ^ 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 .
  38. ^ "Información técnica de Sega Master System" (TXT) . Smspower.org . Archivado desde el original el 24 de junio de 2019 . Consultado el 28 de noviembre de 2016 .
  39. ^ "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 .
  40. ^ Staff, Polygon (3 de febrero de 2015). «Cómo Sega construyó la Genesis». Polygon. Archivado desde el original el 3 de noviembre de 2015. Consultado el 28 de noviembre de 2016 .
  41. ^ "Sega Out Run Hardware (Sega)". Sistema 16. 31 de marzo de 2016. Archivado desde el original el 28 de noviembre de 2016. Consultado el 28 de noviembre de 2016 .
  42. ^ "mame/segaorun.c at 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 .
  43. ^ "Out Run". 27 de febrero de 2001. Archivado desde el original el 27 de febrero de 2001. Consultado el 28 de noviembre de 2016 .
  44. ^ "Out Run Hardware (Sega)". Sistema 16. Archivado desde el original el 28 de noviembre de 2016. Consultado el 29 de noviembre de 2009 .
  45. ^ "Versión 0.3 - 7 de febrero de 1998". Coinop.org . Archivado desde el original el 14 de mayo de 2016. Consultado el 28 de noviembre de 2016 .
  46. ^ "Hardware común de Sega de 16 bits". Archivado desde el original el 25 de enero de 2016. Consultado el 9 de febrero de 2016 .
  47. ^ "Notas sobre el hardware de Sega "X-Board"". Archivado desde el original (TXT) el 2014-03-18 . Consultado el 2016-11-28 .
  48. ^ "X68000-Computer Museum". Museum.ipsj.or.jp . Archivado desde el original el 2014-10-02 . Consultado el 2016-11-28 .
  49. ^ "mame/x68k.c at 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 .
  50. ^ 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 Wayback Machine ).
  51. ^ "Notas sobre el hardware de Neo-Geo MVS" (TXT) . Furrtek.free.fr . Archivado desde el original el 2018-09-16 . Consultado el 2016-11-28 .
  52. ^ "Manual de programación de Neo-Geo" (PDF) . Furrtek.free.fr . Archivado (PDF) del original el 2016-12-06 . Consultado el 2016-11-28 .
  53. ^ "Gran lista de interruptores DIP de depuración". Neo-Geo. 9 de julio de 2014. Archivado desde el original el 28 de noviembre de 2016. Consultado el 28 de noviembre de 2016 .
  54. ^ "Guía de diseño del motor de sprites de SNES". 30 de marzo de 2021. Archivado desde el original el 4 de diciembre de 2021.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Sprite_(gráficos_por_computadora)&oldid=1258248572"