Спрайт (комп'ютерна графіка)

Спрайт — окреме двовимірне зображення, що застосовується в комп'ютерній графіці як частина більшого зображення. Найчастіше — растрове зображення, що переміщується по екрану, незалежно від фону[1][2]. Спрайт може бути статичним зображенням або анімованим. У останньому разі послідовність спрайтів змінюється, як кадри у відео[2][3].

Спрайти танка та ракет у грі Broforce

Походження терміна

ред.

Слово «спрайт» у значенні частини комп'ютерної графіки було вигадане в 1970-ті роки Девідом Аклі, працівником компанії Texas Instruments[4]: їхня нова мікросхема TMS9918 могла апаратно показувати невелике зображення поверх нерухомого фону[5]. Слово «спрайт» походить від англ. sprite — фея, ельф. Назва пов'язана з тим, що спрайт «літає» над фоном і його відображення не потребує перезапису всього екрана[6].

До поширення терміна «спрайт» вживалися також позначення «гравець» (англ. player), «ракетна графіка» (англ. missile graphics, див. про гру Computer Space)[7], «штамп» (англ. stamp)[8].

Спрайти у двовимірній графіці

ред.
 
Спрайти істот у грі The Battle for Wesnoth

Концепцію спрайтів винайшов Нолан Бушнелл, коли розробляв аркадну відеогру Computer Space (1971). Він взяв за основу гру Spacewar! (1962), в якій екран мусив оновлюватися після кожного руху об'єктів на ньому. Бушнелл вирішив цей недолік, розробивши керування кожним окремим елементом гри за допомогою спеціального транзистора. Ракети на екрані були растровими зображеннями, що рухалися окремо від фону[9].

Першою грою, що використовувала спрайти персонажів, була Basketball (1974), спочатку випущена в Японії компанією Taito. Баскетболісти та кошики в ній зображалися спрайтами. Ці баскетболісти були першими зображенням людей в історії відеоігор. Speed Race (1974) містила спрайти з виявленням зіткнень, які рухалися вздовж ігрового поля з вертикальною прокруткою[6].

Один з перших графічних процесорів Fujitsu MB14241 дозволяв відображати до 11 спрайтів на один рядок. Він використовувався в таких іграх, як Gun Fight (1975), Sea Wolf (1976) і Space Invaders (1978). Taito Z80, яка використовувалася для гри Super Speed Race (1977), була здатна генерувати до 16 спрайтів та відображати 4 спрайти на рядок — кожен роздільністю до 32x32 пікселі, містячи до 15 кольорів. Аркадна система Namco Galaxian, розроблена Namco 1979 року, використовувала спеціалізоване графічне обладнання, що підтримує кольори RGB, різнокольорові спрайти та фони, складені з тайлів. Система відображала до 15 триколірних спрайтів у кожному рядку, роздільністю 16x16 пікселів. Апаратне забезпечення Namco Galaxian широко використовувалося в «золоту добу» аркадних ігор[6].

Sega була в авангарді спрайтової графіки в 1980-1990-і. Її графічна плата Super Scaler дозволяла масштабувати та обертати спрайти з високою частотою кадрів, створюючи ілюзію перспективи. Вона використовувалася в низці аркадних хітів 1980-х років, таких як Hang-On (1985), Space Harrier (1985), Out Run (1987). Обертання спрайтів запровадили в грі After Burner (1987)[6]. Масштабування спрайтів перейняли інші розробники відеоігор, такі як Konami, Namco і Taito[10].

Консоль Sega Saturn, випущена в 1994 році, забезпечувала таку якість спрайтової графіки, що змогла конкурувати з аркадними автоматами. Після появи в іграх на початку-середині 1990-х років справжньої тривимірної графіки, що складається з розташованих у просторі багатокутників, популярність спрайтової графіки впала[6].

Спрайти у тривимірній графіці

ред.

Часто спрайти використовуються у тривимірній графіці для імітації складних об'єктів. Вони поводяться, як тривимірні об'єкти (можуть рухатися в просторі, масштабуватися), але є площинами, на яких міститься зображення[11]. Наприклад, це можуть бути численні віддалені об'єкти, такі як натовп[12]. Використання спрайтів замість тривимірних моделей заощаджує ресурси пристрою[13].

У ранніх тривимірних іграх, таких як Wolfenstein (1992) і Doom (1993), тривимірною була місцевість, а об'єкти, що рухаються на ній, та деякі декорації, зображалися спрайтами[14]. Це дозволяло легше працювати з об'єктами та заощаджувати апаратні ресурси. Недоліком було те, що спрайти повинні були завжди розташовуватися паралельно до екрана з точки зору гравця. В іншому разі ставало помітно, що предмет або персонаж насправді плоскі[15].

Спрайти використовуються для відображення таких ефектів, як вогонь або дим, вибухи, опади, що надто обтяжливі для фізичного симулювання[16][17].

CSS-спрайти

ред.
 
Різноманітні кнопки на вебсайтах можуть реалізовуватися як спрайти

Спрайти використовуються не тільки в іграх, а також у вебдизайні як засіб зменшення часу завантаження вебсторінки. В CSS це досягається шляхом об'єднання багатьох маленьких зображень або піктограм у велике зображення, яке називається «аркушем спрайтів» або тайлсетом, і потім на екрані виводяться окремі його частини[18][19]. Наприклад, на вебсайтах зазвичай є декілька піктограм, які змінюють стиль, коли користувач наводить на них курсор. Звичайне та наведене зображення є різними зображеннями, що завантажуються окремо, що може зумовлювати ефект мерехтіння. Цього можна позбутися, якщо стилі піктограм є спрайтами, частинами єдиного зображення, званого аркушем спрайтів. З усього аркуша спрайтів на екрані відображається лише та частина, яка потрібна в конкретний момент[20].

Див. також

ред.

Примітки

ред.
  1. sprite definition — Dictionary — MSN Encarta. Архів оригіналу за 25 травня 2009. Процитовано 21 лютого 2015. [Архівовано 2009-05-25 у Wayback Machine.]
  2. а б Gregory, Jason (15 червня 2009). Game Engine Architecture (англ.). CRC Press. с. 492. ISBN 978-1-4398-7918-4.
  3. Heimbürger, Anneli (2011). Information Modelling and Knowledge Bases XXII (англ.). IOS Press. с. 235. ISBN 978-1-60750-689-8.
  4. First, Be Useful (Home computers and Pico Projectors). KGOnTech (амер.). 6 грудня 2011. Процитовано 27 грудня 2023.
  5. Karl Guttag Conference on Delphi TI Net — Google Groups. Архів оригіналу за 2 серпня 2013. Процитовано 21 лютого 2015.
  6. а б в г д Sprite (Concept). Giant Bomb (англ.). Процитовано 27 грудня 2023.
  7. De Re Atari - Chapter 4. www.atariarchives.org. Процитовано 27 грудня 2023.
  8. Classic Game Postmortem: 'Ms. Pac-Man'. www.gdcvault.com. Процитовано 27 грудня 2023.
  9. Swalwell, Melanie; Wilson, Jason (12 травня 2015). The Pleasures of Computer Gaming: Essays on Cultural History, Theory and Aesthetics (англ.). McFarland. с. 109—110. ISBN 978-0-7864-5120-3.
  10. Sprite Scaling (Concept). Giant Bomb (англ.). Процитовано 27 грудня 2023.
  11. Pulli, Kari; Aarnio, Tomi; Miettinen, Ville; Roimela, Kimmo; Vaarala, Jani (19 листопада 2007). Mobile 3D Graphics: with OpenGL ES and M3G (англ.). Elsevier. с. 347. ISBN 978-0-08-055591-1.
  12. Furht, Borko (23 липня 2019). Handbook of Internet Computing (англ.). CRC Press. с. 45. ISBN 978-1-351-08108-5.
  13. Zwerman, Susan; Okun, Jeffrey A. (11 липня 2014). The VES Handbook of Visual Effects: Industry Standard VFX Practices and Procedures (англ.). CRC Press. с. 828. ISBN 978-1-136-13622-1.
  14. Sanglard, Fabien. Game Engine Black Book: Wolfenstein 3D (англ.). Software Wizards. с. 201—202.
  15. Posch, Maya (28 вересня 2015). Mastering AndEngine Game Development (англ.). Packt Publishing Ltd. с. 12. ISBN 978-1-78398-115-1.
  16. Grossman, Austin (2 квітня 2013). Postmortems from Game Developer: Insights from the Developers of Unreal Tournament, Black & White, Age of Empire, and Other Top-Selling Games (англ.). CRC Press. с. 167—168. ISBN 978-1-136-06462-3.
  17. Pedersen, Roger E. (2003). Game Design Foundations (англ.). Wordware Publishing, Inc. с. 70. ISBN 978-1-55622-973-2.
  18. Shi, Yong; Fu, Haohuan; Tian, Yingjie; Krzhizhanovskaya, Valeria V.; Lees, Michael Harold; Dongarra, Jack; Sloot, Peter M. A. (11 червня 2018). Computational Science – ICCS 2018: 18th International Conference, Wuxi, China, June 11-13, 2018, Proceedings, Part II (англ.). Springer. ISBN 978-3-319-93701-4.
  19. Seidelin, Jacob (30 листопада 2011). HTML5 Games: Creating Fun with HTML5, CSS3, and WebGL (англ.). John Wiley & Sons. ISBN 978-1-119-97633-2.
  20. Novais, Beatriz (11 листопада 2020). How to increase web performance with CSS image sprites?. dev.glowUp (англ.). Процитовано 27 грудня 2023.