Что такое «2.5D» среда?

31

Я не понимаю значение термина "2.5D". Меня особенно смущает различие между 2.5D и 3D средами, хотя я читал разные определения и статьи об обоих. Я понимаю части, где 2.5D похож на 3D, но я не понимаю, где 2.5D отличается.

Итак, что значит для игры быть 2.5D? Например, показанная здесь игра 2.5D?

Марио

mathieug
источник
10
Насколько я знаю, его 2.5D, когда спрайты используются для имитации трехмерного вида. Всякий раз, когда у вас есть стационарная камера, но вы все еще работаете с трехмерной геометрией, она все равно остается трехмерной игрой. На скриншоте видно, что Марио - это 3D-модель, поэтому игра кажется полностью трехмерной. Все зависит от того, эмулируете ли вы 3D или фактически визуализируете 3D геометрию в типичном 3D конвейере.
Гримшоу
@Grimshaw Итак, 2.5D означает, что двигатель может быть 2D с 3D-моделями, например? Я уверен, что есть аналог, если вы сделаете такую ​​игру с 2D движком, а также с 3D движком. Кто они такие? Производительность стоит для 3D?
mathieug
4
2.5D означает почти исключительно, что вы используете 2D-изображения (спрайты) для визуализации своего мира, даже если он выглядит как 3D. Посмотрите в изометрических играх, таких как Clash of Clans, примеры игр 2.5D, полностью рендеринга в 2D, но они действительно похожи на 3D-игру. Когда вы начинаете вставлять в свой мир 3D-модели, вы переходите на полноценное 3D, и термин 2.5D больше не применяется. Это означает, что камера не имеет никакого отношения к тому, рендерит ли ты 3D. 3D - это не проекции или поведение камеры, а геометрия.
Гримшоу
Этот вопрос кажется не по теме, потому что он касается особенностей конкретной игры. Вопрос, спрашивающий (только), какое определение или значение термина «2.5D» было бы уместно (хотя я чувствую, что у нас уже есть этот термин), но спрашивающий, не является ли это конкретной игрой иметь какое-либо отношение к созданию вашей игры; и спрашивать, стоит ли делать игру 2.5D и почему это не объективно.
Джош
3
@JoshPetrie Что? Как добавление примера того, где его понимание приводит к двусмысленности, не дает этому вопросу быть в целом полезным? В этом случае (когда основной вопрос совершенно верен, но существует небольшое раздувание, вызванное довольно неуклюжим объяснением ОП), этот вопрос следует оставить открытым. Если его дубликат, закройте его как дубликат.
ClassicThunder

Ответы:

60

Термины 2D и 3D (как вы, вероятно, уже знаете) относятся к числу пространственных измерений в евклидовом мировом пространстве. Эта размерность должна быть порядковым числом; не существует такого понятия, как полуразмерность , поэтому термин 2.5D на самом деле является бессмысленным и не имеет внутреннего значения. Тем не менее, 2.5 "где-то между" 2 и 3, поэтому 2.5D обычно означает что-то вроде "где-то между 2D и 3D".

Лично я использую этот термин для обозначения случаев, когда графические и логические мировые пространства игры имеют разную размерность. В частности, здесь есть два разных варианта:

  • 2D логическая и 3D графическая . Например, платформер с 2D игровой механикой и физикой, но визуализированный с 3D сетками и перспективной камерой. Большинство римейков классических аркадных игр, таких как Pac-Man, Breakout и т. Д., Попадают в эту категорию. Изображенный ниже: Ананас Smash Crew

Ананас Smash Crew происходит в 2D мире, но он представлен в 3D.

  • 3D логика и 2D графика . Примерами могут служить такие игры, как Gnomoria или SimCity 2000, которые имеют трехмерные игровые миры, но отображаются в 2D-изометрической проекции. На фото ниже: ксенонавты

Наземные атаки ксенонавтов происходят на трехмерной сетке, но она полностью отрисовывается с использованием 2D-спрайтов.

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

