areaportal visibility by filami. objectivos por em prática técnicas de determinação de...

31
AreaPortal Visibility By Filami

Upload: internet

Post on 18-Apr-2015

107 views

Category:

Documents


4 download

TRANSCRIPT

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