UMA ARQUITETURA PARA A VISUALIZAÇÃO DISTRIBUÍDA DE...

Preview:

Citation preview

UMA ARQUITETURA PARA A VISUALIZAÇÃODISTRIBUÍDA DE AMBIENTES VIRTUAIS

ALEXANDRE G. FERREIRA

Defesa de Dissertação de Mestrado

PUC-RIODepartamento de Informática

TeCGraf

DEZEMBRO 1999

Objetivos

“Apresentar uma arquitetura que permita o desenvolvimentode sistemas para a visualização, de forma a alargar o

canal de recursos de interação no sentidomáquina homem.”

Visualização por múltiplos dispositivos

q Visão panorâmica do ambiente virtualq Sensação de imersão para um ou mais usuários

Imersão

q A percepção do usuário é removida domundo real e voltada para o mundo virtual.

q Requisitosð integrar o uso da tecnologia com fatores humanos

ð minimizar distrações

ð maximizar os atributos que realcem a atenção do usuário

ð adequar o conteúdo ao interesse do usuário

Aplicações

q Educação e Treinamento

q Militares

q Visualização científica

q Entretenimento

q Processo produtivo e industrial

q Medicina

Trabalhos relacionados

q NPSNET - Naval Postgraduate School

q DIVE (Distributed Interactive Virtual Environment) -Swedish Institute of Computer Science

q PARADISE (Performance Architecture for AdvancedDistributed Interactive Simulation Environments) -Stanford University

q AVIARY - University of Nottingham

q MR Toolkit - University of Alberta

Ambiente virtual

É um teatro na qual determinados aspectosdo mundo real são simulados

²Descrição

²Visualização

²Visualização centralizada vs distribuída

Ambiente virtual: Descrição

q Cenário

ðEntidadesð Iluminação

ðFog, …

Entidades

²Descrição Geométrica

²Aparência

²Comportamento

²Hierarquia

Qualquer maneira para descrever a forma de umaentidade.

ð Estáticað Dinâmica

Ambiente virtual: Descrição geométrica

Arquivo: T80.3DS

Podem ser adotadastécnicas de múltiplos

níveis de detalhes

É constituída dos atributos que, em conjunto com adescrição geométrica, são processados para se obteruma imagem da entidade.

ð Cor opacað Materialð Texturasð …

Também pode ser

ð Estática

ð Dinâmica

Ambiente virtual: Aparência

Arquivo: T80left.tif(textura)

Arquivo:T80top.tif (textura)

Podem ser adotadastécnicas de múltiplos níveisde detalhes para texturas

(mipmapping)

Conjunto de mudanças que qualquer atributo dasentidades pode sofrer no decorrer do tempo

q Duas categorias

ð DeterminísticosSeu estado pode ser tratado como uma função do tempoEx. Física cinemática, oscilatória, etc.

ð Não-determinísticosSeu estado é imprevisívelEx. Ações humanas

Ambiente virtual: Comportamento

Ex. Rumo: 45º NW Velocidade: 525 Km/h Coordenadas: (25.3,22.5,503.5) Instante: 10s

q Nível 0 - A cada quadro o valor de todos os atributos são definidosEx.: A entidade VEÍCULO se encontra na posição {x, y, z}

q Nível 1 - Estabelece a forma como os atributos são modificados no tempoEx.: A entidade VEÍCULO está na posição {x, y, z} com velocidade de 10m/s na direção 250o NW

q Nível 2 - Instrui a realização de uma tarefa, geralmente constituída por um conjunto de instruções de nível 1Ex.: Siga com a entidade VEÍCULO para a base mais próxima

q Nível 3 - Instrui a entidade para tomar uma decisão de alto nível, geralmente constituída por comportamentos de nível 2Ex.: Decida entre atacar o inimigo ou recuar para a base mais próxima.

Ambiente virtual: Comportamento (ROEHL)

q Permite a construção de entidades elaboradascom comportamentos complexos

Ambiente virtual: Hierarquia

