В компьютерной графике спрайт — это двумерное растровое изображение , интегрированное в большую сцену, чаще всего в 2D- видеоигру . Первоначально термин « спрайт» относился к объектам фиксированного размера, скомпонованным вместе с фоном с помощью оборудования. [1] С тех пор использование этого термина стало более общим.
Системы с аппаратными спрайтами включают аркадные видеоигры 1970-х и 1980-х годов; игровые консоли , включая Atari VCS (1977), ColecoVision (1982), Famicom (1983), Genesis/Mega Drive (1988); и домашние компьютеры , такие как TI-99/4 (1979), Atari 8-bit computers (1979), Commodore 64 (1982), MSX (1983), Amiga (1985) и X68000 (1987). Аппаратное обеспечение различается по количеству поддерживаемых спрайтов, размеру и цветам каждого спрайта, а также специальным эффектам, таким как масштабирование или отчет о точном наложении пикселей.
Аппаратная композиция спрайтов происходит по мере подготовки каждой строки развертки для устройства вывода видео, такого как электронно-лучевая трубка , без участия основного ЦП и без необходимости в полноэкранном буфере кадров . [1] Спрайты можно позиционировать или изменять, устанавливая атрибуты, используемые в процессе аппаратной композиции. Количество спрайтов, которые могут быть отображены на строку развертки, часто меньше общего количества спрайтов, поддерживаемых системой. Например, чип Texas Instruments TMS9918 поддерживает 32 спрайта, но только четыре могут отображаться на одной строке развертки.
Процессоры современных компьютеров, игровых приставок и мобильных устройств достаточно быстры, чтобы растровые изображения можно было рисовать в буфере кадров без специальной аппаратной помощи. Кроме того, графические процессоры могут рендерить огромное количество масштабированных, повернутых, сглаженных , частично полупрозрачных изображений с очень высоким разрешением параллельно с процессором.
По словам Карла Гуттаг, одного из двух инженеров видеопроцессора Texas Instruments TMS9918 1979 года , такое использование слова «спрайт» пришло от Дэвида Экли, менеджера в TI. [2] Его также использовал Дэнни Хиллис в Texas Instruments в конце 1970-х годов. [3] Термин произошел от того факта, что спрайты «плавают» поверх фонового изображения, не перезаписывая его, подобно призраку или мифологическому спрайту .
Некоторые производители оборудования использовали другие термины, особенно до того, как спрайт стал широко распространенным:
Player/Missile Graphics — термин, используемый Atari, Inc. для аппаратных спрайтов в 8-битных компьютерах Atari (1979) и консоли Atari 5200 (1982). [4] Термин отражает использование как персонажей («игроков»), так и более мелких связанных объектов («ракет»), которые имеют одинаковый цвет. Более ранняя Atari Video Computer System и некоторые аркадные игры Atari использовали player , rocket и ball .
В начале 1980-х годов штамп использовался в некоторых игровых автоматах, включая Ms. Pac-Man . [5]
Термин Movable Object Block ( MOB ) использовался в литературе MOS Technology по графическим чипам. Commodore , основной пользователь чипов MOS и владелец MOS на протяжении большей части жизни производителя чипов, вместо этого использовал термин sprite для Commodore 64.
OBJ s (сокращение от objects ) используется в руководствах разработчиков для NES , Super NES и Game Boy . Область видеопамяти, используемая для хранения атрибутов и координат спрайтов, называется OAM (Object Attribute Memory). Это также применимо к Game Boy Advance и Nintendo DS .
Использование спрайтов зародилось в аркадных видеоиграх . Нолан Бушнелл придумал оригинальную концепцию, когда разработал первую аркадную видеоигру Computer Space (1971). Технические ограничения затрудняли адаптацию ранней игры для мэйнфреймов Spacewar! (1962), которая выполняла полное обновление экрана для каждого небольшого движения, поэтому он придумал решение проблемы: управление каждым отдельным элементом игры с помощью выделенного транзистора . Ракеты по сути были жестко зашитыми растровыми изображениями , которые перемещались по экрану независимо от фона, что было важным нововведением для более эффективного создания экранных изображений и обеспечения основы для спрайтовой графики. [6]
Первые видеоигры, в которых персонажи игроков представлялись в виде спрайтов людей-игроков, были аркадными спортивными видеоиграми , начиная с TV Basketball от Taito , [7] [8] [9], выпущенного в апреле 1974 года и лицензированного Midway Manufacturing для выпуска в Северной Америке. [10] Разработанный Томохиро Нишикадо , он хотел выйти за рамки простых прямоугольников в стиле Pong и перейти к графике персонажей, перестраивая прямоугольные формы в объекты, которые выглядели как баскетболисты и баскетбольные кольца . [11] [12] Ramtek выпустила еще одну спортивную видеоигру в октябре 1974 года, Baseball , [10] в которой аналогичным образом отображались человекоподобные персонажи. [13]
Плата игровой системы Namco Galaxian для аркадной игры Galaxian 1979 года отображает анимированные разноцветные спрайты на прокручивающемся фоне. [14] Она стала основой для игровых приставок Radar Scope и Donkey Kong от Nintendo , а также домашних консолей , таких как Nintendo Entertainment System . [15] По словам Стива Голсона из General Computer Corporation , в то время вместо слова «спрайт» использовался термин «штамп». [5]
Signetics разработала первые чипы, способные генерировать спрайтовую графику (называемые Signetics объектами ) для домашних систем. Видеопроцессоры Signetics 2636 впервые были использованы в 1978 году в 1292 Advanced Programmable Video System , а затем в 1979 году в Elektor TV Games Computer .
Atari VCS , выпущенная в 1977 году, имела аппаратную реализацию спрайта, в которой пять графических объектов можно было перемещать независимо от игрового поля. Термин «спрайт» в то время не использовался. В руководстве по программированию спрайты VCS называются подвижными объектами , далее они обозначаются как два игрока , две ракеты и один мяч . [16] Каждый из них состоит из одной строки пикселей, которые отображаются на строке развертки . Для создания двумерной формы однострочная битовая карта спрайта изменяется программным обеспечением от одной строки развертки к другой.
Домашние компьютеры Atari 400 и 800 1979 года имели похожую, но более сложную схему, способную перемещать восемь одноцветных объектов на строку развертки: четыре 8-битных игрока и четыре 2-битных ракеты . Каждая занимает всю высоту дисплея — длинную тонкую полосу. DMA из таблицы в памяти автоматически устанавливает регистры графических шаблонов для каждой строки развертки. Аппаратные регистры управляют горизонтальным положением каждого игрока и ракеты. Вертикальное перемещение достигается путем перемещения данных растрового изображения в полосе игрока или ракеты. Эта функция была названа Atari графикой игрока/ракеты .
Компания Texas Instruments разработала чип TMS9918 с поддержкой спрайтов для своего домашнего компьютера TI-99/4 1979 года. Обновленная версия используется в TI-99/4A 1981 года .
Спрайты оставались популярными с появлением 2.5D- игр (тех, которые воссоздают трехмерное игровое пространство из двухмерной карты) в конце 1980-х и начале 1990-х годов. Техника, называемая billboarding , позволяет 2.5D-играм постоянно держать экранные спрайты повернутыми в сторону взгляда игрока. Некоторые 2.5D-игры, такие как Doom 1993 года , позволяют представлять одну и ту же сущность разными спрайтами в зависимости от ее поворота относительно зрителя, усиливая иллюзию трехмерности.
Полностью 3D-игры обычно представляют объекты мира в виде 3D-моделей , но спрайты поддерживаются в некоторых 3D- игровых движках , таких как GoldSrc [17] и Unreal [18] , и могут быть привязаны к фиксированным ориентациям. Спрайты остаются полезными для мелких деталей, эффектов частиц и других приложений, где отсутствие третьего измерения не является серьезным недостатком.
Это базовые характеристики оборудования, которые не включают в себя дополнительные методы программирования, такие как использование растровых прерываний для повторного использования спрайтов в середине кадра.
[…] 6 движущихся персонажей, то, что вы сегодня назвали бы «спрайтами», тогда мы называли их «штампами», […].
{{cite web}}
: CS1 maint: бот: исходный статус URL неизвестен ( ссылка )