bcrist
источник
17
Кстати, есть такая вещь, как дробное измерение, но оно не имеет ничего общего с термином разработки игр «2.5D»; он подходит для изучения фракталов и других странных топологических форм. Например, квадратичная поверхность Коха (тип 2) имеет хаусдорфову размерность (общий способ определения фрактальной размерности) ровно 2,5.
Лили Чунг
9
@IstvanChung Да, технически вы правы, и я подумал упомянуть об этом, но подумал, что это только запутает проблему. Я думаю, что немногие разработчики игр должны знать о топологических пространствах за пределами n-мерного евклидова пространства, и если они это сделают, вероятно, они понимают, что я не говорю о фракталах.
Рождество
1
@ Фарап и ... готово!
bcrist
2
@bcrist Если бы я мог поднять голос во второй раз, то я бы просто попросил кого-то поднять голос за меня силой моего мозга.
Pharap
2
Мне действительно нравится это логическое и графическое различие. Хотя большинство ответов / комментариев здесь, кажется, предполагают, что 2.5D означает 2D-графику, я на самом деле склонен думать о 3D-графике. так что ваше логическое и графическое различие - отличный способ охватить оба понятия 2.5D
jhocking
27

Первая известная мне игра, к которой был применен термин «2.5D», была Doom (хотя в некотором смысле и Wolfenstein 3D).

Wolfenstein 3D была в основном 2D-игрой с 3D-презентацией. Вы перемещались по двухмерному лабиринту, все этажи были плоскими, все потолки были на одной высоте, не было окон, двери были от пола до потолка и открывались вбок, и вы никогда не могли находиться сверху или ниже другого объекта. В игре использовались радиопередачи, чтобы определить для каждого столбца экрана, насколько далеко стена была в этом направлении и какую текстуру имела стена; затем столбец текстуры стены был нарисован с высотой, обратно пропорциональной расстоянию, а пространство сверху и снизу окрашено заливкой пола и потолка. Враги и объекты были спрайтами с ограниченным числом аспектов, и их размер снова пропорционален расстоянию.

Doom использовал технологию, очень похожую на Wolfenstein 3D, но использовал ее, чтобы получить больше возможностей 3D. Карты были еще2D, представленный с использованием 2D двоичного разделения пространства (таким образом, имя файла карты .BSP). То, что вы увидели на автомате при нажатии на вкладку, было просто прямым рендерингом карты 2D. Но каждый сектор имел независимую «высоту пола» и «высоту потолка», а края имели текстуры верхней и нижней сторон (использовались, когда они имели более низкую высоту потолка или более высокую высоту пола, чем часть их окружения). Это учитывало лестницы, окна, платформы, пулы и другие эффекты - движок должен был просто сохранять список нескольких пройденных секторов, прежде чем в конце концов ударить по стене, и их соответствующие текстуры. Но вы все еще не могли иметь настоящую трехмерную архитектуру - вы могли бы сделать «мост» через некоторую слизь, используя приподнятый участок пола, но было бы невозможно, чтобы что-то находилось подмост. Позиция в игре по-прежнему только X и Y. Единственный контроль, который игрок имеет над их высотой, это падение вещей и лифты, которые являются просто секторами, которые написаны для изменения высоты их пола. Враги все еще являются спрайтами (хотя я думаю, что у них было больше аспектов), выстрелы «авто-прицеливаются» по высоте, потому что обнаружение столкновений является только двухмерным, и в игре не было найдено 3D-модели.

Еретик и Хексен использовали движки Doom, которые продвинули дела на шаг вперед, до такой степени, что их иногда называли «2.75D»; у них были почти те же архитектурные ограничения и враги, основанные на спрайтах, но они добавили возможность игроку смотреть вверх и вниз (наклонять вид, но только так, иначе двигатель сломается) и прыгать, летать и приседать (изменяя свою высоту самостоятельно).

Hobbs
источник
1
+1, я только слышал термин 2.5D, когда люди ссылались на радиовещание. Хорошее объяснение!
Рубен
5
+1 этот ответ правильный в отношении первого исторического употребления термина.
R ..
это самый (практически) правильный ответ, не уверен, почему это не первый ...
Sarge Borsch
Хотя этот ответ может быть исторически правильным, он не является принятым или ожидаемым определением отраслевого стандарта. Сегодня под любой игрой, описанной как 2.5D, подразумевается двухмерный рендеринг с трехмерным внешним видом.
Тед Бигхам
Я думаю, что ограничение на просмотр вверх / вниз для игр, подобных Еретику, основывалось на том факте, что высота объектов учитывалась только в координатах экрана Y, а не в координатах X, и, таким образом, все вертикальные линии в сцене будут отображаться как вертикальные. Если смотреть под небольшим углом вверх или вниз, это было бы не слишком заметно, но при более крутых углах это было бы очень неприятно. Я не думаю, что более крутые углы сломали бы двигатель, но только иллюзия.
суперкат
11

2.5D

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

По моему опыту, какое определение подчеркивается, зависит от возраста человека, с которым вы разговариваете.

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

  2. Младшие геймеры используют второе определение « геймплей в трехмерной видеоигре, которая ограничена двумерной плоскостью ».