Ambiente virtual: Visualização

Mapeamento do ambiente real noambiente virtual

w

nh

dispositivo devisualização

w

h

near far

canvas

Ambiente Real Ambiente Virtual

Usuário Observador

CanvasDispositivo de visualização

Visualização: Abordagens

q Centralizada

q Distribuída

Simulação

Simulação eRendering

Rendering

Rendering

Rendering

Centralizada

q Suporte em Hardware 4

ðSincronismoðBom desempenho

q Custo elevado 6

q Escalabilidade limitada 6

Distribuída

q Sincronismo por software 6

q Portabilidade 4

q Baixo custo 4

qMaior escalabilidade 4

Visualização distribuída

Requisitos e desafios

ðManutenção da consistência

ðSincronismo

ðHeterogeneidade

ðEscalabilidade

ðPortabilidade

Visualização distribuída

Manutenção da consistência

Consiste na manutenção do estado dinâmico compartilhado dasentidades

ð Propagação permanente (a cada quadro)

ð Predição e convergência (quando ocorrem alterações no comportamento)

ð Combinação dos dois métodos

Visualização distribuída

Predição e convergênciaBaseada na técnica de dead reckoning (usada no protocolo DIS - IEEE standard)

ð Instruções contêm um campo com o instante em que a alteração ocorreu

ð Cada unidade de visualização projeta o comportamento

Estado dinâmico real

t=1

t=2

t=3

t=4

Modificação nocomportamento

Atualização ainda não chegou da rede.

Atualização chega com atraso (latência)

Estado dinâmico visualizado

O sistema se atualizapara a nova posiçãoe trajetória

t=3+dt

Convergência

t=4Segue na novatrajetória

t=3+dt

Salta imediatamente paraa posição atualizada

Estado dinâmico real Estado dinâmico visualizado

t=4

t=3+dt

ponto deconvergência

Segue uma trajetórialinear

ponto deconvergência

Ao encontrar umponto deconvergência, seguea nova trajetória

Estado dinâmico real Estado dinâmico visualizado

t=4

t=3+dt

ponto deconvergência

ponto deconvergência

Segue uma trajetóriacurvilinea suave

Ao encontrar umponto deconvergência, seguea nova trajetória

Estado dinâmico real Estado dinâmico visualizado

Visualização distribuída

SincronismoRequisito fundamental

Para manter uma frame-rate de 30 fps é necessário que a variação na precisão do

sincronismo seja inferior a 33ms

Heterogeneidadeð Nivelar desempenho ao mínimo denominador comum

ð Utilizar o máximo de recursos de cada unidade

Fps = 5 Fps = 30t

Visualização distribuída

EscalabilidadeRecursos limitados

ð poder de processamento de cada unidade

ð velocidade da rede

ð comportamentos não-determinísticos

PortabilidadeRecomendável

ð Diferentes plataformas de software e hardware

ð Facilidade de instalação, configuração e utilização

ð Amplo suporte a drivers de dispositivos

ð Variedade de formatos de entrada de dados

Arquitetura proposta

Mundo Externo

q Responsável por manter o estado dinâmicocorrente do ambiente virtual

q Pode assumir diversos papéisð entrada e saída de dadosð roteiro de animaçãoð sistema de monitoramentoð simulaçãoð ...

Infra-estrutura de comunicação

q CORBA (ORBacus)

ð Confiabilidadeð Portabilidadeð Independência de linguagem de programaçãoð Padrão difundidoð Interface abstrata de alto nívelð Acesso uniforme a objetos locais e remotos

Proxy

Módulo Cliente

CORBA

Objeto Servidor

CORBARede

Aplicação 1 - Máquina 1 Aplicação 2 - Máquina 2

Infra-estrutura de comunicação

q LuaOrbð Une facilidades de CORBA com flexibilidade de Luað Facilita o desenvolvimento e manutençãoð Não degrada o desempenho

Objeto n

Objeto n

CORBA

Protocolo de Rede

