AreaPortal Visibility
By Filami
Objectivos



Por em prática técnicas de determinação de
visibilidades usando AreaPortals;
Desenvolver uma aplicação experimental
com o intuito de mostrar uma técnica de
determinação de visibilidades para cenários
de interiores;
Desenvolver “Know How” para futuras
aplicações em jogos estilo Doom3 ou Unreal
Tournement.
O que são AreaPortals?



Uma técnica que permite separar um cenário
em diferentes áreas interligadas por portais;
Permite a determinação de visibilidades dos
objectos contidos de forma rápida e eficiente;
Muito eficaz para cenários de interiores, ricos
em salas, corredores e correspondentes
“portas”.
Como contruir um cenário
com AreaPortals?


Todos os cenários são
constituidos por vários
objectos que adicionam
detalhe e ambiente ao
cenário;
Este cenário é inadequado
à contrução das estruturas
de dados, contem
demasiados pequenos
detalhes e será difícil
identificar as áreas;
Como contruir um cenário
com AreaPortals? (cont.)


O cenário é então
separado em 2 tipos de
objectos:
 A “Cage” contendo
apenas as “paredes”,
“tectos” e “chãos”;
 “Static Meshes” com o
resto dos detalhes;
Na imagem ao lado,
apenas a “Cage” é
mostrada no mesmo ponto
de vista da imagem
anterior.
Como contruir um cenário
com AreaPortals? (cont.)

À “Cage” são então
adicionados novos modelos
que serão identificados
como portais e que irão
ligar as diferentes áreas.
DEMO
Construção

Depois de lido o cenário do disco, este terá
de ser preparado:



Deverão ser calculadas as áeras que constituem
o cenário;
Deverão ser calculados os portais e respetivas
ligações às áreas;
Será, no entanto, necessário primeiro
subdividir o cenário original em volumes
convexos.
Binary Space Partition (BSP)



O BSP permite a divisão da
“Cage” em volumes
convexos;
Um BSP é uma árvore
computacional binária cujo
divisor são planos
tridimensionais;
Na imagem ao lado podese ver um exemplo de um
pequeno cenário em 2D
dividido numa BSP.
Binary Space Partition (Cont.)



Como foi possivel
constatar, o BSP tende a
cortar alguns triangulos do
cenário;
Estes cortes devem ser
minimizados e isso é
possivel graças ao
deselvolvimento de uma
heuristica de sub-divisão
que minimiza os cortes
sem sacrificar
balanceamento da árvore;
As imagens ao lado
demonstram os cortes
efectuados pela aplicação.
Binary Space Partition (Cont.)



Ao lado está então
representada a àrvore
computacional contruída
a partir do actual
cenário de teste;
Os pontos azuis são os
nós contendo os planos
de corte;
Os rectangulos são as
folhas da árvore
contendo o número de
faces da “Cage”
associados a essa
mesma folha.
DEMO
Cálculo das Áreas


Após dividir o cenário em volumes convexos,
é então possível determinar onde ficam as
áreas do mesmo cenário;
As áreas são computadas através de
raytracing;



Entre cada par de folhas, são traçados um certo
número de raios aleatórios;
Se algum destes raios não for ocludido, as duas
folhas têm de fazer parte da mesma área;
Os portais não deixam passar os raios.
Cálculo das Áreas (Cont.)
Cálculo das Áreas (Cont.)



Para alem de ocludirem os raios, os portais
também os usam para determinar que áreas
é que o portal interliga;
Quanto um portal recebe um raio vindo de
uma folha que já pertence a uma área, este
portal guarda essa área e a mesma áera é
notificada de que aquele portal está no seu
interior;
Os portais conhecem as suas áreas e as
áreas conhecem os seus portais.
Cálculo das Áreas (Cont.)


Os portais também são
simplicados;
A geometria destes são
aproximadas a rectangulos
que, no futuro, simplificarão
o sistema de determinação
de visibilidades.
DEMO
Aplicação

Depois de computadas as estruturas de
dados necessárias, é então possivel, a partir
de um determinado ponto de vista, identificar
quais as áreas e folhas da árvore que são
potencialmente visiveis.
Como se usam os portais?


É calculado um tronco
(frustum) a partir de
um ponto de vista;
esse tronco é usado
para determinar quais
os objectos
potencialmente
visiveis;
Os portais cortam os
troncos de visão; desta
forma, os troncos não
são capazes de
observar através das
paredes.
DEMO
E os detalhes?

Agora que já foram identificadas as áreas do
cenário e que já é possivel determinar quais
as áreas potencialmente visiveis para um
determinado ponto de vista, como é que se
volta a adicionar os detalhes do cenário
original?
E os detalhes? (Cont.)


Cada detalhe do cenário é representado por
uma malha poligonal e cada malha poligonal
contem um volume envolvente em forma de
caixa (Bounding Box). Esta caixa pode ser
inserida, através da ajuda da BSP, numa
folha (e correspondente área);
Depois de inserida na cena, a malha
poligonal pode então usar a esturtura
subjacente de AreaPortal para determinar se
potencialmente visivel para um determinado
ponto de vista.
DEMO
Onde são estas técnicas já
usadas?



Muitos jogos hoje em dia usam AreaPortals,
ou técnicas semelhantes, para acelerar o
desenho dos seus cenários de interiores;
Um exemplo concreto é o Doom3, que usa
técnicas muitos semelhantes às aqui
apresentadas tanto para contrução do
cenário como determinação de visibilidades;
O Unreal Engine também é um motor muito
eficaz para cenários interiores e, também ele
usa algumas das técnicas apresentadas para
visualização e outras.
Prey



Prey é um jogo da
autoria da
3DRealms que usa
o mesmo motor de
jogo desenvolvido
para o Doom3;
Usa o sistema de
visualização usado
no motor original;
Estas imagens
foram tiradas da
demo jogavel do
jogo e mostram os
portais em
funcionamento.
Prey (cont.)
Unreal Engine

Numa artigo escrito por Lee Perry para a Game Developer Magazine,
lead level designer da Epic Games, é possivel notar quer este engine
usa também o conceito de “Cage” e detail meshes:
“Cage” usado para BSP e
criado usando CSG
(Constructuve Solid
Geometry)
Adição de “Static Meshes”
adicionando detalhes
importantes ao cenário.
http://udn.epicgames.com/Three/rsrc/Three/ModularLevelDesign/ModularLevelDesign.pdf
Unreal Engine (cont.)

Os seguintes websites do UDN também
explicam em mais algum detalhe as técnicas
usadas neste motor para o desenvolvimento
dos cenários:


http://udn.epicgames.com/Two/IntroToUnrealEd.html
http://udn.epicgames.com/Two/LevelOptimization.html
Trabalho Futuro...


Criar uma ferramenta de leitura e compilação
de cenários para ser integrada numa
workflow artisitica e editores de níveis;
Desenvolver CSG (Contructive Solid
Geometry) para a criação das “Cages”
facilitando o trabalho dos artistas.
?
?
?
?
? ?
?
?
?
?
Download

Cálculo das Áreas (Cont.)