O que é um ambiente "2.5D"?

31

Não entendo o significado do termo "2.5D". Estou especificamente confuso sobre a diferença entre os ambientes 2.5D e 3D, apesar de ter lido definições e artigos diferentes sobre ambos. Entendo as partes em que 2.5D é como 3D, mas não entendo as partes em que 2.5D é diferente.

Então, o que significa um jogo ser 2.5D? Por exemplo, o jogo é mostrado aqui 2.5D?

Mario

mathieug
fonte
10
Tanto quanto eu sei, é 2.5D quando sprites estão sendo usados ​​para simular uma aparência 3D. Sempre que você tem uma câmera fixa, mas ainda trabalha com geometria 3D, ele ainda é um jogo em 3D. Na captura de tela, parece que Mario é um modelo 3D, de modo que o jogo parece ser 3D completo. É tudo sobre se você está emulando 3D ou renderizando geometria 3D em um pipeline 3D típico.
Grimshaw
@ Grimshaw Então, 2.5D significa que o mecanismo pode ser 2D com modelos 3D, por exemplo? Tenho certeza de que há uma contrapartida se você fizer esse tipo de jogo com mecanismo 2D e também com mecanismo 3D. O que eles são? Custo de desempenho para 3D?
mathieug
4
2.5D significa quase exclusivamente que você está usando imagens 2D (sprites) para renderizar seu mundo, mesmo que pareça um pouco 3D. Verifique jogos isométricos como Clash of Clans para exemplos de jogos 2.5D, totalmente renderizados em 2D, mas parece um jogo em 3D. Quando você começa a colocar no seu mundo os modelos 3D, está se tornando 3D completo e o termo 2.5D não se aplica mais. Isso significa que a câmera não tem relação com a renderização 3D ou não. O 3D não é sobre projeções ou comportamento da câmera, mas sobre geometria.
Grimshaw
Esta questão parece estar fora de tópico, porque se refere aos recursos de um jogo em particular. Uma pergunta perguntando (apenas) qual seria a definição ou o significado do termo "2.5D" (acho que já temos um flutuando por aí), mas perguntando se um jogo em particular não é tem algo a ver com fazer seu jogo; e perguntando se você deve fazer um jogo 2.5D e por que não é objetivo.
Josh
3
@JoshPetrie What? Como adicionar um exemplo de onde seu entendimento leva à ambiguidade impede a pergunta de ser geralmente útil? Nesse caso (onde a questão principal é perfeitamente válida, mas há uma quantidade menor de inchaço causada pelo OP, explicando-se desajeitadamente), a pergunta deve ser deixada em aberto. Se for duplicado, feche-o como duplicado.
precisa

Respostas:

60

Os termos 2D e 3D (como você provavelmente já sabe) se referem ao número de dimensões espaciais em um espaço mundial euclidiano. Essa dimensionalidade deve ser um número ordinal; não existe meia-dimensão ; portanto, o termo 2.5D é realmente um termo sem sentido e não tem significado intrínseco. Dito isto, 2,5 é "algo entre" 2 e 3, então 2,5D geralmente significa algo como "algo entre 2D e 3D".

Pessoalmente, uso o termo para me referir a casos em que os espaços do mundo gráfico e lógico de um jogo têm diferentes dimensionalidades. Em particular, existem duas variantes diferentes aqui:

  • 2D lógico e 3D gráfico . Por exemplo, um jogo de plataformas com mecânica e física de jogos 2D, mas renderizado com malhas 3D e uma câmera de perspectiva. A maioria dos remakes de jogos clássicos de arcade como Pac-Man, Breakout etc. se enquadram nessa categoria. Na foto abaixo: Abacaxi Smash Crew

Abacaxi Smash Crew ocorre em um mundo 2D, mas é renderizado em 3D.

  • 3D lógico e 2D gráfico . Exemplos incluem jogos como Gnomoria ou SimCity 2000, que possuem mundos de jogos 3D, mas são renderizados em uma vista isométrica 2D. Foto abaixo: Xenonauts

Os ataques terrestres aos Xenonautas ocorrem em uma grade 3D, mas são renderizados inteiramente usando sprites 2D.

