Я не понимаю значение термина "2.5D". Меня особенно смущает различие между 2.5D и 3D средами, хотя я читал разные определения и статьи об обоих. Я понимаю части, где 2.5D похож на 3D, но я не понимаю, где 2.5D отличается.
Итак, что значит для игры быть 2.5D? Например, показанная здесь игра 2.5D?
2.5d
terminology
mathieug
источник
источник
Ответы:
Термины 2D и 3D (как вы, вероятно, уже знаете) относятся к числу пространственных измерений в евклидовом мировом пространстве. Эта размерность должна быть порядковым числом; не существует такого понятия, как полуразмерность , поэтому термин 2.5D на самом деле является бессмысленным и не имеет внутреннего значения. Тем не менее, 2.5 "где-то между" 2 и 3, поэтому 2.5D обычно означает что-то вроде "где-то между 2D и 3D".
Лично я использую этот термин для обозначения случаев, когда графические и логические мировые пространства игры имеют разную размерность. В частности, здесь есть два разных варианта:
Другое распространенное использование этого термина (хотя я не использую его) относится к играм, в которых используется комбинация трехмерной графики и двумерной графики с билбордом . В этом случае термин не описывает логическую размерность игры вообще. Практически во всех трехмерных играх так или иначе используется билбординг, включая системы частиц, прокси удаленных объектов и наложения внешнего интерфейса. Поэтому этот термин обычно используется только тогда, когда значительная часть не фоновых объектов использует 2D-графику, а граница между 2.5D и 3D несколько размыта.
источник
Первая известная мне игра, к которой был применен термин «2.5D», была Doom (хотя в некотором смысле и Wolfenstein 3D).
Wolfenstein 3D была в основном 2D-игрой с 3D-презентацией. Вы перемещались по двухмерному лабиринту, все этажи были плоскими, все потолки были на одной высоте, не было окон, двери были от пола до потолка и открывались вбок, и вы никогда не могли находиться сверху или ниже другого объекта. В игре использовались радиопередачи, чтобы определить для каждого столбца экрана, насколько далеко стена была в этом направлении и какую текстуру имела стена; затем столбец текстуры стены был нарисован с высотой, обратно пропорциональной расстоянию, а пространство сверху и снизу окрашено заливкой пола и потолка. Враги и объекты были спрайтами с ограниченным числом аспектов, и их размер снова пропорционален расстоянию.
Doom использовал технологию, очень похожую на Wolfenstein 3D, но использовал ее, чтобы получить больше возможностей 3D. Карты были еще2D, представленный с использованием 2D двоичного разделения пространства (таким образом, имя файла карты .BSP). То, что вы увидели на автомате при нажатии на вкладку, было просто прямым рендерингом карты 2D. Но каждый сектор имел независимую «высоту пола» и «высоту потолка», а края имели текстуры верхней и нижней сторон (использовались, когда они имели более низкую высоту потолка или более высокую высоту пола, чем часть их окружения). Это учитывало лестницы, окна, платформы, пулы и другие эффекты - движок должен был просто сохранять список нескольких пройденных секторов, прежде чем в конце концов ударить по стене, и их соответствующие текстуры. Но вы все еще не могли иметь настоящую трехмерную архитектуру - вы могли бы сделать «мост» через некоторую слизь, используя приподнятый участок пола, но было бы невозможно, чтобы что-то находилось подмост. Позиция в игре по-прежнему только X и Y. Единственный контроль, который игрок имеет над их высотой, это падение вещей и лифты, которые являются просто секторами, которые написаны для изменения высоты их пола. Враги все еще являются спрайтами (хотя я думаю, что у них было больше аспектов), выстрелы «авто-прицеливаются» по высоте, потому что обнаружение столкновений является только двухмерным, и в игре не было найдено 3D-модели.
Еретик и Хексен использовали движки Doom, которые продвинули дела на шаг вперед, до такой степени, что их иногда называли «2.75D»; у них были почти те же архитектурные ограничения и враги, основанные на спрайтах, но они добавили возможность игроку смотреть вверх и вниз (наклонять вид, но только так, иначе двигатель сломается) и прыгать, летать и приседать (изменяя свою высоту самостоятельно).
источник
2.5D
Термины 2.5D («два с половиной измерения»), «перспектива» и «псевдо-3D», главным образом в индустрии видеоигр, используются для описания двухмерных графических проекций и аналогичных методов, используемых для создания серии изображений (или сцены) для имитации внешнего вида трехмерного (3D), когда на самом деле это не так, или игрового процесса в другой трехмерной видеоигре, которая ограничена двухмерной плоскостью.
По моему опыту, какое определение подчеркивается, зависит от возраста человека, с которым вы разговариваете.
Старые игроки склонны использовать 1-е определение « 2D графические проекции и аналогичные методы, используемые, чтобы заставить серию изображений (или сцен) имитировать вид трехмерности (3D), хотя на самом деле это не так »
Младшие геймеры используют второе определение « геймплей в трехмерной видеоигре, которая ограничена двумерной плоскостью ».
Лично я использую 2-е определение. На мой взгляд, Trine, Donkey Kong и Super Mario Bros Wii U будут 2.5D. Кроме того, тег 2.5D Steam использует второе определение. Я полагаю, что это хороший лакмусовый тест на то, как типичный геймер определяет концепцию), и поэтому я считаю, что 2-е определение является более правильным .
3D
Любая видеоигра с трехмерной игровой графикой, рассчитанная в трех измерениях. Обратите внимание, что это делает его супер-набором второго определения 2.5D.
источник
2.5D - это просто удобный способ сказать, что 2D выглядит как 3D.
Я полагаю, что вы могли бы действительно размывать линии определения, если, например, вы используете 3D-движок, но ограничиваете игровой процесс только 2D-плоскостью, но лично я хотел бы рассмотреть что-то 2.5D, если оно выглядит 3D, но действует 2D.
источник
Выложенный вами скриншот игры - 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.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-спрайты.
источник
Я не уверен, что было бы более приемлемым определением, но я и ребята из моей предыдущей компании считали «любую игру, которая выглядит как изометрическое 3D, но рендеринг которой осуществляется через 2D-спрайты», как 2.5D.
Теперь позвольте мне объяснить, почему мы это сделали. Как правило, рендеринг трехмерного мира с большим количеством объектов создает чрезмерную нагрузку на обработку, снижая количество FPS. Поэтому, чтобы преодолеть это, мы обычно создавали объекты в программном обеспечении 3D-рендеринга, таком как Maya, и отображали их как спрайты. Который можно использовать в игре. Не говоря уже о том, что угол был учтен при рендеринге. Чтобы говорить об этой технологии с издателем, мы обычно использовали этот термин. 3D-мир, который выглядит так, будто это 2D-мир, все еще технически 3D для нас. Таким образом, мы обычно не использовали термин для этого метода. Я думал, что я должен поделиться своим мнением здесь.
источник
Обычно термин «2.5-D» относится к одному из двух очень разных стилей игр.
Это может означать:
1) Игра, в которой используются методы рендеринга 2-D, но элементы управления в 3-х пространственных измерениях. Обычно использует графические трюки, чтобы они выглядели так, как будто они были визуализированы в 3D. Это было очень распространено в 90-х, но не так много сегодня. (Примеры: «DOOM», «Duke Nukem 3D», «Wolfenstein 3D»)
2) Игра, отображаемая полностью в 3D, но контролирующая исключительно одну или несколько 2D плоскостей. Этот стиль остается очень популярным по сей день. (Примеры: «Маленькая Большая Планета», «Новые Супер Марио Бразерс», «Испытания HD»)
Следует отметить, что при использовании архитектурного паттерна модель-представление-контроллер первый стиль игры имеет «модель», которая представляет данные в 3 измерениях, но «представление», которое отображает их пользователю только в 2 измерениях; второй стиль игры - наоборот.
источник
В 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. Тень персонажа игрока выглядит странно, потому что тени находятся в более высоком слое, чем пол, но в более низком слое, чем все другие объекты, поэтому тень персонажа игрока никогда не находится сверху куба.
Игра А, 3D визуализация. Буфер глубины (также известный как z-буфер) используется для проверки глубины пиксельной точности. Таким образом, объект не должен полностью перекрывать другой, даже треугольник не должен полностью перекрывать другой, у нас есть тест глубины пиксельной точности. Мы можем вращать игровые объекты любым способом и все же получать реалистичные результаты, когда они взаимодействуют.
В резюме: в 2.5D спрайт находится либо впереди, либо позади другого спрайта. В 3D сетка состоит из треугольников, но треугольник не является минимальной единицей при тестировании на глубину, вы можете иметь пиксельную точность. Конечно, поворот камеры в 2,5D невозможен, поскольку объекты были созданы для фиксированного угла камеры, в то время как в 3D это естественно, если углы камеры ограничены дизайном в 3D-игре, это другая тема.
Существуют разные приемы, которые дают ощущение того, что вы находитесь в трехмерном мире, когда вы можете визуализировать только 2D-графику, я представил только быстро созданный пример, используя некоторые ресурсы заброшенного моего проекта.
Почему бы не использовать 3D всегда и не забыть о 2.5D?
Ну, я могу подумать на некоторых примерах, почему разработчик может предпочесть подход 2.5D:
Насколько вы можете приблизить результаты 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
источник