В компьютерная графика, спрайт - это двумерное растровое изображение, которое интегрируется в большую сцену, чаще всего в 2D видеоигре. Этот термин был впервые использован Дэнни Хиллисом в Texas Instruments в конце 1970-х.
Первоначально спрайты относились к объектам фиксированного размера, составленным вместе, аппаратно, с фоном. Эта композиция происходит, когда каждая строка развертки подготавливается для устройства вывода видео, такого как ЭЛТ, без участия основного ЦП и без необходимости в полноэкранный буфер кадра. Спрайты можно позиционировать или изменять, задав атрибуты, используемые в процессе композиции оборудования.
Системы с аппаратными спрайтами включают TI-99 / 4A (1979), 8-битное семейство Atari (1979), Commodore 64 (1982), Nintendo Famicom / NES (1983), Amiga (1985), Sega Mega-Drive / Genesis (1988) и многие другие монеты. игровые автоматы 1980-х годов. Аппаратное обеспечение спрайтов зависит от количества поддерживаемых спрайтов, количества, которое может отображаться на одной строке развертки (часто меньшее число), размеров и цветов каждого спрайта, а также специальных эффектов, таких как масштабирование или отчет о перекрытии с точностью до пикселя.
Использование термина «спрайт» расширилось, чтобы обозначить любое двумерное растровое изображение, используемое как часть графического дисплея, даже если оно нарисовано в кадровом буфере (программным обеспечением или GPU ) вместо того, чтобы компоноваться на лету во время отображения.
Использование спрайтов возникло в аркадных играх. Первой видеоигрой, в которой персонажи игрока были представлены в виде человеческих изображений игроков, была игра Taito Basketball, которая была лицензирована в феврале 1974 года для Midway, выпустив его как TV Basketball в Северной Америке.
Signetics разработала первые микросхемы, способные генерировать спрайт-графику (называемую Signetics объектами) для домашних систем. Видеопроцессоры Signetics 2636 были впервые использованы в 1978 1292 Advanced Programmable Video System, а затем в 1979 году Elektor TV Games Computer.
Atari VCS, выпущенном в 1977 году., имеет аппаратную реализацию спрайта, в которой пять графических объектов можно перемещать независимо от игрового поля. Термин спрайт в то время не использовался. В руководстве по программированию спрайты VCS называются подвижными объектами, далее обозначаются как два игрока, две ракеты и один шар. Каждый из них состоит из одной строки пикселей, которые отображаются в строке развертки. Чтобы создать двухмерную форму, однорядное растровое изображение спрайта изменяется программным обеспечением от одной строки развертки к другой.
Домашние компьютеры Atari 400 и 800 1979 года имеют аналогичную, но более сложную схему, способную перемещать восемь одноцветных объектов за одну строку сканирования: четыре 8-битных проигрывателя и четыре двухцветных. немного широкие ракеты. Каждая - это длинная тонкая полоска во всю высоту дисплея. DMA из таблицы в памяти автоматически устанавливает регистры графического шаблона для каждой строки развертки. Аппаратные регистры контролируют горизонтальное положение каждого игрока и ракеты. Вертикальное движение достигается перемещением растровых данных в пределах полосы игрока или ракеты. Эта функция была названа Atari графикой игрока / ракеты.
Аркадная системная плата Namco Galaxian для аркадной игры 1979 года Galaxian с анимированными разноцветными спрайтами. Он был пионером системы спрайтов, которая анимировала предварительно загруженные спрайты на фоне с прокруткой, которая стала основой для Nintendo Radar Scope и Donkey Kong. аркадное оборудование и домашние консоли, такие как Nintendo Entertainment System. По словам Стива Голсона из General Computer Corporation, в то время термин «штамп» использовался вместо «спрайта».
Термин «спрайт» впервые был использован в графическом смысле одним из создатели процессора видеодисплея (VDP) Texas Instruments 9918 (A). Этот термин был получен из того факта, что спрайты, а не часть данных растрового изображения в буфере кадра, вместо этого «плавают» сверху, не затрагивая данные в буфере кадра ниже, во многом как призрак или «спрайт ". К этому времени спрайты достигли такой степени, что полные двумерные формы можно было перемещать по экрану по горизонтали и вертикали с минимальными затратами на программное обеспечение.
Это базовые спецификации оборудования и не включают дополнительных методов программирования, таких как использование растровых прерываний для перепрофилирования спрайтов в середине кадра.
Компьютерная система | Оборудование спрайтов | Год | Спрайты на экране | Спрайты в строке | Макс. тексели в строке | Текстура ширина | Высота текстуры | Цвета | Аппаратное масштабирование | Поворот | Фон | Обнаружение столкновений | Прозрачность | Источник |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Amstrad Plus | 1990 | 16 | 16 | ? | 16 | 16 | 15 | 1, 2, 4 × по вертикали, 1, 2, 4 × по горизонтали | No | 1 растровый слой | No | Цветовой ключ | ||
Atari 2600 | TIA | 1977 | 5 | 5 | 19 | 1, 8 | 262 | 1 | 1, 2, 4, 8 × по горизонтали | Горизонтальное зеркальное отображение | 1 растровый слой | Да | Цветовой ключ | |
8-битное семейство Atari | GTIA / ANTIC | 1979 | 8 | 8 | 40 | 2, 8 | 128, 256 | 1 | 1, 2 × по вертикали, 1, 2, 4 × по горизонтали | No | 1 мозаичный или растровый слой | Да | Цветовой ключ | |
Commodore 64 | VIC-II | 1982 | 8 | 8 | 96, 192 | 12, 24 | 21 | 1, 3 | 1, 2 × целое число | No | 1 фрагмент или растровый слой | Да | Цветовой ключ | |
Amiga (OCS) | Denise | 1985 | Произвольный | 8 | 128 | 16 | Произвольный | 3, 15 | Вертикально по списку отображения | No | 2 слоя растрового изображения | Да | Цветная клавиша | |
Amiga (AGA) | Lisa | 1992 | Произвольный | 8 | 512 | 16, 32, 64 | Произвольный | 3, 15 | По вертикали по списку отображения | No | 2 растровые слои | Да | Цветовой ключ | |
Colecovision | Texas Instruments TMS9918A | 1983 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 1, 2 × целое число | No | 1 слой плитки | Частичный | Цветовой ключ | |
Texas Instruments TI-99 / 4A | Texas Instruments TMS9918A | 1981 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 1, 2 × целое число | No | 1 слой плитки | Частичный | Цветовой ключ | |
2011 | 256 | 96 | 1,536 | 16 | 16 | 255 | No | Да | 1 слой плитки | Да | Цветная клавиша | |||
Intellivision | STIC AY-3-8900 | 1979 | 8 | 8 | 64 | 8 | 8,16 | 1 | 1, 2, 4, 8 × по вертикали, 1, 2 × по горизонтали | Горизонтальное и вертикальное зеркальное отображение | 1 слой мозаики | Да | Цветная клавиша | |
MSX | Texas Instruments TMS9918A | 1983 | 32 | 4 | 64 | 8, 16 | 8, 16 | 1 | 1, 2 × целое число | No | 1 слой плитки | Частичный | Цветовая клавиша | |
MSX2 | Yamaha V9938 | 1986 | 32 | 8 | 128 | 8, 16 | 8,1 6 | 1, 3, 7, 15 на строку | 1, 2 × целое число | No | 1 мозаичный или растровый слой | Частично | Цветовой ключ | |
MSX2 + / MSX turbo R | Yamaha V9958 | 1988 | 32 | 8 | 128 | 8,16 | 8,16 | 1, 3, 7, 15 на строку | 1, 2 × целое число | No | 1 тайловый или растровый слой | Частичный | Цветовой ключ | |
Namco Pac- Человек. (аркада) | TTL | 1980 | 6 | 6 | 96 | 16 | 16 | 3 | No | Горизонтальное и вертикальное зеркальное отображение | 1 слой плитки | No | Цветовой ключ | |
TurboGrafx- 16 | HuC6270A | 1987 | 64 | 16 | 256 | 16, 32 | 16, 32, 64 | 15 | No | No | 1 слой плитки | Да | Цветная клавиша | |
Namco Galaxian. (arcade ) | TTL | 1979 | 7 | 7 | 112 | 16 | 16 | 3 | No | Горизонтальное и вертикальное зеркальное отображение | 1 слой плитки | No | Цветная клавиша | |
Nintendo Donkey Kong, Radar Scope. (аркада) | 1979 | 128 | 16 | 256 | 16 | 16 | 3 | Целое число | No | 1 слой плитки | Да | Цветная клавиша | ||
Nintendo DS | Интегрированный PPU | 2004 | 128 | 128 | 1,210 | 8, 16, 32, 64 | 8, 16, 32, 64 | 65,536 | Да, affine | Да, affine | 4 слоя на экран; каждый слой независим | No | Цветовой ключ, смешивание | |
NES / Famicom | Ricoh RP2C0x PPU | 1983 | 64 | 8 | 64 | 8 | 8, 16 | 3 | No | Горизонтальное и вертикальное зеркальное отображение | 1 слой плитки | Частичный | Цветовой ключ | |
Game Boy | Интегрированный PPU | 1989 | 40 | 10 | 80 | 8 | 8, 16 | 3 | No | Горизонтальное и вертикальное зеркальное отображение | 1 слой плитки | No | Цветовая клавиша | |
Game Boy Advance | Интегрированный PPU | 2001 | 128 | 128 | 1210 | 8, 16, 32, 64 | 8, 16, 32, 64 | 15, 255 | Да, аффинный | Да, аффинный | 4 слоя, 2 слоя и 1 аффинный слой, 2 аффинных слоя | No | Цветовой ключ, смешивание | |
Master System,. Game Gear | VDP. (На основе TMS9918) | 1985 | 64 | 8 | 128 | 8, 16 | 8, 16 | 15 | 1, 2 × целое число, 1, 2 × по вертикали | Зеркальное отображение фоновой плитки | 1 слой плитки | Да | Цветовая клавиша | |
Sega Genesis | YM7101 VDP. (на основе SMS VDP) | 1988 | 80 | 20 | 320 | 8, 16, 24, 32 | 8, 16, 24, 32 | 15 | No | по горизонтали и d вертикальное зеркальное отображение | 2 слоя плитки | Да | Цветная клавиша | |
Sega OutRun (аркада) | 1986 | 128 | 128 | 1600 | от 8 до 512 | от 8 до 256 | 15 | Да, анизотропный | Горизонтальное и вертикальное зеркальное отображение | 2 тайловых слоя и 1 растровый слой | Да | Alpha | ||
Sharp X68000 | Cynthia jr. (оригинал), Cynthia (более поздние модели) | 1987 | 128 | 32 | 512 | 16 | 16 | 15 | 1, 2 × целое число | Горизонтальное и вертикальное зеркальное отображение | 1-2 слоя плитки и 1-4 слоя растрового изображения | Частичный | Цветовой ключ | |
Neo Geo | LSPC2-A2 | 1990 | 384 | 96 | 1536 | 16 | от 16 до 512 | 15 | Сжатие спрайтов | Горизонтальное и вертикальное зеркальное отображение | 1 слой плитки | Частичный | Цвет клавиша | |
Super NES /. Super Famicom | S-PPU1, S-PPU2 | 1990 | 128 | 34 | 272 | 8, 16, 32, 64 | 8, 16, 32, 64 | 15 | Только фон | Горизонтальное и вертикальное зеркальное отображение | 3 слоя листов или 1 слой аффинно сопоставленных листов | Да | Цветовой ключ, среднее значение | |
Компьютерная система | Оборудование спрайтов | Год | Спрайты на экране | Спрайты включены строка | Макс. тексели в строке | Текстура ширина | Высота текстуры | Цвета | Аппаратное масштабирование | Поворот | Фон | Обнаружение столкновений | Прозрачность | Источник |
2D-изображения с альфа-каналами, ограниченными обращением к камере, могут использоваться в 3D-графике. Они обычно используются для визуализации растительности, для аппроксимации удаленных объектов или для эффектов частиц. Иногда их называют «билбордами» или «Z-спрайтами». Если спрайты визуализируются на лету для кэширования приблизительного вида лежащей в основе 3D-модели, такие спрайты называются самозванцами. Современное аппаратное обеспечение графического процессора может имитировать спрайты с двумя треугольниками с отображением текстуры или конкретными примитивами, такими как точечные спрайты.
Некоторые производители оборудования использовали термины, отличные от спрайтов.
Player / Missile Graphics - термин, используемый Atari, Inc. для аппаратно сгенерированных спрайтов в 8-битных компьютерах Atari и Atari 5200 консоль. Этот термин отражал использование как персонажей («игроки»), так и более мелких связанных объектов («ракеты»), которые имеют один и тот же цвет. В более ранних Atari 2600 и некоторых аркадных играх Atari в качестве спрайтов использовались также игрок, ракета и мяч.
Блок подвижных объектов, или MOB, использовался в документации по графическим микросхемам MOS Technology (спецификации и т. Д.). Однако Commodore, основной пользователь микросхем MOS и владелец MOS на протяжении большей части срока службы производителя микросхем, использовал термин спрайт для Commodore 64.
Руководства для разработчиков для Nintendo Entertainment System, Super NES и Game Boy ссылаются на спрайты как на OBJ (сокращение от «объекты»), а также на область ОЗУ, используемую для хранения атрибутов спрайтов и координаты были известны как OAM (Память атрибутов объекта). Это также относится к портативным системам Game Boy Advance и Nintendo DS.