Outro uso comum do termo (embora não seja o que eu uso) refere-se a jogos que utilizam uma combinação de gráficos 3D e 2D em outdoor . Nesse caso, o termo não descreve a dimensionalidade lógica do jogo. Praticamente todos os jogos 3D usam o billboard de uma maneira ou de outra, incluindo sistemas de partículas, proxies de objetos distantes e sobreposições de interface do usuário no mundo. Portanto, o termo geralmente é usado apenas quando uma porção significativa de objetos que não são de segundo plano usa gráficos 2D, e a borda entre 2.5D e 3D é um pouco embaçada.

bcrist
fonte
17
A propósito, existe uma dimensão fracionária, mas não tem nada a ver com o termo de desenvolvimento de jogos "2.5D"; surge no estudo de fractais e outras formas topológicas estranhas. Por exemplo, a superfície Quadratic Koch (tipo 2) tem uma dimensão de Hausdorff (uma maneira comum de definir a dimensão fractal) de exatamente 2,5.
Lily Chung
9
@IstvanChung Sim, tecnicamente você está certo e pensei em mencioná-lo, mas achei que isso apenas confundiria o problema. Acho que poucos desenvolvedores de jogos precisam saber sobre espaços topológicos fora do espaço euclidiano n-dimensional e, se o fizerem, é provável que compreendam que não estou falando de fractais.
bcrist
1
@Pharap e ... pronto!
bcrist
2
@bcrist Se eu pudesse votar novamente pela segunda vez, então eu vou pedir a alguém para votar em mim com o poder do meu cérebro.
Pharap
2
Eu realmente gosto dessa distinção lógica versus gráfica. Embora a maioria das respostas / comentários aqui pareça assumir que 2.5D significa gráficos 2D, na verdade eu costumo pensar em gráficos 3D. para que o seu vs. lógica distinção gráfica é uma ótima maneira para abranger ambas as noções de 2.5D
jhocking
27

O primeiro jogo que eu sei que teve o termo "2.5D" aplicado foi Doom (embora Wolfenstein 3D se qualifique em algum sentido também).

Wolfenstein 3D era um jogo basicamente em 2D com uma apresentação em 3D. Você navegou em um labirinto 2D, todos os pisos eram planos, todos os tetos tinham a mesma altura, não havia janelas, portas do chão ao teto e abertas lateralmente, e você nunca poderia estar em cima ou embaixo de outro objeto. O jogo usava radiodifusão para descobrir, para cada coluna da tela, a que distância a parede estava naquela direção e que textura a parede tinha; em seguida, uma coluna da textura da parede foi desenhada com uma altura inversamente proporcional à distância, e o espaço acima e abaixo pintado com preenchimento de piso e preenchimento de teto. Inimigos e objetos eram sprites, com um número limitado de aspectos, e seu tamanho novamente proporcional à distância.

Doom usou uma tecnologia muito semelhante à Wolfenstein 3D, mas abusou dela para obter uma experiência mais 3D. Os mapas ainda estavam2D, representado usando o particionamento de espaço binário 2D (portanto, o nome do arquivo do mapa .BSP). O que você viu no automap ao pressionar a guia foi apenas uma renderização 2D direta do mapa. Mas cada setor tinha uma "altura do piso" e uma "altura do teto" independentes, e as bordas tinham texturas nos lados superior e inferior (usadas quando tinham uma altura mais baixa do teto ou uma altura mais alta do que parte do ambiente). Isso permitia escadas, janelas, plataformas, piscinas e outros efeitos - o mecanismo precisava manter uma lista de vários setores passados ​​antes de atingir uma parede e suas respectivas texturas. Mas você ainda não podia ter uma arquitetura 3D real - era possível fazer uma "ponte" através de algum lodo usando uma seção elevada do piso, mas seria impossível que algo estivesse soba Ponte. Uma posição no jogo ainda é apenas X e Y. O único controle que o jogador tem sobre sua altura é cair das coisas, e elevadores, que são simplesmente setores que são roteirizados para alterar a altura do piso. Os inimigos ainda são sprites (embora eu ache que eles tenham mais aspectos), os tiros "apontam automaticamente" em altura porque a detecção de colisão é apenas bidimensional e não havia um modelo 3D no jogo.