Protocolo CORBA (IIOP)

LUAORB

CORBA

LUAORB

Rede

Aplicação 1 - Máquina 1

Protocolo de Rede

Protocolo CORBA (IIOP)

..

.

Objeto 1

Objeto 2 ..

.

Objeto 1

Objeto 2

Aplicação 2 - Máquina 2

INFRA-ESTRUTURA DE COMUNICAÇÃO

..

.

..

.

Prox

y

Prox

y

Prox

y

Prox

y

Prox

y

Prox

y

..

.

..

.

Prox

y

Prox

y

Prox

y

Prox

y

Prox

y

Prox

y

Infra-estrutura de comunicação

q Sincronismo dos relógios

ð NTP (Network Time Protocol)Indicado para WANs

ð SNTP (Simple Network Time Protocol)Indicado para LANs

Alcançam sincronismo com variações na precisão da ordem de alguns milisegundos

Pode requerer re-sincronismos constantes em função daimprecisão de cada relógio de cada unidade do sistema

Mediador

q Realiza a integração entre o Mundo Externo e o Núcleo doSistemað Estabelece o relógio de simulação em todas as unidades de visualização

ð Mantem o registro das unidades de visualização e entidades

ð Traduz as mensagens provenientes do mundo externo

q Possibilita maior reuso do sistema

Módulo de Acoplamento

MEDIADOR DO SISTEMA

Interface com oMundo Externo

Interface com onúcleo do sitema

Módulo de Coordenação

Controle do relógio virtual

Controle do registro de entidades eunidades de visualização

Fluxo de dadosoriundos do Mundo

Externo

Adaptação dos dados

Fluxo de dados decontrole de todasas Unidades deVisualização doque compõem onúcleo do sistema

Elementos que potencialmente sãomodificados quando o Mundo

Externo for alterado

Unidades de Visualização (UV)

q Máquinas que rodam independentemente

ð Controlam um dispositivo de visualização

ð Fazem o rendering a partir de determinado ponto de vista

ð Baseam-se somente no sicronismo entre os relógios dasdiversas unidades

ð Não existe nenhuma comunicação entre elas

ð Mantêm uma cópia local do estado dinâmicocompartilhado

Unidades de Visualização (UV)

Inicializaçãoð Ligação com o Mediadorð Sincronização do relógioð Configuração da superfície de visualizaçãoð Carga da modelagem inicial do ambiente virtual

Modelagem doambiente virtual

Mediador doSistema

InicializaçãoAltualização do

estado dinâmico narede

Cálculo do estadodinâmico corrente

Processamentográfico de umnovo quadro

Unidades de Visualização (UV)

Atualização do estado dinâmico

ð Feita através dos proxies existentes no Mediador, quepermitem o acesso aos métodos dos objetos locais

Modelagem doambiente virtual

Mediador doSistema

InicializaçãoAltualização do

estado dinâmico narede

Cálculo do estadodinâmico corrente

Processamentográfico de umnovo quadro

Unidades de Visualização (UV)

Cálculo do estado dinâmico corrente

ð Feito utilizando a técnica de dead reckoning

Modelagem doambiente virtual

Mediador doSistema

InicializaçãoAltualização do

estado dinâmico narede

Cálculo do estadodinâmico corrente

Processamentográfico de umnovo quadro

Unidades de Visualização (UV)

Renderingð Posicionamento da câmera (observador)ð Uso de técnicas para aumento do desempenhoð Desenho das entidades utilizando uma API gráfica

Modelagem doambiente virtual

Mediador doSistema

InicializaçãoAltualização do

estado dinâmico narede

Cálculo do estadodinâmico corrente

Processamentográfico de umnovo quadro

Desempenho

O nível de detalhedeve diminuir a

medida que a entidadese afasta do plano de

projeção

O plano de fundo eo canvas

delimitam ovolume de visão

plano de fundo

canvas

Deve ser eliminada

ð Eliminação das entidades fora do volume de visãoð Cálculo do nível de detalhe apropriado

