Upload
duongdat
View
213
Download
0
Embed Size (px)
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