Heretic e Hexen usaram motores derivados do Doom que levaram as coisas ainda mais longe, a ponto de serem ocasionalmente chamados de "2.75D"; eles tinham a maioria das mesmas limitações arquitetônicas e inimigos baseados em sprites, mas adicionavam a capacidade de o jogador olhar para cima e para baixo (inclinar a vista, mas apenas até agora ou o motor quebraria) e pular, voar e agachar (mudando de altura independentemente).

hobbs
fonte
1
+1, só ouvi o termo 2.5D quando as pessoas se referiram ao raycasting. Boa explicação!
Ruben
5
+1 esta resposta está correta em relação ao primeiro uso histórico do termo.
R ..
este é o (praticamente) resposta mais correta, não tenho certeza por que não é a primeira ...
Sarge Borsch
Embora essa resposta possa estar historicamente correta, não é o padrão aceito ou a definição esperada do setor. Hoje, qualquer jogo descrito como 2.5D é universalmente entendido como tendo renderização 2D com aparência 3D.
Ted Bigham
Eu acho que o limite de olhar para cima / baixo para jogos como o Heretic se baseava no fato de que as alturas dos objetos eram fatoradas apenas nas coordenadas Y da tela e não nas coordenadas X, e, portanto, todas as linhas verticais de uma cena seriam renderizadas como verticais. Se alguém estiver olhando para cima ou para baixo em um ângulo raso, isso não seria muito perceptível, mas em ângulos mais íngremes seria muito censurável. Eu não acho que ângulos mais íngremes teriam quebrado o motor, mas apenas a ilusão.
supercat 27/02
11

2.5D

Os termos 2.5D ("duas dimensões e meia"), ¾ perspectiva e pseudo-3D ar, principalmente na indústria de videogames, costumavam descrever projeções gráficas 2D e técnicas semelhantes usadas para causar uma série de imagens (ou cenas) para simular a aparência de ser tridimensional (3D) quando na verdade não são, ou jogar em um videogame tridimensional que é restrito a um plano bidimensional.

Na minha experiência, qual definição é enfatizada depende da idade da pessoa com quem você está falando.

  1. Jogadores mais velhos tendem a usar a 1ª definição " projeções gráficas 2D e técnicas semelhantes usadas para causar uma série de imagens (ou cenas) para simular a aparência de serem tridimensionais (3D) quando na verdade não são "

  2. Jogadores mais jovens usam a 2ª definição " jogabilidade em um videogame tridimensional que é restrito a um plano bidimensional ".

Pessoalmente, uso a 2ª definição. Trine, Donkey Kong e Super Mario Bros Wii U seriam todos 2.5D na minha opinião. Além disso, a tag 2.5D Steam usa a segunda definição. Eu acho que este é um bom teste decisivo para como um jogador típico define o conceito) e, como tal , acredito que a 2ª definição seja mais correta .

3D

Qualquer videogame com gráficos de jogos 3D, calculados em 3 dimensões. Observe que isso o torna um superconjunto da segunda definição 2.5D.

ClassicThunder
fonte
Eu achei o Shadow Complex, um jogo de plataformas, um caso muito interessante, porque as interações poderiam acontecer em 3D, até a localização dos inimigos. Mas apontar sua arma para eles envolvia apontar para o ângulo 2D alinhado com o local em que a projeção do 3D os colocava na tela. Então o personagem cuidou de não projetar esse ângulo e apontar a arma para o eixo Z.
Seth Battin
6

2.5D é apenas uma maneira conveniente de dizer 2D que parece 3D.
Suponho que você possa realmente desfocar as linhas da definição se, por exemplo, você usar um mecanismo 3D, mas restringir a jogabilidade apenas a um plano 2D, mas pessoalmente eu consideraria algo 2.5D: parece 3D, mas age em 2D.

DFreeman
fonte
Obrigado. Minha ideia de projeto seria semelhante a 3D, mas ainda estou me perguntando sobre o mecanismo 2D ou 3D e outras coisas. Você pode me dizer mais sobre o 2.5D / 3D orientado para a captura de tela que publiquei?
mathieug
Com medo de não poder ver a captura de tela (bloqueada no trabalho), não posso comentar.
DFreeman 17/10/2014
3

A captura de tela do jogo que você postou é um jogo em 3D.

