статьиGNU Free Documentation License материалы взяты из Википедии Статья была изменена. Оригинал статьи.

Конфликт атрибутов

Материал из Энциклопедии в свободной энциклопедии
Перейти к: навигация, поиск
Конфликт атрибутов на MSX 1

Конфликт атрибутов или клэшинг (англ. attribute clash) в артефакт графики, проявляющийся на некоторых старых компьютерных видеосистемах и связанный с аппаратными ограничениями. Наиболее известен пользователям ZX-Spectrum.

Содержание

[править] Причина

Статичная картинка, выполненная с учётом структуры видеопамяти Spectrumв™а

Для экономии памяти и ускорения работы первые цветные компьютеры не позволяли присваивать любому пикселю любой цвет. Вместо этого экран делился на блоки, и каждому блоку давались два цвета в передний план и фон. В каждом из блоков пиксель имел один из этих двух цветов (и кодировался одним битом). При попытке вывести три цвета в один блок один из этих трёх цветов теряется, приводя к специфическим артефактам.

В частности, ZX-Spectrum каждому знакоместу размером 8×8 пикселей присваивал 1-байтовый атрибут в трёхбитовый цвет переднего плана INK, трёхбитовый цвет фона PAPER, 1 бит яркости BRIGHT и 1 бит мигания FLASH. Это давало 15 цветов (и в обычном, и в ярком режиме цвет 0 чёрный). Таким образом, при разрешении 256×192 видеопамять занимала всего 6912 байтов. К слову сказать, эффект мигания использовался крайне редко в том числе и из-за того, что мигающая область явно состоит из квадратных блоков.

В MSX 1 атрибут присваивается горизонтальным блокам 8×1 пикселей. Кроме того, были аппаратные спрайты, не конфликтовавшие друг с другом и с фоном. Впрочем, при портировании с ZX-Spectrum байт атрибута зачастую размножали, а спрайтами не пользовались, что приводило к практически неотличимой игре. В NES конфликтная зона 8×8 пикселей в но с широкой палитрой, аппаратными спрайтами и аппаратной же прокруткой это малозаметно.

Статичные картинки, естественно, строятся с учётом ограничений видеопамяти. В играх изображение строится динамически, и с проблемой требуется как-то бороться.

[править] Способы борьбы

[править] Игнорировать

Здесь никто с артефактами не борется, фон просто получает атрибут спрайта (или наоборот в спрайт получает атрибут фона). Этот механизм применяется в большинстве игр (например, Dizzy).

+: спрайт отделяется цветом от заднего плана; никаких ограничений стиля или движения.

в: артефакты чётко видны.

[править] Рисовать одним цветом

Nether Earth: монохромное чёрно-жёлтое игровое поле

Отказываемся от цвета и рисуем монохромное игровое поле (Elite, Chimera, Head Over Heels). Впрочем, цвет, которым игровое поле рисуется, также может нести какую-либо информацию.

Иногда (Turbo Esprit) основная часть изображения монохромная, и только некоторые важные объекты рисуются в цвете.

+: полное отсутствие артефактов; никаких ограничений на движение.

в: теряется возможность рисовать в цвете.

[править] Выравнивать спрайты по знакоместам

Движение спрайтов ограничивается 8-пиксельной сеткой. Данный метод применяется в играх с крупными спрайтами в в частности, Saboteur!. Практически во всех играх для Spectrum по знакоместам выравниваются препятствия.

+: простота; один только этот шаг серьёзно снижает артефакты.

в: не всегда пригодно.

[править] Выработать особый стиль

Saboteur!: жёлтый и голубой цвета обставлены как освещение

Игра Saboteur! основана на чёрном цвете, в ней чёрный цвет практически везде: в узорах стен, в декорациях, в одежде враговв Нечёрный же цвет играет роль освещения: например, чёрный ниндзя, бегущий вдоль жёлтой стены, становится чёрно-жёлтым, на фоне синего неба тот же ниндзя чёрно-синий. И в этой игре в некоторых знакоместах можно заметить конфликт атрибутов в правда, крайне редко. В игре Flunky применяется крупная мультяшная графика.

+: особый, ни на что не похожий стиль; цветное изображение сочетается с незначительными артефактами.

в: пригодно крайне редко.

[править] Динамическое изменение атрибутов

Некоторые демо-ролики динамически меняют атрибуты, синхронизируясь со строчной развёрткой монитора. Конфликты не исчезают, но конфликтная зона уменьшается до 8×1 пикселей.

+: попытка обойти ограничения видеопамяти.

в: способ отнимает много процессорного времени и поэтому непригоден для игр.

Пространства имён

Варианты
Просмотры
Действия
На других языках