Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Изометрическая графика в компьютерных играх

Из Википедии — свободной энциклопедии

Термин «изометрия» в компьютерных играх относится к тому или иному виду параллельной проекции (иногда диметрическую проекцию ошибочно называют «изометрической»). Угол обзора в ней смещён, и это создаёт эффект трёхмерности и позволяет показать некоторые детали окружения, которые не видны при виде сверху или виде сбоку. Также используются термины «2.5D» и «псевдо-3D».

С появлением мощных графических систем изометрическая проекция стала менее популярна, будучи заменена перспективной проекцией.

Обзор

Телевизор, запечатлённый в практически совершенной изометрии 2:1 (пиксельная графика)

В области компьютерных видеоигр использование изометрии стало популярным из-за простоты, с которой 2D спрайт и основанная на тайлах графика может с её помощью имитировать 3D-окружение. Поскольку объекты не меняют своего размера в зависимости от расположения в игровом пространстве, нет необходимости в сложных вычислениях масштабов спрайтов и моделировании визуальной перспективы. Это позволяет отображать большие трёхмерные пространства 8-битным и 16-битным, а также карманным игровым системам. Проблемы с глубиной поможет решить хороший игровой дизайн.

Разница с «настоящей» изометрической проекцией

Проекция, обычно использующаяся в видеоиграх, несколько отличается от «настоящей» изометрии из-за ограничений растровой графики. Линии по осям x и y выглядели бы неаккуратно, если бы были отклонены на 30 ° к горизонтали. Современные компьютеры могут устранить эту проблему, используя сглаживание, но более старые графические системы не поддерживали достаточное количество цветов либо не обладали достаточными вычислительными ресурсами, чтобы сделать это.

Вместо этого, оси x и y отклонялись на 26,565 ° (арктангенс 0.5) от горизонтали, однако игровые системы, не использующие квадратные пиксели, могли отображать любые углы, в том числе и «истинную» изометрию. Поэтому эту форму проекции можно описать как модификацию диметрической проекции, так как в ней равны только два угла между осями из трёх (116,565 °, 116,565 °, 126,87 °).

Похожие проекции

Термин часто применяется к играм с проекцией, похожей на «настоящую изометрию», включая игры, которые используют триметрическую проекцию (Fallout, SimCity 4), игры, использующие косоугольную проекцию (The Legend of Zelda: A Link to the Past, Ultima Online), а также игры, использующие комбинацию перспективной проекции и вида с высоты птичьего полёта (Torchlight[1],, Silent Storm[2]).

Другие примеры игр, использующих косоугольную проекцию: оригинальный SimCity, EarthBound и Paperboy.

История изометрических видеоигр

Хотя в истории компьютерных игр уже в начале 1970-х годов были игры с истинной 3D графикой, первые видеоигры, использующие изометрическую проекцию в значении, описанном выше, появились только в 1980-х и были аркадами.

1980-е годы

Первый случай использования изометрии в видеоиграх — Zaxxon[3][4], выпущенная в январе 1982. Это был изометрический скролл-шутер, в котором игрок управлял самолётом. Так же это был один из первых случаев отображения теней в играх.

Другая ранняя изометрическая игра — Q*bert, которую Уоррен Дэвис и Джефф Ли начали писать в апреле 1982 и выпустили в октябре/ноябре 1982. В игре была представлена статическая пирамида в изометрической проекции, на которую игрок должен был запрыгнуть.

В 1983 году была выпущена изометрическая аркада-платформер Конго-Бонго, работающая на том же оборудовании, что и Zaxxon. Игрок мог перемещаться на больших изометрических уровнях, в том числе подниматься и опускаться по оси Z. То же было возможно и в аркаде Marble Madness 1984 года выпуска.

В это время изометрические игры перестали быть эксклюзивами для аркадных аппаратов и пришли на домашние компьютеры с выпуском Ant Attack для ZX Spectrum в 1983. Игрок мог двигаться в любом направлении, предлагая полную свободу движения, в отличие от Zaxxon. Вид так же мог быть повёрнут на 90 градусов вокруг своей оси. Журнал ZX Crash присудил ей 100 % в области графики[5].