Лично я использую 2-е определение. На мой взгляд, Trine, Donkey Kong и Super Mario Bros Wii U будут 2.5D. Кроме того, тег 2.5D Steam использует второе определение. Я полагаю, что это хороший лакмусовый тест на то, как типичный геймер определяет концепцию), и поэтому я считаю, что 2-е определение является более правильным .

3D

Любая видеоигра с трехмерной игровой графикой, рассчитанная в трех измерениях. Обратите внимание, что это делает его супер-набором второго определения 2.5D.

ClassicThunder
источник
Я нашел платформер Shadow Complex очень интересным случаем, потому что взаимодействия могут происходить в 3D, даже при обнаружении врагов. Но нацеливание вашего пистолета на них включало указание на 2D-угол, который совпал с тем, где проекция из 3D поместила их на экран. Затем персонаж позаботился о том, чтобы спроецировать этот угол и направить оружие на ось Z.
Сет Бэттин,
6

2.5D - это просто удобный способ сказать, что 2D выглядит как 3D.
Я полагаю, что вы могли бы действительно размывать линии определения, если, например, вы используете 3D-движок, но ограничиваете игровой процесс только 2D-плоскостью, но лично я хотел бы рассмотреть что-то 2.5D, если оно выглядит 3D, но действует 2D.

DFreeman
источник
Спасибо. Моя идея проекта выглядела бы как 3D, но я все еще задаюсь вопросом о 2D или 3D движке и прочем. Можете ли вы рассказать мне больше о 2.5D / 3D, ориентированном на скриншот, который я разместил?
mathieug
Боюсь, я не вижу скриншот (заблокирован на работе), поэтому я не могу комментировать.
DFreeman
3

Выложенный вами скриншот игры - 3D-игра.

В трехмерной игре объекты рисуются с использованием вершин для рисования реальных трехмерных объектов, которые затем окрашиваются, текстурируются и так далее.

В 2D игре объекты берутся из спрайтов / листов спрайтов и т. Д.

Разница между ними заключается в том, как вы можете их просматривать. Спрайт похож на плоский лист бумаги. Вы не можете просматривать его под другим углом или углом, иначе спрайт будет перекошен. На 3D-объекте, когда камера движется, вы можете видеть различные части объекта, потому что объект, в общем, 3D.

В 2.5D игре вы объединяете оба этих мира. Имейте в виду, просто потому, что вы не можете двигать камеру, чтобы увидеть разные ракурсы, это не делает игру не трехмерной. Это объекты, которые в нем определяют это.

Хорошим примером 2.5D-игры является Ragnarok Online. Что делает его 2.5D, так это то, что мир в основном состоит из 3D-объектов. Здания, ландшафт и т. Д. Представляют собой текстурированные трехмерные объекты. Вы можете вращать верхнюю камеру и видеть разные стороны этих объектов одновременно. Вы можете увидеть лицевую сторону здания, а также левую / правую / крышную зону. Игроки, однако, являются двухмерными спрайтами, которые расположены так, чтобы казаться стоящими вверх. Если вы поворачиваете камеру слишком сильно, игра должна загрузить другую ячейку листа спрайта, чтобы этот персонаж изменил свой внешний вид. Вы не можете просматривать различные углы персонажа, потому что они не 3D. Углы нагружаются динамически в зависимости от вида камеры.

http://sprites.technoized.com/images/sprite/ro/gm_m.png

Это спрайт из игры. Если бы вы просто смотрели на это, вы бы предположили, что это из 2D-игры. В одиночку ты был бы прав. Но как только он окажется в трехмерном мире, у вас будет 2.5D игра.

Джо Суинделл
источник
Я думаю, что 2.5Dвводит в заблуждение, поскольку это просто человеческая интерпретация и т. Д., А не что-то техническое в этом. Например, какая у вас игра, если вы используете технику Billboard для всего (и т.д. текстурированных четырехугольников) в трехмерной среде, если они вращаются всегда перед вами? Некоторые могут сказать 2.5D, но большая часть пакета скажет 3D, поскольку есть Z-глубина. Технически, если он использует трехмерные вершины (таким образом, z-размерность), это 3D, если он использует только X / Y (скажем, Super Mario bros ), то это 2D. Но если он использует только 2D (x / y) в трехмерной среде (включая персонажа), то это все равно 3D, но 2.5D по интерпретации .
2