Em um jogo 3D, os objetos são desenhados usando vértices para desenhar objetos 3D reais, que são coloridos, texturizados etc.

Em um jogo 2D, os objetos são retirados de sprites / folhas de sprite, etc.

A diferença entre os dois é como você pode vê-los. Um sprite é como um pedaço de papel plano. Você não pode vê-lo em um tom ou ângulo diferente ou o sprite será inclinado. Em um objeto 3D, à medida que a câmera se move, é possível ver diferentes partes do objeto porque o objeto é bem 3D.

Em um jogo 2.5D, você está combinando esses dois mundos. Lembre-se, porque você não pode mover a câmera para ver ângulos diferentes, não cria um jogo que não seja 3D. São os objetos que determinam isso.

Um bom exemplo de um jogo 2.5D é o Ragnarok Online. O que o torna 2.5D é que o mundo está principalmente comprometido com objetos 3D. Edifícios, paisagem etc. são objetos 3D texturizados. Você pode girar a câmera aérea e ver lados diferentes desses objetos ao mesmo tempo. Você pode visualizar a parte frontal de um edifício, bem como a área esquerda / direita / telhado. Os jogadores, no entanto, são sprites 2D posicionados para parecer estar em pé. Se você girar a câmera demais, o jogo deverá carregar uma célula diferente da folha de sprite para que esse personagem mude a aparência de sua posição. Você não pode ver ângulos diferentes do personagem porque eles não são 3D. Os ângulos são carregados dinamicamente, dependendo da visão da câmera.

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

Esta é uma folha de sprite do jogo. Se você apenas olhasse para ele, presumiria que é de um jogo 2D. Sozinho, você estaria correto. Mas uma vez colocado no mundo 3D, você tem um jogo 2.5D.

Joe Swindell
fonte
Eu acho que 2.5Dé enganoso, já que é apenas uma interpretação humana etc. não é algo técnico sobre isso. Por exemplo, qual é o seu jogo se você estiver usando a técnica Billboard para tudo (etc. quads texturizados) em um ambiente 3D, se eles rodarem sempre na sua frente? Alguns podem dizer 2.5D, mas a maioria do pacote diz 3D, pois há profundidade Z. Tecnicamente, se ele usa vértices 3D (portanto, dimensão z), é 3D, se usa apenas X / Y (por exemplo, Super Mario Bros ), então é 2D. Mas se ele utiliza apenas 2D (x / y) em um ambiente 3D (incluindo caracteres), ainda é 3D, mas 2,5D por interpretação .
2

O 2.5D é frequentemente outra maneira de dizer "isométrico" - gráficos 2D desenhados de maneira a dar a aparência de 3D, mas na verdade não simulando coordenadas 3D. Veja o artigo da wikipedia sobre gráficos isométricos: http://en.wikipedia.org/wiki/Isometric_graphics_in_video_games_and_pixel_art

O essencial é que em 2.5D / isométrico, você ainda está usando um sistema de coordenadas 2D - com eixos xey apenas para calcular seus gráficos. Seus gráficos podem ser apenas sprites 2D, que normalmente são desenhados de forma que você possa ver três faces e depois colocados na tela usando coordenadas (x, y). Às vezes, os sprites são criados modelando em 3D e criando sprites 2D do modelo 3D a partir de vários ângulos.

Os objetos em movimento caracteristicamente têm apenas alguns ângulos dos quais podem ser visualizados. Se você girar um personagem em uma vista isométrica, ele não girará suavemente, mas você verá vários ângulos distintos, como frente, 3/4, lado e assim por diante. Isso ocorre porque cada ângulo de visão único requer um novo conjunto de sprites.

Os jogos isométricos geralmente suportam apenas um ângulo de câmera, devido às limitações desse tipo de sistema. Outra característica distintiva dos jogos isométricos é que eles normalmente não têm pontos de fuga. Ao visualizar um objeto na vida real, se ele estiver mais perto de você, o objeto parecerá maior em sua visão. Se o objeto estiver mais distante, ele parecerá menor. Em jogos isométricos, todos os objetos geralmente aparecem do mesmo tamanho, não importa onde estejam localizados no espaço.

