Modelagem Para Jogos | Modelagem 3D | Imagem
Modelagem Para Jogos
salvarSalvar Modelagem Para Jogos para ler mais tarde
Bricking: Modelagem Tridimensional de Cen arios de Jogos em Camadas
Raul Joaquim C. dos Santos
rauljcs@gmail.com
selan@dimap.ufrn.br
Departamento de Inform atica e Matem atica Aplicada Universidade Federal do Rio Grande do Norte Campus Lagoa Nova, 59072-970, Natal/RN
Figura 1: Screenshot do jogo Pathnder, desenvolvido com a modelagem por bricking. Em (a) temos a identica c ao dos bricks que comp oem a cena. Em (b) temos a representa c ao correspondente texturizada dos bricks. Finalmente em (c) e poss vel observar o efeito nal, com ilumina c ao e neblina.
In this paper we introduce a practical and simple method for three-dimensional (3D) game level design, based on an extension of the tile modelling concept. The method, called bricking, preserves the main features of tiling, such as simplicity and low memory requirements. The main advantages of this proposal is a greater power of modelling since it is possible to dene more than one layer of tiles, thus allowing complex structures to be subdivided and treated as individual units, called bricks. Dierently from what happens in typical pseudo-3D games based on tile modelling, the players movements are not restricted to a single plane thereby allowing players to have a true 3D experience. To test our proposal, we present a rst-person style game whose levels were modelled with bricking, and discuss the results from this experience. Este artigo apresenta um m etodo pr atico e simples de construir modelos de cen arios de jogos para ambientes tridimensionais, baseado em uma extens ao do conceito de modelagem atrav es de tiles. O m etodo proposto, denominado de bricking, mantem as principais caracter sticas do m etodo tiling, como simplicidade de manipula c ao e economia de mem oria, com o benef cio de uma maior poder de representa c ao e deslocamento n ao mais limitado a um u nico plano. Como forma de valida c ao parcial da proposta, apresentamos um jogo modelado com a t ecnica bricking e analisamos esta experi encia. Keywords: Modelagem 3D, cen arios de jogos, tiles, detec c ao de colis ao.
c ao do pipeline de renderiza c ao [Akenine-M oller et al. 2008, Cap. 14]. A constru c ao de cen arios pode ser uma tarefa complexa, mas existe uma diversidade de m etodos que auxiliam este processo, diferindo em complexidade de implementa c ao, leque de opera c oes suportadas e demanda de processamento [Eberly 2006]. Tiling e um exemplo de t ecnica de representa c ao de cen ario, cujas maiores qualidades s ao simplicidade de representa c ao, uso otimizado de mem oria e boa velocidade de renderiza c ao [LaMothe 2001]. Esta t ecnica, utilizada em jogos mais antigos, possibilita a cria c ao de cen arios dividindo a imagem da cena em uma grade regular os elementos repetidos da grade s ao carregados apenas uma u nica vez e replicados nos demais locais. Apesar de originalmente bidimensional (2D), a t ecnica tiling foi adaptada com sucesso para a tridimensionalidade (3D), como no caso do cl assico t tulo Wolfenstein 3D [id Software 2009b], dando origem ao conceito de representa c ao 2.5D ou pseudo-3D. Neste caso, o mapeamento continua 2D, mas cada tile e representado por uma malha 3D ou poliedro, possivelmente texturizado. Apesar de ser capaz de simular um ambiente tridimensional, o conceito de 2.5D possui uma limita c ao referente ao tratamento de colis ao: cada tile do ambiente cont em um u nico objeto, o qual e tratado de maneira at omica. Desta maneira, se um determinado tile e denido como s olido n ao e poss vel transp o-lo, mesmo que sua representa c ao gr aca seja a de uma janela aberta ou um obst aculo baixo, como um caixa. Portanto, o problema da utiliza c ao de tiles para modelar cen arios 3D reside no fato de que, se o tile for composto por v arias partes, n ao e poss vel tratar cada uma delas independentemente. Para resolver o problema acima citado, propomos uma extens ao da modelagem por tiles, denominada bricking, que preservas as caracter sticas originais de simplicidade de representa c ao e uso reduzido de mem oria pra recursos gr acos. Bricking e organizado em N camadas de tiles, com suporte para a opera c ao de tratamento de colis ao e e capaz de oferecer uma representa c ao verdadeiramente 3D, superando as limita c oes das representa c oes 2.5D. A Figura 1 apresenta screenshots de um jogo desenvolvido com esta nova t ecnica.
Atualmente existem v arias metodologias para a cria c ao de jogos, que dividem o processo de desenvolvimento em v arias etapas. Uma das etapas da cria c ao de um jogo e a de modelagem ou representa c ao do cen ario. Um dos objetivos da modelagem de cen arios e dar suporte ` a est oria do jogo eletr onico e prender a aten c ao dos usu arios, desta forma promovendo um maior engajamento. Al em de prover a ambienta c ao para o desenrolar do jogo, a modelagem de cen arios pode auxiliar testes de colis ao e determina c ao de visibilidade para otimiza-
Nesta se c ao descrevemos em mais detalhes alguns conceitos relacionados ` a proposta ora apresentada, como a t ecnica de tiling e detec c ao de colis ao.
personagem e o tile em contato. Se o tile em quest ao for transit avel o deslocamento prossegue normalmente; caso contr ario e indicada a colis ao, independentemente da representa c ao 3D associada ao tile. A estrat egia de tratamento de colis ao acima descrita pode gerar situa c oes inconsistentes com a expectativa dos jogadores e a pr opria realidade representada no jogo eletr onico. Por exemplo, um jogador normalmente espera ser capaz de passar por cima de um obst aculo baixo como uma caixa ou passar pela abertura de uma grande janela, ao se dirigir a tais obst aculos. Contudo, se o tile que cont em o obst aculo fosse denido como intransit avel esse comportamento n ao seria poss vel, uma vez que n ao h a tratamento de colis ao por renamento (ou narrow phase ) dentro do tile. Desta maneira, o jogador n ao conseguiria transpor o obst aculo, mesmo que visualmente isso parecesse ser poss vel. A motiva c ao para a t ecnica de representa c ao de cen ario proposta neste trabalho e justamente solucionar este problema e ainda conservar as vantagens da representa c ao de cen arios por tiling. Pode-se armar que os requisitos que nortearam o design da solu c ao proposta foram os seguintes: Suportar a colis ao a n vel de descarte; Utilizar algoritmos de manipula c ao simples; Prover um m etodo com economia de mem oria, uma vez que os componentes seria carregados uma u nica vez e reutilizados quando necess arios; Oferecer uma estrutura de dados de simples representa c ao e manipula c ao; e Proporcionar uma maior capacidade de representa c ao de objetos do que o m etodo tradicional de pseudo-3D, uma vez que n ao estar amos mais restritos a um u nico plano de navega c ao e representa c ao de objetos.
Representa c ao de cen ario
O objetivo de tiling e a cria c ao de cen arios de forma simples e com economia de mem oria. Um cen ario modelado por tiles e formado por um conjunto de pequenas imagens que juntas geram a imagem desejada da cena [Pa 2009]. Em linhas gerais, divide-se uma imagem correspondente ao cen ario em partes menores, como pequenos azulejos; depois todas as guras distintas que foram formadas s ao separadas. Em seguida, rotula-se cada gura diferente, posicionando-as de maneira a reconstruir a imagem original. A economia de mem oria e processamento vem do fato de que n ao e mais necess ario carregar de uma vez toda a imagem de fundo do cen ario. Basta carregar apenas as imagens (menores) correspondentes aos tiles distintos entre si e replic a-los onde necess ario. A Figura 2 exemplica como acontece a divis ao e a (re)utiliza c ao de tiles.
Modelagem Bricking
Figura 2: Em (a) temos a representa c ao do mapa de tiles associado a um cen ario. A imagem (b) exibe a cria c ao de um cen ario utilizando as imagens do mapa de tiles.
Tratamento de colis ao
Com a utiliza c ao de uma grade regular para denir os tiles, e poss vel determinar a posi c ao individual de cada tile. Na modelagem de um cen ario de jogo e importante denir que determinados tipos de tile n ao podem ser penetrados por objetos que podem se movimentar dentro do ambiente. Portanto, a detec c ao da colis ao ocorre quando a area ocupada por um objeto intersecta os limites da regi ao do tile (ou conjunto de tiles ) denido como intransit avel e que, portanto, n ao pode ser ocupada. Esse mesmo mecanismo simples de detec c ao de colis ao e usado em jogos 2.5D. A representa c ao em 2.5D ou pseudo3D combina uma representa c ao 2D ou mapa de tiles com elementos renderizados em 3D. Exemplos de varia c oes desta ideia s ao: i) personagens 2D atuando em frente a um cen ario de fundo em 3D, como e o caso do Street Fighter IV [Capcom 2009]; ii) personagens poligonais 3D sobre uma plano de fundo bidimensional, como e o caso de Ragnarok Online [Gravity Co. and Myoungjin 2005]; ou iii) um jogo com representa c ao completa em 3D (via sprites e pol gonos texturizados), mas com deslocamento restrito a um u nico plano, como e o caso de t tulos como DOOM da Id Software [id software 2009a] e Duke Nukem 3D da 3D Realms [Realms 2009]. Apesar do cen ario ser renderizado em tr es dimens oes, o controle de colis ao realiza apenas a fase de descarte ou broad phase [Ericson 2005] entre a posi c ao atual da c amera ou
O modelo de representa c ao de cen ario por bricking tem como objetivo estender a t ecnica de representa c ao por mapa de tiles de maneira a suportar mais de uma plano de representa c ao. A regi ao de modelagem associada com o cen ario e organizada em N camadas, de acordo com a necessidade de representatividade para elementos do cen ario. As camadas seguem o conceito de tiling e s ao organizadas em grades regulares independentes umas das outras. Uma vez denidas, as camadas s ao dispostas em alturas diferentes formando uma pilha de camadas sobrepostas. Objetos podem ser inseridos em qualquer coordenada, (x,y ), em uma dada camada i, denindo desta maneira um brick, B(x,y),i . A estrutura de dados b asica usada para representa c ao por bricking e uma matriz tridimensional. A primeira dimens ao da matriz indica a quantidade de camadas; as outras duas dimens oes indicam as coordenadas Cartesianas (x,y ) de um brick dentro do plano denido por uma camada. Por exemplo, uma matriz 3 4 5 ter a tr es camadas, e cada uma delas formada por um plano que cont em bricks distribu dos em uma matriz 4 5, conforme ilustrado na Figura 3. Assim, em uma matriz M [c][i][j ] o valor c corresponde ` a camada do cen ario, os valores de i e j correspondem ` as coordenadas do objeto contido na camada c, em um ambiente tridimensional. Al em da matriz de representa c ao, e necess ario denir uma lista L de conjuntos de coordenadas de bricks que correspondem a um mesmo identicador. O objetivo desta lista e otimizar o processo de renderiza c ao, pois ao inv es de percorrer a matriz de maneira sequencial trocando de contexto cada vez que um brick diferente fosse acessado, renderiza-se todos os bricks que compartilham o mesmo contexto (i.e. textura, geometria, etc.), minimizando overhead associado com tal troca. A t ecnica proporciona a cria c ao de um modelo de cen ario com os objetos da cena identicados por bricks. Tendo isto em vista, a modelagem do cen ario deve ser feita determinando as dimens oes de um brick de forma a conter o maior
Figura 3: Representa c ao esquem atica de uma matriz correspondente a um cen ario com 3 camadas, organizadas em uma grade de 4 5 bricks. Os n umeros que aparecem dentro de cada brick s ao seus identicadores, ou seja, brick com o mesmo identicador signicam objetos iguais.
objeto a ser representado no modelo, para que nenhum outro objeto do modelo ultrapasse as dimens oes do brick. A opera c ao de detec c ao de colis ao da t ecnica e feita apenas em broad phase. Desta forma, o teste de colis ao ser a feito diretamente com os bricks identicados como intransit aveis na cena. A detec c ao de colis ao em narrow phase, feita diretamente com o objeto contido no brick, ainda n ao e suportado pela t ecnica.
Economia de mem oria
Em rela c ao ao custo de mem oria, a t ecnica mant em as caracter sticas de tiles : os bricks que possuem a mesma identica c ao representam os mesmos objetos renderizados nas suas coordenadas correspondentes. Como os objetos s ao os mesmos, as texturas que forem aplicadas nestes objetos tamb em ser ao as mesmas e, desta forma, s o necessitar ao ser carregadas uma u nica vez e aplicadas em todos os objetos de mesma identica c ao. A modelagem de cen arios por bricking poder a ser utilizada para subdividir partes maiores de um cen ario. Por exemplo, paredes de um cen ario podem ser divididas em v arios tijolos menores. Desta maneira, basta carregar apenas as imagens correspondentes ` as partes contidas nos bricks distintos que formam a parede e replic a-los onde for necess ario.
Figura 4: Exemplo de um cen ario modelado por bricking, sendo constitu do de 4 camadas de mesma altura. Linhas foram sobrepostas ` a imagem para demonstrar a localiza c ao das camadas e suas subdivis oes em bricks.
Poder de representa c ao
Essa organiza c ao permite uma maior capacidade de representa c ao. Por exemplo, a Figura 4-(a) apresenta uma imagem de um cen ario modelado por bricking, por em utilizando apenas 1 camada isso seria equivalente ao modelagem por tiles. Na imagem e poss vel notar que existe uma estrutura (em segundo plano, no centro da imagem) correspondente a uma coluna. Na Figura 4-(b), temos o mesmo cen ario, desta vez organizado em 4 camadas de mesma altura. A antiga estrutura de coluna agora e representada com apenas 2 bricks, uma na camada superior e outro na inferior. Desta forma, se o personagem possuir uma altura de apenas 2 bricks, seria poss vel passar por dentro da coluna subindo no brick inferior. Note que esta a c ao n ao seria poss vel com a modelagem por tiles, pois a coluna ocuparia um u nico tile e seria denida como intransit avel, mesmo que sua representa c ao visual fosse a exibida na Figura 4-(b). utilizando-se um editor de texto simples para a deni c ao da matriz de componentes e seus recursos. A lista de conjunto de bricks id enticos tamb em foi gerada manualmente. O cen ario cont em objetos como caixas, muros e paredes texturizados, colocados em diferentes posi c oes no ambiente. Apresenta efeitos de neblina e de ilumina c ao, de maneira a dar suporte ao enredo do jogo.
Em Pathnding o jogador deve percorrer o cen ario para coletar itens, em uma corrida contra o tempo. O cen ario e relativamente complexo, contendo v arios corredores, aberturas, obst aculos, colunas e entradas na forma de portas, janelas, e t uneis esta u ltima modalidade requer que o usu ario se abaixe e rasteje para atravessar. Al em das vias de acesso, o cen ario possui diversas caixas, espalhadas e empilhadas, todas modeladas como um u nico brick. Especicamente, foram utilizadas 4 camadas de mesma altura para modelar o cen ario.
Para testar o funcionamento da t ecnica de bricking, um jogo de navega c ao em primeira pessoa foi desenvolvido, denominado de Pathnder [dos Santos 2009]. O jogo foi desenvolvido na linguagem C++, utilizando a biblioteca GLUT [Martz 2006]. A modelagem do cen ario de jogo foi realizada com bricking,
O tratamento de colis ao foi implementado realizando um teste para vericar se o jogador est a tentando se mover para
uma regi ao que foi determinada como intransit avel. Em caso armativo, o jogador e impedido de entrar nesta regi ao. Caso contr ario, o jogador poder a transitar livremente sobre esta area. O protagonista possui largura inferior a um brick e altura inferior a 2 bricks. Portanto e poss vel passar por qualquer area livre igual ou maior do que 1 2 bricks, inclusive buracos nas paredes, plataformas ou janelas. A Figura 5 apresenta um screenshot do jogo.
Akenine-M oller, T., Haines, E., and Hoffman, N. 2008. Real-Time Rendering, 3rd ed. A K Peters, Ltd., Wellesley, MA, USA. Capcom, 2009. Street Fighter IV. http://www.capcom.com/ streetfighter/, acessado em julho 2009. dos Santos, R. J. C., 2009. Pathnder. http://rauljcs. jimdo.com/arquivos-ufrn/computacao-grafica/ pathfinder/, acessado em julho 2009. Eberly, D. H. 2006. 3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics, second ed. The Morgan Kaufmann Series in Interactive 3D Technology Game Architecture and Design. Morgan Kaufmann. Ericson, C. 2005. Real-Time Collision Detection. The Morgan Kaufmann Series in Interactive 3-D Technology. Morgan Kaufmann. Gravity Co., and Myoungjin, L., 2005. Ragnarok online. http://www.ragnarokonline.com/, acessado em julho 2009. id software, 2009. DooM. http://www.idsoftware.com, acessado em maio 2009. id Software, 2009. Wolfenstein 3D. http://www. idsoftware.com/games/wolfenstein/wolf3d/, acessado em julho 2009. LaMothe, A. 2001. Isometric Game Programming with DirectX 7.0. Premier Press Game Development (Software). Muska & Lipman/Premier-Trade. Martz, P. 2006. OpenGL(R) Distilled, rst ed. AddisonWesley Professional. Pa, T., 2009. Tile based games. http://www.tonypa.pri. ee/tbw/, acessado em julho 2009. Realms, D., 2009. Duke Nukem 3D. 3drealms.com, acessado em julho 2009. http://www.
Figura 5: Screenshot do Pathnder, exibindo o cen ario modelado por bricks, e a interface com usu ario (lado direito), que exibe o mapa do ambiente, a localiza c ao da chave e o tempo restante.
Conclus ao e Trabalhos Futuros
Bricking e uma t ecnica de modelagem com o objetivo de prover uma forma simples de criar cen arios de jogos visualmente atrativos e com baixo custo de mem oria. A forma de construir um modelo por bricking e simples, pois trata-se de uma extens ao tridimensional do modelo de tiles, representada por uma matriz tridimensional. Al em disso, jogos desenvolvidos com esta t ecnica ser ao capazes de realizar opera c oes de detec c ao de colis ao em alto n vel (broad phase ). Em compara c ao com jogos desenvolvidos em 2.5D, especialmente os que s ao desenvolvidos em 2D para simular um ambiente tridimensional, nossa proposta traz benef cios em rela c ao ` a detec c ao de colis ao. O uso de bricks permite que a detec c ao de colis ao seja realizada com objetos em diferentes alturas individualmente, possibilitando um comportamento mais compat vel com uma tridimensionalidade real. Contudo, a t ecnica ora proposta possui limita c ao de representa c ao, determinada pelo tamanho dos bricks. Quanto maior o volume de um brick, menor ser a a precis ao na detec c ao de colis ao, caso o objeto associado ao brick n ao ocupe todo o volume. Os pr oximos passos para o presente trabalho s ao: Adaptar a t ecnica de maneira a suportar a determina c ao de visibilidade. A meta e otimizar o pipeline de renderiza c ao, por exemplo, enviando apenas os bricks vis veis a partir da localiza c ao atual da c amera ou personagem. Denir um modelo descritivo de cena modelada por bricking, de maneira que seja poss vel desenvolver plugins para carregamento de cena em motores de jogos. Criar um editor de cen arios interativo com suporte ` a bricking. Neste editor ser a poss vel denir o tamanho do modelo, escolher o n umero de camadas e bricks por camadas, denir os r otulos onde car ao cada objeto da cena e gerar a lista representando a ordem de renderiza c ao dos objetos que comp oem a cena.