2.5D - это еще один способ сказать «изометрия» - 2D-графика, нарисованная таким образом, чтобы создать вид 3D, но не имитирует 3D-координаты. Смотрите статью в википедии об изометрической графике: http://en.wikipedia.org/wiki/Isometric_graphics_in_video_games_and_pixel_art

Суть в том, что в 2.5D / изометрии вы все еще используете 2D систему координат - с осями X и Y только для расчета вашей графики. Ваша графика может быть просто 2D-спрайтами, которые обычно нарисованы так, что вы можете видеть три грани, а затем размещены на экране, используя (x, y) координаты. Иногда спрайты даже создаются путем моделирования в 3D, а затем создания 2D-спрайтов 3D-модели под несколькими углами.

Характерно, что движущиеся объекты имеют только несколько углов, с которых они могут быть просмотрены. Если вы вращаете символ в изометрической проекции, он не будет плавно вращаться, но вы увидите несколько различных углов, таких как фронт, 3/4, сторона и т. Д. Это потому, что каждый уникальный угол обзора требует совершенно нового набора спрайтов.

Изометрические игры обычно поддерживают только один угол камеры из-за ограничений системы этого типа. Еще одной отличительной чертой изометрических игр является то, что они обычно не имеют точек схождения. При просмотре объекта в реальной жизни, если объект находится ближе к вам, объект будет выглядеть больше в вашем видении. Если объект находится дальше, он будет казаться меньше. В изометрических играх все объекты обычно имеют одинаковый размер, независимо от того, где они находятся в пространстве.

Для сравнения 3D-игры симулируют все 3 оси - x, y и z. На очень низком уровне компьютер переводит x, y и z в x, y для отображения на мониторе, но на более высоком уровне художники фактически манипулируют точками на 3 осях для представления объектов. Поскольку компьютер обладает всей информацией о форме объекта, он может динамически вычислять, как этот объект выглядит под любым углом, и он может казаться меньше или больше, когда вы приближаетесь или удаляетесь от него.

Некоторые игры представляют собой смесь 2.5D и настоящего 3D. В качестве примера можно привести серию Disgaea, в которой представлены 3D-фоны и 2D-спрайты.


источник
2

Я не уверен, что было бы более приемлемым определением, но я и ребята из моей предыдущей компании считали «любую игру, которая выглядит как изометрическое 3D, но рендеринг которой осуществляется через 2D-спрайты», как 2.5D.

Теперь позвольте мне объяснить, почему мы это сделали. Как правило, рендеринг трехмерного мира с большим количеством объектов создает чрезмерную нагрузку на обработку, снижая количество FPS. Поэтому, чтобы преодолеть это, мы обычно создавали объекты в программном обеспечении 3D-рендеринга, таком как Maya, и отображали их как спрайты. Который можно использовать в игре. Не говоря уже о том, что угол был учтен при рендеринге. Чтобы говорить об этой технологии с издателем, мы обычно использовали этот термин. 3D-мир, который выглядит так, будто это 2D-мир, все еще технически 3D для нас. Таким образом, мы обычно не использовали термин для этого метода. Я думал, что я должен поделиться своим мнением здесь.

новичок
источник
1

Обычно термин «2.5-D» относится к одному из двух очень разных стилей игр.

Это может означать:

1) Игра, в которой используются методы рендеринга 2-D, но элементы управления в 3-х пространственных измерениях. Обычно использует графические трюки, чтобы они выглядели так, как будто они были визуализированы в 3D. Это было очень распространено в 90-х, но не так много сегодня. (Примеры: «DOOM», «Duke Nukem 3D», «Wolfenstein 3D»)

2) Игра, отображаемая полностью в 3D, но контролирующая исключительно одну или несколько 2D плоскостей. Этот стиль остается очень популярным по сей день. (Примеры: «Маленькая Большая Планета», «Новые Супер Марио Бразерс», «Испытания HD»)

Следует отметить, что при использовании архитектурного паттерна модель-представление-контроллер первый стиль игры имеет «модель», которая представляет данные в 3 измерениях, но «представление», которое отображает их пользователю только в 2 измерениях; второй стиль игры - наоборот.

android927
источник
0

В 2.5D вы используете 2D активы / методы рендеринга, чтобы создать ощущение трехмерной среды.

Теперь, с этим определением, в следующем потенциально неоднозначном сценарии требуется некоторая разработка:

Игра А