Em jogos 3D, em comparação, simule todos os três eixos - x, ye z. Em um nível muito baixo, o computador está traduzindo x, ye z para x, y para serem exibidos em um monitor, mas em um nível superior, os artistas estão realmente manipulando pontos em 3 eixos para representar objetos. Como o computador possui todas as informações sobre a forma do objeto, ele pode calcular dinamicamente a aparência desse objeto em qualquer ângulo e pode parecer menor ou maior à medida que você se aproxima.

Alguns jogos são uma mistura de 2.5D e 3D verdadeiro. Um exemplo em que posso pensar é na série Disgaea, que apresenta planos de fundo 3D e sprites 2D.


fonte
2

Não sei qual seria a definição mais aceita, mas eu e o pessoal da empresa anterior consideramos "qualquer jogo que pareça 3D isométrico, mas renderizado por sprites 2D" como 2,5D.

Agora, deixe-me explicar por que fizemos isso. Geralmente, renderizar um mundo 3D com muitos objetos cria muita pressão no processamento, diminuindo a contagem de FPS. Então, para superar isso, geralmente criamos objetos no software de renderização 3D, como o Maya, e os renderizamos como sprites. Qual pode ser usado no jogo. Sem mencionar que o ângulo foi considerado durante a renderização. Para falar sobre essa tecnologia com o editor, normalmente usamos esse termo. Um mundo 3D que parece um mundo 2D ainda é tecnicamente 3D para nós. Portanto, geralmente não usamos o termo para esse método. Eu pensei que deveria compartilhar minha parte aqui.

novato
fonte
1

Normalmente, o termo "2.5-D" refere-se a um dos dois estilos de jogos muito diferentes.

Isso pode significar:

1) Um jogo que usa técnicas de renderização em 2-D, mas controla em 3 dimensões espaciais. Geralmente, usa truques gráficos para aparecer como se realmente fossem renderizados em 3D. Isso foi muito comum nos anos 90, mas não tanto hoje. (Exemplos: "DOOM", "Duke Nukem 3D", "Wolfenstein 3D")

2) Um jogo renderizado inteiramente em 3D, mas que controla exclusivamente ao longo de um ou mais aviões 2D. Esse estilo permanece muito popular até hoje. (Exemplos: "Little Big Planet", "New Super Mario Bros.", "Trials HD")

Uma coisa a ser observada é que, ao usar o padrão de arquitetura model-view-controller, o primeiro estilo de jogo possui um "modelo" que representa dados em 3 dimensões, mas uma "visualização" que somente os exibe para o usuário em 2 dimensões; o segundo estilo de jogo é o contrário.

android927
fonte
0

No 2.5D, você usa técnicas de renderização / ativos 2D para dar a sensação de um ambiente 3D.

Agora, com essa definição, no seguinte cenário potencialmente ambíguo, é necessária alguma elaboração:

Jogo A

Usando gráficos 3D, a GPU acelerou e tudo (os objetos do jogo são malhas, não imagens), com um ângulo fixo da câmera. Vamos piorar ainda mais, a projeção é ortográfica, os clássicos 63,43 graus. A única maneira de perceber à primeira vista que os gráficos não são 2D é porque o 3DGC, exceto que você os processa com extremo cuidado, é facilmente diferenciado dos sprites de desenho à mão, independentemente da projeção usada para renderizá-los. Você pode experimentar diferentes técnicas de renderização, parâmetros, shaders, etc., e terá dificuldade em esconder o fato de que são malhas 3D.

Jogo B

Uma porta do Jogo A, mas com plataformas de segmentação conhecidas por possuir hardware que não lida com gráficos 3D muito bem ou que nem lida com isso. Em seguida, o porto substitui malhas por sprites. Ele ainda usa caixas delimitadoras 3D para colisões, por exemplo, e os objetos têm uma propriedade de posição com valores x, ye z, como a lógica do jogo não foi tocada ou não foi tocada, apenas o código de renderização foi alterado.

Como os sprites do jogo B renderizam os recursos 3D do jogo A e, para tornar as coisas mais ambíguas, o jogo A não faz nada que exija shaders complicados, em 99% de todas as GPUs disponíveis no mercado, não é possível diferenciar um quadro do jogo B de um quadro do jogo A.