Modelagem do Ambiente Virtual

ComponenteExclusiva

ComponentesCompartilhadas

Componentes Comuns

canvas

Cave

iluminação

Fog

Entidades

Comportamento Descriçãogeométrica

Aparência

Cenário

Observador

ð Componentes exclusivas

ð Componentes compartilhadas

ð Componentes comuns

Implementação do Sistema

Unidades de Visualização (UV)

q Decisões tecnológicas

ð C++

ð Lua

ð OpenGL

ð MLOD

ð IUP

ð CORBA (ORBacus)

ð LuaOrb

AmbienteVirtual

Cenário Observador

CanvasFonte de Luz Entidade GrupoFog

Ambiente

Posicional

Direcional

Spot

Comportamento DescriçãoGeométrica

Aparência

Estática

Cinemática

Oscilatória

Vazia

Mesh Triangular

Vazia

Cor opaca

Material

Textura

Textura Múltiplado tipoNotação: contém 1 contém 1 ou mais está ligado a

......

...

...

Modelagem do Ambiente Virtual

Modelagem do Ambiente Virtual

q Linguagem Lua

ð Sintaxe simples e clara

ð Facilidade de descrição de dados

ð Estruturas de controle tradicionais² Expressões

² Laços

² Declarações condicionais

² Chamadas de função

Modelagem do Ambiente Virtual

Ambiente virtual:

Visualizer{ name = "Visualizer",

scene = scen,

observer = ent1, }

Observador:Observer{ name = "Cave1",

axis_position = Vector {0.0,0.0,0.0},

axis_rotation = Quadruple {0,0,1,0}, }

Canvas:Canvas{ name = "Esquerdo",

distance = 0.07709,

width = 0.0323,

height = 0.023534,

rotation = Quadruple {25.7699, 0, 1, 0},

windowsize_x = 1146,

windowsize_y = 835,

local_rotation_x = 0,

local_rotation_y = -25.7699, }

Cenário / Fog:

scen = Scene{ name = "Scene";

fog = TRUE,

back_color = Vector{0.5, 0.7, 0.3},

fog_color = Vector{0.5, 0.7, 0.3},

fog_start = 150,

fog_end = 1000;

light0, light1,

ent1, ent2, ent3, }

Entidade:

ent1 = Entity{ name = "Hind 1",

shape = shp3,

appearance = app2,

mechanics = sta1, }

Comportamento:sta5 = Static_Mechanic{ name = "Static 5",

position = Vector{-350.0, -5.0, -100.0},

rotation = Quadruple{0,0,1,0}, }

kin1 = Kinematic_Mechanic { name = "Kinematic 1",

position = Vector{7.0, 1.7, 700.0},

rotation = Quadruple{20.0, 0.0, 1.0, 0.0},

linear_speed = Vector{-0.045, 0.0, -0.15},

angular_speed = Vector{0.0, 10.0, 0.0},

actual_time = 0, }

osc2 = Oscillation_Mechanic{ name = "Oscillation 2",

position = Vector{0.0, 6.0, 650.0},

rotation = Quadruple {180,0,1,0},

actual_time = 0,

translation_period = 12,

translation_size = 30,

translation_direction = Vector{1,0,0},

rotation_period = 5,

rotation_size = 100,

rotation_direction = Vector{0,0,1}, }

Modelagem do Ambiente Virtual

Descrição geométrica:

shp1 = MeshPly_Shape{ name = "Hint",

filename = ".\\data\\shapes\\hind.ply",

axis_position = Vector{0,0,0},

axis_rotation = Quadruple{180.0,0.0,-1.0,-1.0},

scale = Vector{0.1,0.1,0.1},

auto_center = TRUE,

lod_criteria = EDGE_LENGTH + LOCAL_CURVATURE +

PRESERVE_BOUNDARY,

bounding_box = FALSE, }

Aparência:app1 = Empty_Appearance{ name = "Transp" }

