Dynamic Adjustment of Stereo
Parameters for Virtual Reality Tools
Felipe Carvalho, Daniel R. Trindade, Peter F. Dam,
Alberto Raposo, Ismael H. F. dos Santos
Introdução


Com o aparecimento de novas
tecnologias o uso da estereoscopia
vem sendo mais frequente (games,
cinema, realidade virtual)
Entretanto seu uso pode causar
problemas como náusea e dor de
cabeça caso os parâmetros não
sejam ajustados corretamente
Introdução

Problemas relacionados a estereoscopia:




Objetos com valor de paralaxe muito alto
(positiva ou negativa) causam desconforto
uma vez que os olhos tem dificuldade em
convergir.
Quando o plano de paralaxe zero não está no
mesmo plano da tela (problema da
acomodação/convergência).
Clipping (pelas bordas da tela) de objetos na
região de paralaxe negativa.
Em ambientes multiescala se os parâmetros de
estereoscopia forem mantidos constantes
durante o cenário poderá ocorrer problema de
convergência.
Objetivo

O objetivo do trabalho é propor
uma solução capaz de ajustar
dinamicamente os parâmetros de
estereoscopia para aplicações de
realidade virtual, incluindo
aplicaçãoes com ambientes
multiescala.
Cubemap

Provê informação sobre o ambiente
virtual em um dado momento.





Dado uma posição de câmera, esta
estrutura é construída a partir de 6
passadas de rendering, cada uma em
uma diferente direção para cobrir todo o
ambiente.
FOV da câmera é 90 graus, portanto a
combinação de 6 frustrums resultantes
gera um cubo.
A orientação do cubemap é a mesma
que a da câmera usada.
Um shader é usado para calcular a
distância do fragmento gerado para a
câmera, que é armazenada no canal
alpha.
Os canais RGB das imagens do cubemap
guardam um vetor unitário com origem
no fragmento gerado apontando para a
câmera.
Técnicas de Navegação



O modo como o usuário interage com a
cena pode influenciar o efeito de
estereoscopia.
O ajuste dos parâmetros de estereoscopia
deve então levar em consideração de que
forma o usuário navega e interage com a
cena.
Neste trabalho são consideradas duas
técnicas de interação:


Fly – navegação livre pela cena
Examine – visualização centrada em um objeto
selecionado
Técnicas de Navegação




A velocidade de navegação do Fly é ajustada
automaticamente com base em minDist (o menor valor
retornado pelo cubemap para uma dada posição de
câmera).
Dessa forma a velocidade de navegação é condizente
com a escala em que a câmera se encontra.
Tratamento de colisão impede que a câmera atravesse
os objetos da cena: toda vez que a câmera se
aproxima de um objeto ela sofre um fator de repulsão
que faz com que ela desvie suavemente.
Os planos de corte também são ajustados de acordo
com o minDist de forma a sempre garantir a corretude
destes.
Ajuste Dinâmico dos Parâmetros de
Estereoscopia para a Navegação “Fly”

Os parâmetros de estereoscopia são ajustados
dinamicamente de acordo com as seguintes
equações:




Distpzero = minDist
Eyesep = k * minDist
Onde Distpzero é a distância ao plano de paralaxe
zero, Eyesep é a separação virtual dos olhos, minDist
é o menor valor retornado pelo cubemap e k é uma
constante.
Esse ajuste é feito sempre que os planos de corte
forem ajustados.
Ajuste Dinâmico dos Parâmetros de
Estereoscopia para a Navegação “Fly”



A primeira equação cria um efeito onde os objetos
estão na paralaxe positiva na maior parte do
tempo para gerar um efeito mais confortável de
profundidade.
O uso de minDist impede que objetos na paralaxe
negativa sejam clipados. É como se pudéssemos
prever se um objeto entrará na área visível da
câmera.
Não importa se o usuário rotacionar a câmera, o
valor de minDist depende somente da posição da
câmera. Dessa forma uma rotação na câmera não
provoca alteração nos parâmetros da
estereoscopia.
Ajuste Dinâmico dos Parâmetros de
Estereoscopia para a Navegação “Fly”



A segunda equação ajusta a separação dos olhos
de acordo com a escala em que a câmera se
encontra no momento.
Por exemplo: se a câmera estiver em uma sala
pode ser razoável que a separação dos olhos
tenha um valor de acordo com a separação dos
olhos de uma pessoa real. Porém se a câmera
está olhando para um planeta inteiro, a separação
dos olhos deverá ser reconfigurada para um valor
maior.
A constante k é escolhida de forma a prover ao
usuário uma sensação confortável de
profundidade. Em nossos testes descobrimos que
usando k = 0,01 gera um efeito satisfatório.
Ajuste Dinâmico dos Parâmetros de
Estereoscopia para a Navegação “Fly”

O ajuste proposto depende das técnicas
de navegação implementadas
anteriormente pelos seguintes motivos:


Para que esse ajuste funcione corretamente os
valores de minDist gerados devem variar de
forma suave. Isso é possível graças ao ajuste
automatico de velocidade de navegação.
O tratamento de colisão garante que não
haverá quebra do efeito de estereoscopia, pois
a câmera não atravessa os objetos.
Ajuste Dinâmico dos Parâmetros de
Estereoscopia para a Navegação “Fly”
Ajuste Dinâmico dos Parâmetros de
Estereoscopia para a Navegação “Examine”



Nesta abordagem decidimos posicionar o plano de
paralaxe zero no centro do objeto selecionado.
A distância entre os olhos é determinada por uma
constante multiplicada pelo volume envolvente do
objeto selecionado. Para nossos testes usamos o
valor de 0,18 para a constante.
Esse ajuste garante um efeito estereoscópico
interessante uma vez que metade do objeto está
na paralaxe negativa sem que ocorra clipping nas
bordas.
Conclusão


Em nossos testes informais verificamos
que os ajustes propostos produzem
estereoscopia confortável e facilita o uso
de aplicações estereoscópicas de
realidade virtual pois o usuário não
precisa se preocupar com o ajuste dos
parâmetros.
Como trabalho futuro pretendemos
conduzir testes de usuário formais.
Dúvidas

?
Download

DynamicStereo_Daniel.. - PUC-Rio