No 2.5D, a interação entre objetos do jogo é limitada ao conjunto de situações em que a ilusão do 3D não pode ser comprometida. Para representar dois caracteres que abraçam, por exemplo, você precisará criar um único arquivo de imagem com os dois caracteres interagindo, pois tentar representar a ação de abraço usando apenas uma única imagem por caractere seria muito difícil ou impossível. Talvez você possa vir com um corpo de personagem dividido em partes e desenhá-los na ordem correta. Em 3D, esse problema não existe (existe outro, que está posicionando os dois caracteres corretamente para que eles não penetrem na malha do outro personagem).

Agora, para visualizar isso, imagine que os jogos A e B tenham um bug que, em alguma situação, permite que o personagem do jogador passe por outro objeto do jogo, permitindo diferenciar facilmente entre o 2.5D e o 3D.


No jogo B, 2.5D Render, os sprites são ordenados pelo valor z do seu vetor de posição. Neste exemplo, z positivo está inativo e z negativo está ativo. os eixos z e y são paralelos, mas z é dimensionado por um fator de 0,5 de y. Portanto, se a área visível é de 10 a 10 anos, na mesma área temos de 20 a 20 z. Os objetos com um z maior serão desenhados posteriormente, para que sejam vistos na frente dos objetos com z menor. A sombra do personagem do jogador parece estranha porque as sombras estão em uma camada superior à do piso, mas em uma camada inferior que todos os outros objetos, portanto, a sombra do personagem do jogador nunca fica no topo do cubo.

Renderização 2.5D


Jogo A, 3D Render. O buffer de profundidade (também conhecido como buffer z) é usado para testes de profundidade de precisão de pixels. Assim, um objeto não precisa ocluir completamente outro, nem mesmo um triângulo precisa ocluir completamente outro, temos um teste de profundidade de precisão de pixel. Podemos girar os objetos do jogo de qualquer maneira e ainda obter resultados realistas quando eles interagem.

Renderização 3D

Em resumo: em 2.5D, um sprite está na frente ou atrás de outro sprite. Em 3D, uma malha é feita de triângulos, mas o triângulo não é a unidade mínima ao testar a profundidade, você pode ter precisão de pixel. Obviamente, a rotação da câmera em 2.5D é impossível, pois os recursos foram criados para um ângulo fixo da câmera, enquanto que em 3D é natural, se os ângulos da câmera são restringidos pelo design em um jogo em 3D é outro assunto.


Existem truques diferentes para dar a sensação de estar em um mundo 3D quando você só pode renderizar gráficos 2D. Eu apresentei apenas um exemplo rapidamente criado usando alguns recursos de um projeto abandonado meu.

Por que não usar sempre o 3D sempre e esquecer o 2.5D?

Bem, posso pensar em alguns exemplos de por que um desenvolvedor pode preferir a abordagem 2.5D:

  • Talvez eles não conheçam ou não gostem de APIs 3D (Direct3D, OpenGL, existem outras).
  • Talvez a plataforma de destino não lide bem com gráficos 3D (computadores antigos, consoles 2D).
  • Sua equipe pode fazer sprites incríveis, mas não modelos 3D.

Quanto você pode aproximar os resultados de gráficos 3D usando 2.5D?

Há um horizonte de complexidade de desempenho e programação. Quando você se aproxima desse horizonte, começa a duvidar se o seu projeto é realmente possível no 2.5D ou se você precisa ir para 3D completo. Por exemplo, você pode usar o buffer z em 2.5D (em teoria), mas pode pagar o custo da memória de vídeo (computador desktop antigo com gráficos integrados, dispositivos móveis não potentes)? Deseja pagar o custo de armazenamento de uma imagem extra para salvar a z-mask de cada sprite?

Bons candidatos ao 2.5D são jogos de RPG, acho que a série Baldur's Gate, ou RTS, pensa em Age of Empires 1 e 2 (AoE 3 é totalmente 3D e fácil de diferenciar).

Referências úteis:

Z-Buffering: http://en.wikipedia.org/wiki/Z-buffering

Projeções ortográficas: http://glasnost.itcarlow.ie/~powerk/GeneralGraphicsNotes/projection/orthographicprojection.html

Hatoru Hansou
fonte