Год спустя на свет появилась новая игра для ZX Spectrum — Knight Lore, которая определила жанр изометрических игр на годы вперёд. Эта игра породила множество клонов для домашних компьютеров. Другие примеры тех лет: Highway Encounter (1985), Batman (1986), Head Over Heels (1987) и La Abadía del Crimen (1987). Изометрия в те годы не ограничивалась только аркадами — существует, например, стратегическая игра Populous 1987 года.

1990-е и после

В течение 1990-х появляются некоторые очень успешные игры, использующие фиксированную изометрическую перспективу, такие как Civilization II, Diablo и Fallout. Но с появлением 3D ускорителей в персональных компьютерах и игровых консолях игры, до этого использовавшие 2D перспективу, стали поворачиваться к 3D. Эту тенденцию можно проследить и в преемниках вышеупомянутых игр: например, Civilization IV и Diablo III используют настоящее 3D. В то время как Diablo II использовала фиксированную перспективу, как и её предшественник, она дополнительно позволяла масштабировать спрайты, чтобы придать себе эффект 3D[6].

В течение 1990-х изометрическая графика начала использоваться в компьютерных ролевых играх, особенно в тактических ролевых играх, многие из которых используют изометрическую графику и поныне. К концу 1990-х такие игры, как Vandal Hearts (1996), Final Fantasy Tactics (1997) и Breath of Fire III (1997), использовали трёхмерную графику для создания изометрического вида, в котором игрок мог свободно вращать камеру.

Сопоставление координат на экране и в пространстве

Сравнение типов графических проекций. Наличие одного или более углов 90° — признак того, что проекция косоугольная.
Поиск координат в изометрическом пространстве

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

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

Другой способ, который требует меньшего объёма вычислений и подходит, если метод вызывается в каждом кадре, основывается на предположении, что мы имеем квадратную сетку, которая была повёрнута на 45 градусов, а затем сжата пополам, как описано выше. Сперва находятся координаты тайла на виртуальной сетке (линии которой параллельны границам экрана), которые мы называем виртуальным x и виртуальным y. Как видно, координаты тайлов виртуальной сетки на центральной оси совпадают с координатами тайлов на центральной оси изометрического пространства.

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

Пример кода на C (при условии, что переменные имеют правильные значения):

float virtualTileX = screenx / virtualTileWidth;
float virtualTileY = screeny / virtualTileHeight;

 // Некоторые системы дисплеев имеют начало координат в левом нижнем углу, а тайл на карте в левом верхнем углу, так что мы должны перевернуть у
float inverseTileY = numberOfTilesInY - virtualTileY;

float isoTileX = inverseTileY + (virtualTileX - numberOfTilesInX / 2);
float isoTileY = inverseTileY - (virtualTileY - numberOfTilesInY / 2);

Тайл на виртуальной сетке будет содержать более чем один изометрический тайл и в зависимости от того, где нажата кнопка мыши, следует сопоставить с соответствующими координатами. Ключевую роль в этом методе является то, что виртуальные координаты — числа с плавающей точкой, а не целые числа. Виртуальный х и у могут быть, например, (3,5, 3,5), что означает центр третьей плитки.

Примечания

  1. McDougall, Jaz Torchlight Review. Games Radar (4 ноября 2009). Дата обращения: 2 февраля 2015. Архивировано 12 апреля 2012 года.
  2. O'Hagan, Steve PC Previews: Silent Storm. ComputerAndVideoGames.com. Future Publishing Limited (7 августа 2008). Дата обращения: 13 декабря 2007. Архивировано 19 февраля 2012 года.
  3. Bernard Perron & Mark J. P. Wolf (2008), Video game theory reader two, p. 158 Архивная копия от 25 февраля 2015 на Wayback Machine, Taylor & Francis, ISBN 0-415-96282-X
  4. Zaxxon (англ.) на сайте Killer List of Videogames
  5. Krikke, J. Axonometry: a matter of perspective (неопр.) // Computer Graphics and Applications. — Institute of Electrical and Electronics Engineers. — Т. 20, № 4. — С. 7—11. — doi:10.1109/38.851742.
  6. "Diablo II Nears Completion As Blizzard Prepares For Final Phase Of Beta Testing". FindArticles. BNET Business Network. Marketwire. 2000–05. Архивировано из оригинала 10 июля 2012. Дата обращения: 29 сентября 2008.{{cite news}}: Википедия:Обслуживание CS1 (формат даты) (ссылка)
Эта страница в последний раз была отредактирована 16 декабря 2023 в 18:34.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).