app2 = Color_Appearance{ name = "Blue",

color = Vector{34/255, 41/255, 65/255}, }

app3 = Material_Appearance{ name = "Steel",

diffuse = Vector{0.5, 0.5, 0.5},

specular = Vector{1.0, 1.0, 1.0},

shininess = 1, }

pp4 = AutoTexture_Appearance{ name = "Sea",

filename = ".\\data\\textures\\mar4.tif",

mipmap = TRUE, }

app5 = Multi_AutoTexture_Appearance{ name= "Sea",

directory =”.\\data\\textures\\sea\\",

mipmap = TRUE, cycle_interval = 0.2,

actual_time = 0, }

Fontes de luz:light0 = Ambient_Light{ name = "Ambient 1",

intensity = Vector{0.1, 0.1, 0.1}, }

light1 = Positional_Light{ name = "Positional 1",

intensity = Vector{0.2, 0.2, 0.2},

position = Vector{0.0, -2.0, 100.0},

entity = ent1, }

light3 = Directional_Light{ name = "Directional 1",

intensity = Vector{0.05, 0.05, 0.05},

direction = Vector{0.0, 1.0, 0.0}, }

Forma proceduralapp1 = autotexture:new(“Textura 1”,

".\\data\\textures\\mar4.tif", TRUE)

shp1 = meshply:new(“Estatica 1”,".\\data\\shapes\\hind.ply",Vector{0,0,0}, Quadruple{180.0, 0.0, -1.0, -1.0},0.1, EDGE_LENGTH + LOCAL_CURVATURE, FALSE)

kin1 = kinematics:new(“Cinematica 1”, Vector{0,0,0},Quadruple{90.0, 0.0, 0.0, 1.0})

kin1:sett(Vector{-0.045, 0.0, -0.15}, 0.0)

kin1:setr(Vector{0.0, 10.0, 0.0}, 0.0)

ent1 = entity:new(“Hind”)

ent1:set(app1)

ent1:set(sta1)

ent1:set(shp1)

Resultados e Testes

Modelagem do Canvas

q Testar se a formulação propostapara o posicionamento do canvasao redor do observador funciona.

z-

x

Sincronismo

q Parâmetro visual

q Realizado através de uma gravação emvídeo

q O ambiente virtual contém um quadradotexturizado

q As texturas que são trocadas a cada 0.2segundos

q Os 48 quadros representam 1.5 segundos degravação.

Desempenho

q Verificar o ganho de desempenho obtido com o uso da técnica de eliminação deentidades e da técnica de mútiplos níveis de detalhe

q Dois pontos de vista diferentes

q Fatores verificados:ð o número de polígonos desenhadosð frame-rate

a) b)

CASO 1

CASO 2

a) b)

Caso Número de Polígonos Frame-rate1a 12197 8.18 fps1b 31.290 3.15 fps

Caso Número de Polígonos Frame-rate2a 3744 26.92 fps2b 31.290 2.73 fps

Resultados

Video

q Teste de modelagem do canvas

q Teste de sicronismoq Visualização de um objeto

q Visualização de terrenoð Posicionamento discreto do observadorð Posicionamento suave do observador

q Cenários diversosð Posicionamento discreto do observadorð Entidades com comportamentos elaborados

q Visualização de terreno real

Conclusão

q Sincronismoq Dead Reckoningq Heterogeneidadeq Estações de trabalho low-endq Portabilidadeq Reusabilidadeq Modelagem de Ambientes Virtuaisq Mapeamento do Ambiente Físico no sistemaq Infra-estrutura de comunicaçãoq Desempenhoq Vários usos potenciais

Trabalhos Futuros

q Testes mais aprofundados com relação a escalabilidade

q Recursos para entrada direta de dados do usuário

q Novos componentes (estímulos auditivos)

q Mecanismo de captura automática da posição do usuário

q Sobreposição da imagem projetada

q DataWall

q Imagens compreensíveis de diferentes pontos de vista

q Visualização em Stereo

Recommended