AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de...

31
AreaPortal Visibility By Filami

Transcript of AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de...

Page 1: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

AreaPortal Visibility

By Filami

Page 2: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 3: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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”.

Page 4: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

Como contruir um cenáriocom 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;

Page 5: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

Como contruir um cenáriocom 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.

Page 6: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

Como contruir um cenáriocom AreaPortals? (cont.)

À “Cage” são então adicionados novos modelos que serão identificados como portais e que irão ligar as diferentes áreas.

Page 7: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

DEMO

Page 8: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 9: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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 pode-se ver um exemplo de um pequeno cenário em 2D dividido numa BSP.

Page 10: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 11: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 12: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

DEMO

Page 13: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 14: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

Cálculo das Áreas (Cont.)

Page 15: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 16: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 17: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

DEMO

Page 18: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 19: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 20: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

DEMO

Page 21: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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?

Page 22: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 23: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

DEMO

Page 24: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 25: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 26: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

Prey (cont.)

Page 27: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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

Page 28: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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

Page 29: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

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.

Page 30: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.

??

??

?

??

?

?

?

Page 31: AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.