For faster navigation, this Iframe is preloading the Wikiwand page for Участник:Theonic-L/Изометрия в компьютерных играх.

Участник:Theonic-L/Изометрия в компьютерных играх

Материал из Википедии — свободной энциклопедии

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

Так же используются термины "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-х и были аркадами.

Первый случай использования изометрии в видеоиграх - Sega 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. В то время как Диабло II использовала фиксированную перспективу, как и ее предшественник, она дополнительно позволяла масштабировать спрайты, чтобы придать себе эффект 3D[6].

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

Сравнение типов графических проекций. Наличие одного или более уголов 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 - (virtualTileX - numberOfTilesInX / 2);

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

Примечания

[править | править код]
  1. McDougall, Jaz Torchlight Review. Games Radar (4 ноября 2009).
  2. O'Hagan, Steve PC Previews: Silent Storm. ComputerAndVideoGames.com. Future Publishing Limited (7 августа 2008). Дата обращения: 13 декабря 2007.
  3. Bernard Perron & Mark J. P. Wolf (2008), Video game theory reader two, p. 158, Taylor & Francis, ISBN 0-415-96282-X
  4. Zaxxon (англ.) на сайте Killer List of Videogames
  5. Krikke, J. (Jul–August 2000). "Axonometry: a matter of perspective". Computer Graphics and Applications. 20 (4). IEEE: 7—11. doi:10.1109/38.851742. ((cite journal)): Проверьте значение даты: |date= (справка)
  6. "Diablo II Nears Completion As Blizzard Prepares For Final Phase Of Beta Testing". FindArticles. BNET Business Network. Marketwire. May 2000. Дата обращения: 29 сентября 2008.  (недоступная ссылка)
{{bottomLinkPreText}} {{bottomLinkText}}
Участник:Theonic-L/Изометрия в компьютерных играх
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?