Тайловая графика

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
SuperTux. Хорошо заметны тайлы — повторяющиеся фрагменты изображения.
Warcraft II. Пеньки в правом нижнем углу — это один тайл, вдвое меньший, чем зелёная рамка. Плотность пней просчитана настолько хорошо, что повторы заметны только если присмотреться. Кроме того, монотонность разбивают тёмные пятна на траве и хаотически разбросанные камушки. Переходных тайлов между пнями и травой нет (но между светлым и тёмным или между лесом и травой, естественно, есть).

Тайловая, плиточная или знакоместная графика (от англ. tile — плитка) — метод создания больших изображений (как правило, уровней в компьютерных играх). Изображение составляется из маленьких фрагментов одинаковых габаритов (паттернов), как картина из изразцов — отсюда название.

Принцип действия[править | править код]

Аналогично палитре цветов, тайловое изображение состоит из двух частей: набора тайлов и матрицы клеток.

Тайлы — небольшие изображения одинаковых размеров, которые и служат фрагментами большой картины. Обычно тайлов на один «мир» делают порядка нескольких сотен. Матрица клеток же составляется из номеров тайлов. Таким образом можно строить огромные двухмерные пространства, расходующие совсем немного памяти.

Тайловая графика близка к текстовому режиму. Чтобы сделать из текстового видеоадаптера тайловый, надо добавить ещё одну строку, ещё один столбец, изменяемый шрифт, регистры прокрутки и аппаратные спрайты. Поэтому такая графическая система носила ещё название «знакоместная графика».

Монотонность и как её обходят[править | править код]

Проблема тайловой графики в её монотонности: глаз легко замечает повторяющиеся элементы. С монотонностью борются так:

  • «Умно» режут рисунок на тайлы, предусматривая переходные тайлы между разными поверхностями и не допуская в пределах одного тайла областей с сильно различающейся оптической плотностью. Сравните SuperTux и WarCraft II на рисунках справа.
  • Делают несколько тайлов одного и того же, с немного различающимся рисунком. Тайлы располагают хаотически, чтобы глаз не мог заметить какой-либо порядок (хорошо заметно в WarCraft II).
  • Делают различные украшения, притягивающие взгляд — физически они могут быть реализованы как тайлы (WarCraft II), как дополнительные тайловые слои поверх основного ([уточнить]) или как спрайты (StarCraft).
  • «Обосновывают» монотонность клеточной механикой (Boulder Dash, Super Mario Bros., большинство roguelike). Клетка с кирпичами непроходима, клетка с потрескавшимися кирпичами пробивается, и т. д.; зачастую передвижения персонажа в таких играх ограничиваются клеточной решёткой.
  • «Обосновывают» монотонность графическим стилем: например, вполне естественно, что свежеотремонтированный склад, заполненный стандартными контейнерами, будет состоять из совершенно одинаковых тайлов (Saboteur!). Хотя и там стараются разнообразить игру: то попадётся тельфер, то пульт, то склад сменится туннелем или машинным залом

Тайловые редакторы[править | править код]

Существуют программы для создания тайл-изображений — тайловые редакторы, такие, как Tiled.

Чтобы упростить работу конструктора уровней, прогрессивные редакторы могут содержать какие-либо средства автоматизации: копирование-вставку, штамп (устанавливает заранее определённую комбинацию тайлов), «умную кисть», автоматически расставляющую переходные тайлы. В частности, в редакторах WarCraft II и StarCraft вообще нет инструмента для рисования по одному тайлу.

Изометрические тайлы[править | править код]

В некоторых играх (X-COM: UFO Defense) бывают тайлы в изометрической проекции.

Стоит признать, что, несмотря на изометрический вид, тайлы в StarCraft традиционные квадратные.

Тайл — элемент разбиения[править | править код]

Также тайлами иногда называют блоки или квадраты, которые служат элементами стриминга или применяются для оптимизации по когерентности.

Разбиение на квадраты в целях стриминга применяется в играх с огромными открытыми пространствами (Microsoft Train Simulator), а также для создания интерактивных карт (могут содержать векторные данные, космические снимки, матрицы высот, тематические карты, объекты мониторинга и другую информацию).

Блоки разбиения применяются практически во всех трёхмерных рендерерах — для лучшей работы текстурного кэша.

Ссылки[править | править код]