Используя трехмерную графику, GPU ускоряется и все (игровые объекты - это меши, а не изображения), с фиксированным углом камеры. Позволяет сделать еще хуже, проекция ортогональна, классическая 63,43 градуса. Единственный способ заметить, на первый взгляд, что графика не 2D, это то, что 3DGC, за исключением того, что вы рендерите их с особой тщательностью, легко отличить от спрайтов рисования вручную, независимо от проекции, используемой для их рендеринга. Вы можете экспериментировать с различными методами рендеринга, параметрами, шейдерами и т. Д., И вам будет трудно скрыть тот факт, что они являются трехмерными сетками.

Игра Б

Порт Игры A, но предназначенный для платформ, которые, как известно, имеют оборудование, которое не очень хорошо справляется с 3D-графикой или вообще не справляется с этим. Затем порт заменяет сетки спрайтами. Например, он все еще использует трехмерные ограничивающие рамки для столкновений, и объекты имеют свойство position со значениями x, y и z, поскольку игровая логика в основном не затрагивалась или не затрагивалась, только код рендеринга был изменен.

Поскольку спрайты Игры B представляют собой 3D-ресурсы Игры A, и, чтобы сделать вещи более двусмысленными, Игра A не делает ничего, требующего сложных шейдеров, в 99% всех графических процессоров вы не можете отличить кадр от Игры. B кадра из игры А.

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

Теперь, чтобы визуализировать это, представьте, что в играх A и B есть ошибка, которая в некоторых ситуациях позволяет игровому персонажу проходить через другой игровой объект, что позволяет нам легко различать 2.5D и 3D.


Игра B, 2.5D Render, спрайты упорядочены по значению z его вектора положения. В этом примере положительное z вниз, а отрицательное z вверх. Ось z и ось y параллельны, но z масштабируется в 0,5 раза от y. Таким образом, если видимая область составляет от 10 до -10, то в той же области мы имеем от 20 до -20. Объекты с большим z будут нарисованы последними, поэтому они будут рассматриваться как находящиеся перед объектами с более низким z. Тень персонажа игрока выглядит странно, потому что тени находятся в более высоком слое, чем пол, но в более низком слое, чем все другие объекты, поэтому тень персонажа игрока никогда не находится сверху куба.

2.5D Render


Игра А, 3D визуализация. Буфер глубины (также известный как z-буфер) используется для проверки глубины пиксельной точности. Таким образом, объект не должен полностью перекрывать другой, даже треугольник не должен полностью перекрывать другой, у нас есть тест глубины пиксельной точности. Мы можем вращать игровые объекты любым способом и все же получать реалистичные результаты, когда они взаимодействуют.

3D визуализация

В резюме: в 2.5D спрайт находится либо впереди, либо позади другого спрайта. В 3D сетка состоит из треугольников, но треугольник не является минимальной единицей при тестировании на глубину, вы можете иметь пиксельную точность. Конечно, поворот камеры в 2,5D невозможен, поскольку объекты были созданы для фиксированного угла камеры, в то время как в 3D это естественно, если углы камеры ограничены дизайном в 3D-игре, это другая тема.


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

Почему бы не использовать 3D всегда и не забыть о 2.5D?

Ну, я могу подумать на некоторых примерах, почему разработчик может предпочесть подход 2.5D:

  • Может быть, они не знают или не любят 3D API (Direct3D, OpenGL, есть и другие).
  • Возможно, целевая платформа плохо справляется с 3D-графикой (старые настольные компьютеры, 2D-консоли).
  • Ваша команда может создавать удивительные спрайты, но не 3D-модели.

Насколько вы можете приблизить результаты 3D-графики с помощью 2.5D?

Существует горизонт производительности и сложности программирования. Когда вы приближаетесь к этому горизонту, вы начинаете сомневаться в том, что ваш проект действительно возможен в 2.5D или вам нужно перейти в полное 3D. Например, вы можете использовать z-буферизацию в 2.5D (теоретически), но можете ли вы оплатить стоимость видеопамяти (старый настольный компьютер с встроенной графикой, а не мощные мобильные устройства)? Хотите ли вы оплатить стоимость хранения дополнительного изображения, чтобы сохранить z-маску каждого спрайта?

Хорошими кандидатами на 2.5D являются RPG-игры, полагают, что серия Baldur's Gate, или RTS, считает Age of Empires 1 и 2 (AoE 3 полностью 3D и легко дифференцируется).

Полезные ссылки:

Z-буферизация: http://en.wikipedia.org/wiki/Z-buffering

Ортогональные проекции: http://glasnost.itcarlow.ie/~powerk/GeneralGraphicsNotes/projection/orthographicprojection.html

Хатору Ханьсу
источник