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

Термин «изометрия» в компьютерных играх относится к тому или иному виду параллельной проекции (иногда диметрическую проекцию ошибочно называют «изометрической»).

Угол обзора в ней смещён, и это создаёт эффект трёхмерности и позволяет показать некоторые детали окружения, которые не видны при виде сверху или виде сбоку. Также используются термины «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,, Silent Storm).

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

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

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

1980-е годы

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

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

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

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

Год спустя на свет появилась новая игра для 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.

В течение 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), что означает центр третьей плитки.

Примечания

Tags:

Изометрическая Графика В Компьютерных Играх ОбзорИзометрическая Графика В Компьютерных Играх История изометрических видеоигрИзометрическая Графика В Компьютерных Играх Сопоставление координат на экране и в пространствеИзометрическая Графика В Компьютерных Играх ПримечанияИзометрическая Графика В Компьютерных ИграхИзометрическая проекция

🔥 Trending searches on Wiki Русский:

Доммараджу, ГукешСвифт, ТейлорАфрикаМосковский зоопаркСала, ЭмилианоЗимний дворецКиви (фрукт)Транссибирская магистральЧехов, Антон ПавловичМоцарт, Вольфганг АмадейAppleПевчих, Мария КонстантиновнаФишер (сериал)Ельцин, Борис НиколаевичКэтрин, принцесса УэльскаяМесси, ЛионельСписок серийных убийц по количеству жертвЛеопард-2КуколдБродский, Иосиф АлександровичМухаммедИзраильПодносова, Ирина ЛеонидовнаYouTube MusicАвстрияРеволюция 1905—1907 годов в РоссииСпециальная военная операцияПотанин, Владимир ОлеговичМаковецкий, Сергей ВасильевичТеракт в «Крокус Сити Холле»Действительный государственный советник Российской Федерации 1-го классаФинляндияАлиев, Гейдар Алирза оглыБи-2Половой член человекаСольский, Николай ТарасовичБунин, Иван АлексеевичНиколсон, ДжекБолезнь ЛаймаКубок ГагаринаОперация «Барбаросса»Гибель тургруппы ДятловаМосковский государственный университетСписок иностранных агентов (Россия)Посттравматическое стрессовое расстройствоКадыров, Ахмат АбдулхамидовичРипли (сериал)Поплавская, Яна ЕвгеньевнаЧехияКейдж, НиколасЕкатерина IАльфа-банкКазиноТаджикистанСписок руководителей СССРБДСМСтоун, ЭммаГерманова, Евдокия АлексеевнаИнгерманландияНациональный состав РоссииТелец (знак зодиака)Гослинг, РайанАнальный сексКончаловский, Андрей СергеевичПётр IАфганистанЦветаева, Марина ИвановнаДи Каприо, ЛеонардоУчи.руМорпехи (фильм)Пакьяо, МэнниAliExpressЮMoneyСиндром дефицита внимания и гиперактивностиПрилучный, Павел ВалерьевичАмериканская история ужасовFalloutНасвайПапины дочки🡆 More