UNIVERSIDADE DE SÃO PAULO
ESCOLA POLITÉCNICA
LUIZ ANTONIO CUSTÓDIO MANGANELLI JUNQUEIRA
Visualizador 3D baseado em head tracking e estereoscopia para
aplicações com o método dos elementos finitos
São Paulo 2014
LUIZ ANTONIO CUSTÓDIO MANGANELLI JUNQUEIRA
Visualizador 3D baseado em head tracking e estereoscopia para
aplicações com o método dos elementos finitos
São Paulo 2014
Tese de Doutorado apresentada à Escola Politécnica da Universidade de São Paulo para a obtenção do título de Doutor em Ciências.
LUIZ ANTONIO CUSTÓDIO MANGANELLI JUNQUEIRA
Visualizador 3D baseado em head tracking e estereoscopia para
aplicações com o método dos elementos finitos
São Paulo 2014
Tese de Doutorado apresentada à Escola Politécnica da Universidade de São Paulo para a obtenção do título de Doutor em Ciências. Área de concentração: Engenharia Elétrica - Sistemas de Potência Orientador: Prof. Dr. Silvio Ikuyo Nabeta
À minha filha Sophia, com muito amor.
AGRADECIMENTOS Ao Prof. Dr. Silvio Ikuyo Nabeta, pela oportunidade da realização deste trabalho. Ao Mestre Marcelo Grinberg, pela sua colaboração na edição dos textos em inglês. Ao Dr. César Alberto Bravo Pariente, pelo intercâmbio de conhecimentos de computação. Ao José Roberto Pascon Junior, pelo seu auxílio no uso do Maxwell 3D.
Resumo
A visualização 3D de simulações pelo Método dos Elementos Finitos (MEF) ainda é
uma experiência limitada em função da falta de realismo 3D nos monitores
disponíveis. Além do monitor 3D realista, a melhor visualização destas simulações
depende de uma apresentação MEF desenvolvida adequadamente, de forma a tirar
maior proveito deste realismo 3D.
Neste trabalho, é realizado o desenvolvimento de um visualizador MEF 3D, que
reproduz os efeitos estereoscópicos e de rastreamento de cabeça (head-tracking),
explorando melhor as percepções de profundidade com hardware acessível e
bibliotecas gráficas utilizadas em aplicações convencionais.
Palavras-chave: Visualização 3D, Método dos Elementos Finitos, Estereoscopia,
Rastreamento de Cabeça.
Abstract
The 3D visualization of Finite Element Method (FEM) simulations is still a limited
experience due to the lack of realism of 3D monitors available. In addition to the
realistic 3D monitor, better visualization of these simulations depends on a MEF
presentation properly developed in order to get the most out of 3D realism.
In this work, a 3D MEF viewer is develop, including stereoscopy and head tracking 3D
effects, that better explores human depth cues using hardware from cost and benefit
perspective and graphics libraries used in conventional applications.
Key-Words: 3D Visualization, Finite Element Method, Stereoscopy, Head-Tracking.
LISTA DE FIGURAS
Figura 1 - Resposta Relativa dos cones tipos R , G e B em função do comprimento de
onda da luz visível ......................................................................................
5
Figura 2 - Sensibilidade dos receptores decodificados de cores r , g e b ................... 5
Figura 3 - Combinação aditiva de cores.......................................................................... 6
Figura 4 - Combinação subtrativa de cores .................................................................... 7
Figura 5 - Modelo simplificado do olho ........................................................................... 7
Figura 6 - Equivalência entre a visualização de um objeto e a visualização da
perspectiva deste objeto .................................................................................
8
Figura 7 - Princípio da Perspectiva Cônica....................................................................... 9
Figura 8 - Ponto imagem obtido com uma lente convergente ........................................ 10
Figura 9 - Determinação do ponto imagem a partir do centro e do foco da lente ............ 10
Figura 10 - Obtenção da imagem de objeto em uma lente convergente............................ 11
Figura 11 - Imagem nítida na projeção com lente convergente.......................................... 11
Figura 12 - Imagem desfocada na projeção com lente convergente.................................. 12
Figura 13 - Posição do ponto de vista do olho presumida.................................................. 12
Figura 14 - Diferentes cenários que produzem a mesma projeção no fundo do olho........ 17
Figura 15 - Determinação das dimensões e do posicionamento de uma imagem a partir
de duas perspectivas cônicas .........................................................................
17
Figura 16 - Reprodução do efeito Head-Tracking, em monitor 2D..................................... 19
Figura 17 - Princípio da computação gráfica 3D................................................................. 21
Figura 18 - Campos de Visão horizontal e vertical ........................................................... 22
Figura 19 - Dimensões do porto de visualização................................................................ 22
Figura 20 - Planos de corte Frontal e Traseiro................................................................... 23
Figura 21 - Volume de Visualização (Viewing Frustum) ................................................... 23
Figura 22 - Sistemas de coordenadas com orientações de mão esquerda e de mão direita
...............................................................................................................
24
Figura 23 - Sistema Referencial Vista ............................................................................... 25
Figura 24 - Padronização das coordenadas dos vértices do volume de visualização no
sistema referencial de projeção........................................................................
26
Figura 25 - Sistema referencial to obtido pela translação da origem do sistema referencial
from para as coordenadas toofromx ,
toofrom y e toofrom y ..............
29
Figura 26 - Vistas superior e lateral de uma projeção no plano......................................... 30
Figura 27 - Exemplo de óculos Anaglifo............................................................................. 37
Figura 28 - Estereoscopia com filtro de polarização linear usando dois projetores........... 37
Figura 29 - Princípio do INFITEC....................................................................................... 38
Figura 30 - Exemplo de óculos INFITEC............................................................................ 38
Figura 31 - Princípio de funcionamento do LCD Shutter.................................................... 39
Figura 32 - Exemplo de óculos com visores embutidos..................................................... 39
Figura 33 - Barreira de paralaxe e cadeia de lentes........................................................... 40
Figura 34 - Janela de visualização fixa............................................................................... 41
Figura 35 - Rastreamento de Cabeça................................................................................. 41
Figura 36 - Auto estereoscopia com Múltiplas Vistas......................................................... 42
Figura 37 - Monitor 3D Volumétrico com espelho e projetor.............................................. 43
Figura 38 - Monitor 3D Volumétrico com multicamadas de LCD........................................ 43
Figura 39 - Monitor 3D Volumétrico com bolhas de plasma produzida com pulso de
laser..................................................................................................................
44
Figura 40 - Captura e reprodução de imagem Holográfica................................................. 44
Figura 41 - Correlação entre o espaço Real e o espaço virtual.......................................... 47
Figura 42 - Dimensões do Monitor...................................................................................... 47
Figura 43 - Volume de Visualização na abordagem proposta............................................ 48
Figura 44 - Sistema Referencial Vista`............................................................................... 49
Figura 45 - Sistema Referencial Real................................................................................. 49
Figura 46 - Posição dos planos de projeção Proj e de corte Frontal e Traseiro na
abordagem proposta........................................................................................
50
Figura 47 - Reprodução Básica.......................................................................................... 59
Figura 48 - Reprodução com o Efeito 3D .......................................................................... 59
Figura 49 - Camadas Lógicas da Computação Gráfica da plataforma Windows............... 60
Figura 50 - Componentes do Rastreador de Cabeça ........................................................ 61
Figura 51 - Sistemas Referenciais de Projeção da Câmera; da Câmera; da Cabeça e
Real..................................................................................................................
62
Figura 52 - Sistema Referencial Vista` .............................................................................. 63
Figura 53 - Condição simplificadora que limita o posicionamento da cabeça em quatro
graus de liberdade............................................................................................
64
Figura 54 - Condição simplificadora que restringe o posicionamento da câmera.............. 65
Figura 55 - Captura de dois pontos dos óculos a partir de uma câmera............................ 65
Figura 56 - Condição simplificadora que define a posição dos pontos referência nos
óculos...............................................................................................................
66
Figura 57 - Posição da Cabeça.......................................................................................... 66
Figura 58 - Sistema Referencial de Projeção da Câmera.................................................. 67
Figura 59 - Vetor Direita Dirvr
............................................................................................. 68
Figura 60 - Variável Separação ......................................................................................... 73
Figura 61 - Coordenadas vertical e de profundidade da que passa pelo ponto de vista dos
dois olhos no sistema referencial da Cabeça...........................................
73
Figura 62 - Configuração Ideal para o Efeito 3D................................................................ 82
Figura 63 - Câmera IR com LEDs IR e conexão USB........................................................ 87
Figura 64 - TrackClip (haste com refletores infravermelhos).............................................. 87
Figura 65 - TrackClip fixado no boné.................................................................................. 87
Figura 66 - Configuração de hardware utilizada como rastreador de cabeça.................... 88
Figura 67 - LED infravermelho 850 nm 3W........................................................................ 88
Figura 68 - Refletor infravermelho retirado da haste do TrackIR 5 .................................... 88
Figura 69 - Cenário do StateManager................................................................................ 90
Figura 70 - Kit NVIDIA 3D Vision ....................................................................................... 91
Figura 71 - Requisitos de Hardware na computação gráfica 3D com padrão HDMI ......... 92
Figura 72 - Cubo visualizado no StereoSimpleDirect3D ..................................................... 93
Figura 73 - Imagem em mapa de bits usada para definir a textura da face do cubo ......... 93
Figura 74 - Foto da reprodução do efeito 3D composto com o par de óculos inclinado.... 94
Figura 75 - Visualização do arquivo no formato VRML exportado pelo Maxwell 3D.......... 95
Figura 76 - Cubo colorido, com a coloração representando intensidade de campo na
superfície do cubo............................................................................................
96
Figura 77 - Listagem do CUBE.MEF3D no formato MEF 3D com a definição do cubo
colorido............................................................................................................
97
Figura 78 - Listagem com a definição de uma linha de campo fechada no formato
MEF3D.............................................................................................................
98
Figura 79 - Reprodução da linha de campo em perspectiva e em estereoscopia............. 99
Figura 80 - Linha de campo definida com mais segmentos, reproduzida em diferentes
perspectivas ....................................................................................................
99
Figura 81 - Vistas frontal, lateral e superior em perspectiva do eletroímã simulado no
Maxwell 3D......................................................................................................
100
Figura 82 - Imagem em perspectiva de campo superficial apresentada pelo Visualizador
MEF 3D a partir de uma simulação magnetostática do eletroímã....................
101
LISTA DE ABREVIATURAS E SIGLAS
3D Tridimensional
ACIS Alan, Charles and Ian`s System
API Advanced programming interface
CATIA Computer Aided Three-Dimensional Interative Application
CG Computação Gráfica
CIE Commission Internationale de l`Éclairage
DVI Digital Video Interface
FEM Finite Element Method
HAL Hardware Abstract Layer
HDMI High-Definition Multimedia Interface
HEL Hardware Emulation Layer
IGES Initial Graphics Exchange Specification
IR Infrared
ISO International Standards Organization
LCD Liquid crystal display
LED Light emitter diode
MEF Método dos Elementos Finitos
MSDN Microsoft Developer Network
MUTED Multi-user Television Display
nm Nano metro
RA Realidade Aumentada
RV Realidade Virtual
SDK Software Development Kit
SLM Spatial light modulators
STEP STandart for the Exchange of Product
VRML Virtual Reality Modeling Language
WDDM Windows Display Driver Model
LISTA DE SÍMBOLOS
Vw Largura do Porto de Visualização
Vh Altura do Porto de Visualização
Aspecto Aspecto do Porto de Visualização
Dw Largura do Monitor
Dh Altura do Monitor
`Aspecto Aspecto do Monitor
n Distância do Plano de Corte Near ao ponto de vista da perspectiva
f Distância do Plano de Corte Far ao ponto de vista da perspectiva
ojdPr Distância do Plano de projeção ao ponto de vista da perspectiva
hφ Campo de visão horizontal da câmera
vφ Campo de visão vertical da câmera
ObjSR p Posição do objeto Obj , no sistema referencial SR
ObjOrSRc Coordenada c ( x , y ou z ) do objeto Obj , no sistema referencial SR com
orientação de mão Or
ObjBGSRc Coordenada c ( x , y ou z ) do objeto Obj , no sistema referencial SR para
a biblioteca gráfica BG
VetorSRvr
Vetor Vetor, no sistema referencial SR
vVetorOrSRc Componente c ( x , y ou z ) do vetor Vetor no sistema referencial SR com
orientação de mão Or
VersorSRnr
Versor Versor, no sistema referencial SR
nVersorOrSRc Componente c ( x , y ou z ) do versor Versor no sistema referencial SR
com orientação de mão Or
SROrM Matriz que transforma as coordenadas para o sistema referencial SR com
orientação de mão Or
SRBGM Matriz que transforma as coordenadas para o sistema referencial SR com
para a biblioteca gráfica BG
v̀ Variável substituta: calculada para reproduzir o efeito 3D e substituir a variável
original v , calculada para reproduzir uma perspectiva 2D
`SR Sistema Referencial no contexto do efeito 3D correspondente ao sistema
referencial SR no contexto sem o efeito 3D
s Relação de escala entre o espaço virtual e o espaço real.
Índice de Sistema Referencial SR
Sistema Referencial Índice Sistema Referencial do qual é feita uma transformação de Sistema Referencial para o qual é feita uma transformação para Local Local Global World De Visualização Vista De Projeção Simples P De Projeção Genérica PG De Projeção Proj Real Real Projeção da câmera do Rastreador de Cabeça Prj 3D Da Câmera do Rastreador de Cabeça Cam Da Cabeça Cabeça
Índice de Objetos Obj
Objeto Abreviação Câmera cam Olho do Observador Olho Linha dos olhos do observador Olhos Olho do Observador Direito od Olho do Observador Esquerdo oe Plano de Projeção Proj Porto de Visualização V Monitor D Cabeça do Observador Cabeça Ponto Referência Direito Dir Ponto Referência Esquerdo Esq
Índice de Vetores Vetor
Vetor Abreviação Vetor que aponta para o lado direito da cabeça Dir
Índice de Versores Versor
Versor Abreviação Versor que aponta para a direção superior da cabeça Sup Versor que aponta para a direção frontal da cabeça Frente Versor que aponta para o lado direito da cabeça Dir
Índice de Orientação de Sistema Referencial Or
Orientação de Sistema Referencial Índice Orientação de mão direita md Orientação de Mão esquerda me
Índice de Biblioteca Gráfica BG
Biblioteca Gráfica Índice DirectX DirectX DirectX 11 DirectX11 OpenGL OpenGL
SUMÁRIO
1 INTRODUÇÃO …………………………………………………………. 1 1.1 OBJETIVO ....................................................................................... 1 1.2 MOTIVAÇÃO .................................................................................... 2 1.3 METODOLOGIA .............................................................................. 2 1.4 CONTRIBUIÇÃO .............................................................................. 2 1.5 ORGANIZAÇÃO DO TEXTO .......................................................... 3 2 CONCEITOS BÁSICOS ………………………………………………. 4 2.1 FUNCIONAMENTO DO OLHO ……………....……....………………. 4 2.2 PERCEPÇÃO DE COR .................................................................... 5 2.3 PERSPECTIVA ................................................................................ 7 2.4 PONTO DE VISTA DO OLHO ......................................................... 9 2.5 PERCEPÇÕES DE PROFUNDIDADE ............................................ 13 2.6 EFEITOS INDESEJÁVEIS NA REPRODUÇÃO 3D ......................... 15 2.7 EFEITO ESTEREOSCÓPICO ......................................................... 17 2.8 EFEITO HEAD-TRACKING ............................................................. 18 2.9 COMPUTAÇÃO GRÁFICA 3D ......................................................... 19 3 Estado da Arte dos Monitores 3D ................................................. 36 3.1 MONITORES ESTEREOSCÓPICOS .............................................. 36 3.2 MONITORES AUTO ESTEREOSCÓPICOS ................................... 40 3.3 MONITORES VOLUMÉTRICOS ...................................................... 42 4 MODELAGEM DO EFEITO 3D COMPOSTO .................................. 46 4.1 ABORDAGEM PROPOSTA PARA A COMPUTAÇÃO GRÁFICA ... 46 4.2 SISTEMAS REFERENCIAIS DA CG 3D NA ABORDAGEM
PROPOSTA .....................................................................................
48 4.3 POSICIONAMENTO DOS PLANOS DE CORTE ............................ 50 4.4 MATRIZES TRANSFORMAÇÃO DA CG 3D NA ABORDAGEM
PROPOSTA .....................................................................................
51 4.5 VARIÁVEIS EXTRAÍDAS DA MATRIZ PROJEÇÃO ORIGINAL ..... 56 5 PROJETO ........................................................................................ 58 5.1 EFEITO 3D COMPOSTO ................................................................. 58 5.2 APRESENTAÇÃO MEF VOLTADA PARA O EFEITO 3D ............... 83 6 PARTE PRÁTICA – IMPLEMENTAÇÃO ......................................... 86 6.1 HARDWARE DO RASTREADOR DE CABEÇA .............................. 87 6.2 IMPLEMENTAÇÃO DO EFEITO HEAD-TRACKING ....................... 89 6.3 COMBINANDO A ESTEREOSCOPIA AO EFEITO HEAD-
TRACKING .......................................................................................
91 6.4 FORMATOS GRÁFICOS 3D DE ARQUIVOS .................................. 94 6.5 OBTENÇÃO DE ARQUIVO MEF3D DE UMA SIMULAÇÃO MEF .. 100 CONCLUSÃO ................................................................................ 102 PERSPECTIVAS FUTURAS ........................................................... 104 REFERÊNCIAS ............................................................................... 105
1
Capítulo 1
INTRODUÇÃO
As apresentações de simulações pelo método dos elementos finitos ainda
deixam a desejar. Este trabalho propõe explorar a Realidade Virtual (RV) na melhora
destas apresentações.
A Realidade Virtual é ainda uma promessa, que depende do avanço
tecnológico. O maior realismo nas interfaces RV vem aparecendo com o
aperfeiçoamento dos monitores 3D, sensores e atuadores. Os monitores 3D oferecem
um grau de liberdade a mais na representação de informações gráficas e os sensores
de movimento oferecem interação amigável e flexível do homem com o cenário virtual.
Provavelmente, quando os monitores 3D mais realista se tornarem acessíveis, as
aplicações terão sua apresentação aperfeiçoada para tirar maior proveito deste grau
de liberdade a mais em representação gráfica.
Este trabalho inicia o desenvolvimento de um visualizador MEF 3D, que explora as
representações gráficas de campos mais adequadas à visualização 3D realista e
oferece uma interação de usuário mais amigável e flexível.
Para emular um monitor 3D realista, é implementado no visualizador MEF um efeito
3D, que explora melhor as percepções humanas de profundidade, combinando o
efeito estereoscópico ao efeito Head-Tracking (rastreamento de cabeça). Na
reprodução deste efeito 3D são utilizados hardware de melhor custo benefício e
bibliotecas gráficas mais difundidas. Este efeito é devidamente modelado, é proposta
uma solução ideal factível e um protótipo com tecnologia disponível é implementado
para a prova de conceito.
1.1. OBJETIVO
O objetivo deste trabalho consiste no aperfeiçoamento da apresentação em
aplicações MEF, com a exploração de técnicas de imersão, oferecendo visualização
mais intuitiva de fenômenos físicos e interação de usuário mais amigável e flexível.
2
1.2. MOTIVAÇÃO
As interfaces de usuários das aplicações MEF existentes ainda deixam a
desejar.
Presencia-se um momento histórico de revolução tecnológica como: o advento
do padrão digital de imagens; uma grande disponibilização no mercado de monitores
3D estereoscópicos de alta definição; o aparecimento de placas aceleradoras de
vídeo com poder de processamento extraordinário e o surgimento de todo um aparato
tecnológico que permite a interação 3D do usuário com o computador. Esta revolução
tecnológica abre um grande campo a ser explorado e aplicado às interfaces com o
usuário.
Em sumo, a necessidade de uma melhor interface de usuário para aplicações
MEF e a viabilização de seu aprimoramento com a disponibilização dos novos
recursos tecnológicos, motivaram o desenvolvimento deste trabalho.
1.3. METODOLOGIA
Este trabalho consiste no projeto de um visualizador MEF 3D, utilizando
hardware de melhor custo benefício e bibliotecas gráficas padrão de indústria.
No visualizador MEF 3D, a apresentação MEF 3D e o efeito 3D são tratados
isoladamente. Para a apresentação MEF 3D são propostas representações gráficas
de campos e especificada a interface de interação com usuário. A modelagem do
efeito 3D exige um bom embasamento, demandando pesquisa e trabalho dedutivo.
Para a prova de conceito, é implementado um protótipo.
1.4. CONTRIBUIÇÃO
Este projeto de visualizador MEF 3D é o ponto de partida para o
desenvolvimento de uma interface de Realidade Virtual para aplicações MEF, em que
o usuário poderá interagir com espaço virtual de forma amigável e flexível.
3
Com base em uma abordagem proposta dos conceitos da computação gráfica
3D, é apresentado um equacionamento do efeito 3D.
Uma arquitetura idealizada para a reprodução do efeito 3D é proposta. Essa
disponibiliza o efeito 3D a qualquer aplicação gráfica 3D em que o processo de
renderização é delegado ao hardware.
1.5. ORGANIZAÇÃO DO TEXTO
O Capítulo 2 apresenta os conceitos básicos envolvidos no desenvolvimento do
trabalho.
O Capítulo 3 apresenta o estado da arte dos monitores 3D.
O Capítulo 4 apresenta uma modelagem do efeito 3D, com o equacionamento
embasado em uma abordagem proposta para a computação gráfica 3D.
O Capítulo 5 apresenta o projeto do visualizador MEF 3D, composto pelo efeito
3D e pela apresentação MEF 3D. Para o efeito 3D, o rastreador de cabeça é
caracterizado como componente de hardware e a reprodução do efeito 3D como uma
camada de software. São apresentadas uma arquitetura idealizada factível e outra
viável no protótipo. Para a apresentação MEF 3D, são propostas as possibilidades de
representação gráfica, identificadas as necessidades de interação com o usuário e
delimitada sua implementação no protótipo.
O Capítulo 6 relata o desenvolvimento do protótipo.
Grande parte dos conceitos envolvidos neste trabalho tem terminologia padrão
em inglês, encontrando-se nenhuma ou diferentes versões em português para o
mesmo conceito. Para cada conceito, é apresentada a termologia em inglês e uma
versão em português livre.
4
Capítulo 2
CONCEITOS BÁSICOS
A reprodução do efeito 3D projetado está embasada nos conceitos
apresentados neste capítulo: o funcionamento do olho é a parte introdutória exigida na
apresentação dos demais conceitos; a percepção de cores tem sua importância nas
percepções de profundidade; as percepções de profundidade servem como critérios
de avaliação de efeitos 3D; a perspectiva cônica define toda a geometria envolvida; a
compreensão dos efeitos 3D estereoscópicos e Head-Tracking isoladamente permite
compreender o efeito 3D combinado; a teoria das lentes convergentes é fundamental
no entendimento da percepção de profundidade por acomodação e na identificação
do ponto de vista do olho e a Computação Gráfica 3D fornece o meio para se
reproduzir o efeito 3D.
2.1. VISÃO HUMANA
A luz, que entra no olho, passa pela córnea, pelo humor aquoso, atravessa a
pupila, passa pelo cristalino, pelo humor vítreo e se projeta na retina, formando uma
imagem invertida, que sensibiliza os cones e bastonetes, os quais emitem sinais
elétricos, que são transmitidos ao cérebro pelo nervo óptico. A íris controla a abertura
da pupila, regulando a entrada de luz de acordo com a luminosidade ambiente. O
cristalino é a lente responsável pelo foco da visão, cuja distância focal é controlada
pelos músculos ciliares, que ficam relaxados na focalização de objetos remotos e
contraídos na focalização de objetos próximos. O processo de ajuste da distância
focal é denominado acomodação visual. Os bastonetes são responsáveis pela visão
noturna e os cones pela distinção das cores.
Os músculos orbitais movimentam o globo ocular dentro da cavidade ocular,
portanto, o centro de rotação do olho se localiza no centro do globo ocular.
5
2.2. PERCEPÇAO DE COR
Existem três tipos de cones na retina do olho humano: R , G e B , existindo
outras denominações. O cone tipo R é sensível à luz visível de comprimento de onda
longo, o cone tipo G é sensível à luz de comprimento de onda médio e o cone tipo B
é sensível à luz de comprimento de onda mais curto, conforme ilustrado na Figura 1.
O máximo da sensibilidade de cada tipo de cone corresponde às cores primárias
vermelha (R), verde (G) e azul (B).
Figura 1 – Resposta Relativa dos cones tipos R , G e B em função do comprimento de onda da luz
visível
Fonte: (AZEVEDO, 2003)
Existem diferentes modelos que explicam a sensação de cor, em que os sinais
visuais tri cromáticos enviados pelos cones são decodificados em outros sinais. A
Figura 2 ilustra um modelo de decodificação em receptores r , g e b .
Figura 2 – Sensibilidade dos receptores decodificados de cores r , g e b
Fonte: (JORKE, 2008)
6
Neste modelo, a sensação de cor é reproduzida de acordo com a proporção
em que estes três receptores decodificados são estimulados. A luz com comprimento
de onda superior a 650 nm sensibiliza significativamente apenas o receptor r ,
proporcionando a sensação de cor vermelha (R); a luz com comprimento de onda
próximo a 530 nm sensibiliza significativamente apenas o receptor g , proporcionando
a sensação de cor verde (G) e; a luz com comprimento de onda próximo a 460 nm
sensibiliza significativamente apenas o receptor b , proporcionando a sensação de cor
azul (B); a sensibilização na mesma proporção dos receptores r e g proporciona a
sensação de cor amarela (Y); a sensibilização na mesma proporção dos receptores g
e b proporciona a sensação de cor ciano (C); a sensibilização na mesma proporção
dos receptores r e b proporciona a sensação de cor magenta (M) e a sensibilização
na mesma proporção dos três receptores proporciona a sensação da cor cinza,
variando do preto (K) ao branco (W) de acordo com a intensidade luminosa.
É possível reproduzir todas as cores sentidas pelo homem pela combinação
das luzes vermelha (R), verde (G) e azul (B), conhecida como combinação aditiva de
cores, ilustrada na Figura 3.
Figura 3 – Combinação aditiva de cores
Fonte: (AZEVEDO, 2008)
A tinta de cor ciano absorve luz que sensibiliza o receptor r , a tinta de cor
magenta absorve luz que sensibiliza o receptor g e a tinta de cor amarela absorve luz
que sensibiliza o receptor b . É possível reproduzir tintas de todas as cores sentidas
pelo homem com a mistura de tintas de cor ciano (C), magenta (M), amarela (Y) e
branca (W), conhecida como combinação subtrativa de cores, ilustrada na Figura 4.
7
Nas impressoras coloridas, pelo fato da impressão ser feita em papel branco, não se
utiliza tinta de cor branca e, o uso da tinta de cor preta é destinado à redução do
consumo das tintas coloridas.
Figura 4 – Combinação subtrativa de cores
Fonte: (AZEVEDO, 2008)
2.3. PERSPECTIVA
A Figura 5 ilustra um modelo simplificado do olho, no qual, a luz emitida ou
refletida pelo cenário entra no olho por um orifício infinitesimal e projeta na retina,
formando uma imagem invertida, que corresponde a uma perspectiva cônica do
cenário sobre o ponto de vista deste orifício infinitesimal. O ponto de vista da
perspectiva da imagem formada na retina está sendo denominado por ponto de vista
do olho, que para este modelo simplificado, corresponde ao centro da pupila.
Figura 5 – Modelo simplificado do olho, em que a luz entra por um orifício infinitesimal e se projeta na
retina, formando uma imagem do objeto visualizado em perspectiva cônica
Fonte: Autor
8
Conforme ilustrado na Figura 6, é possível reproduzir esta mesma imagem
projetada no fundo do olho a partir de uma imagem projetada em uma superfície,
independendo da sua inclinação ou curvatura.
Figura 6 – Equivalência entre a visualização de um objeto e a visualização da perspectiva deste objeto
Fonte: Autor
Esta imagem projetada que reproduz a visualização do cenário 3D
corresponde a uma perspectiva cônica do cenário sobre o ponto de vista do olho. O
efeito 3D proposto consiste em apresentar para cada olho, em um monitor
estereoscópico, uma imagem projetada de um cenário virtual em perspectiva cônica,
cujo ponto de vista coincide com o ponto de vista do respectivo olho.
Neste trabalho, a imagem projetada em uma superfície em perspectiva cônica
é denominada simplesmente de perspectiva.
A Figura 7 ilustra o ponto Projp , que corresponde à projeção em uma superfície
de um ponto imagem do cenário Imp , em que o ponto Projp corresponde à interseção
entre o plano de projeção e a linha reta que passa pelo ponto de vista da perspectiva
pvp e pelo ponto do cenário Imp .
9
Figura 7 – Princípio da Perspectiva Cônica, no qual Imp representa um ponto imagem de um cenário
3D e ojpPr representa a posição em que este ponto é projetado em uma superfície de
projeção em perspectiva cônica, sobre o ponto de vista do ponto pvp
Fonte: Autor
2.4. PONTO DE VISTA DO OLHO
No efeito 3D proposto, o ponto de vista do olho define a perspectiva a ser
apresentada a este olho, sendo uma característica de grande importância na
reprodução do efeito. A maior precisão da medida da posição deste ponto para cada
olho implica na melhor qualidade da reprodução do efeito 3D.
No modelo simplificado do olho, o ponto de vista corresponde ao centro da
pupila, que é um orifício cuja abertura não é infinitesimal e varia com a luminosidade.
O cristalino é uma lente que tem a função de focalizar a imagem no fundo do olho,
que junto com os outros meios refringentes do olho compõe uma lente equivalente,
que por sua vez, define o ponto de vista do olho.
Existe uma analogia entre esta lente equivalente que projeta a imagem de um
cenário na superfície curva da retina e a lente convergente de curvatura esférica que
projeta a imagem em uma superfície plana. As propriedades desta lente ocular
equivalente podem ser entendidas tratando esta como lente convergente de curvatura
esférica.
Toda luz, emitida ou refletida por um ponto de um cenário, ao passar por uma
lente convergente de superfície esférica, converge para um ponto singular, chamado
de ponto da imagem, conforme ilustrado na Figura 8.
10
Figura 8 – Ponto imagem obtido com uma lente convergente
Fonte: Autor
A lente convergente possui dois pontos característicos que permitem
determinar a posição da imagem: o centro da lente e o foco da lente. No centro da
lente, toda luz passa sem sofrer desvio e toda luz que incide perpendicularmente ao
plano da lente é desviada para a direção do foco da lente. A Figura 9 ilustra a
determinação da posição do ponto imagem a partir do centro e do foco da lente.
Figura 9 – Determinação do ponto imagem a partir do centro e do foco da lente
Fonte: Autor
Da mesma forma, é possível determinar a imagem de um objeto, conforme
ilustrado na Figura 10.
11
Figura 10 – Obtenção da imagem de objeto em uma lente convergente
Fonte: Autor
Conforme ilustrado na Figura 11, quando inserida uma superfície de projeção
na posição da imagem do objeto, esta será projetada nesta superfície formando uma
imagem nítida do objeto em perspectiva sobre o ponto de vista localizado no centro da
lente, ou seja, o centro da lente caracteriza o ponto de vista da perspectiva nesta
projeção. Por analogia, o ponto de vista do olho corresponde ao centro da lente ocular
equivalente.
Figura 11 – Imagem nítida na projeção com lente convergente. Quando a superfície de projeção contém
a imagem do objeto, a imagem projetada fica nítida.
Fonte: Autor
Se a superfície de projeção for inserida distante da imagem do objeto, a
imagem projetada aparecerá desfocada, conforme ilustrado na Figura 12.
12
Figura 12 – Imagem desfocada na projeção com lente convergente. Quando a superfície de projeção
estiver afastada da imagem do objeto, a imagem projetada fica desfocada
Fonte: Autor
No olho, o ajuste do foco da imagem projetada na retina se dá com a variação
da curvatura do cristalino pela contração dos músculos ciliares. A imagem nítida
corresponde à imagem projetada na retina de máximo contraste, que é uma
característica sensibilizada. Praticamente, não é possível fazer o ajuste instantâneo do
foco, sendo necessário variar a curvatura da lente para determinar a curvatura de
máximo contraste.
Esta análise não permite determinar a posição exata do ponto de vista do olho,
que é uma característica de sua lente equivalente, mas permite presumir que o ponto
de vista do olho fica em alguma posição próxima do centro do cristalino e do centro da
pupila, conforme ilustrado na Figura 13.
Figura 13 – Posição do ponto de vista do olho presumida, próxima ao centro do cristalino e ao centro da
pupila
Fonte: (AZEVEDO, 2008)
13
Devido ao fato da posição do ponto de vista do olho ser diferente da posição do
seu centro de rotação, a posição do ponto de vista ocular se move com o movimento
do olho no referencial da cabeça, não permitindo uma estimativa exata desta posição
unicamente a partir do posicionamento da cabeça.
2.5. PERCEPÇÕES DE PROFUNDIDADE
O sistema da visão humana é muito complexo. É possível afirmar que a
sensação de profundidade é reproduzida a partir de uma redundância de informações
de profundidade, que a acuidade de uma informação de profundidade depende da
configuração do cenário, que a redundância destas informações promove uma melhor
sensação de profundidade, mas que o conflito entre diferentes informações prejudica
esta sensação de profundidade. Quase que instantaneamente, perspectivas com
pontos de vista diferentes são comparadas, objetos são reconhecidos, pontos são
identificados nas diferentes perspectivas, sobreposições e efeitos luminosos são
reconhecidos e as profundidades são estimadas, sendo que a melhor sensação de
profundidade depende da melhor estimativa destas profundidades.
Neste tópico, são apresentadas as percepções de profundidade e sua
classificação conforme Hill (HILL, 2006), em que estas percepções são classificadas
em percepções monoculares e binoculares. As percepções de profundidade
monoculares permitem a sensação de profundidade com apenas um olho aberto e
são subclassificadas em percepções de imagem singular e temporal.
2.5.1. Informações Monoculares de Imagem Singular ( Single Image )
As informações de profundidade monoculares de imagem singular são aquelas
que permitem perceber a profundidade a partir de uma única imagem em perspectiva:
• Sombreamento ( Shading ): Em uma imagem projetada na retina, o
cérebro reconhece sombras, fontes de luz, os objetos que fazem sombra e os
objetos sombreados, estimando posições relativas destes objetos e a curvatura de
parte da superfície destes objetos.
14
• Oclusões ( Occlusions ): Quando a imagem de um objeto sobrepõe
parcialmente à imagem de outro, o cérebro deduz que o primeiro objeto está mais
próximo.
• Tamanho Relativo ( Relative Size ): Quando a imagem de um objeto for
relativamente grande, o cérebro deduz que o objeto está próximo e, caso contrário,
deduz estar afastado. Portanto, o cérebro consegue deduzir a distância de um objeto
pelo tamanho relativo de sua imagem, podendo ter como referência de tamanho
outro objeto similar na imagem visualizada ou em lembranças deste objeto.
• Nebulosidade ( Fogging ): O cérebro é capaz de reconhecer uma
nebulosidade e, por intermédio de um tratamento especial, reconhecer a
profundidade dos objetos nela mergulhados.
• Foco ou Acomodação ( Focus ): No olho, o cristalino é ajustado para que
o centro da imagem projetada na retina fique nítida. A contração dos músculos
ciliares, que ajustam o cristalino, tem uma correspondência com a distância do
objeto em foco, portanto o cérebro deduz a profundidade do objeto focalizado a
partir da contração destes músculos.
• Distorção da Perspectiva ( Perspective Distortion ): Todas as linhas
paralelas no espaço 3D se encontram em um ponto de fuga na perspectiva. O
cérebro reconhece pontos de fuga e pontos associados a estes pontos de fuga,
estimando a profundidade de pontos a partir de sua proximidade com seus pontos
de fuga associados.
• Gradiente de Textura ( Texture gradient ): O contraste de cores na
imagem de um objeto é menor, quanto maior for sua distância.
2.5.2. Informação Monocular Temporal ( Temporal Monocular )
A informação de profundidade por paralaxe de movimento (Paralax Motion) é a
única classificada como percepção monocular temporal.
O cérebro compara perspectivas em pontos de vista diferentes, obtidas com o
movimento da cabeça do observador no referencial do cenário. Quando se movimenta
a cabeça para o lado, a imagem visualizada de um objeto mais distante tende a ficar
estática, enquanto a imagem de um objeto mais próximo tende a se mover mais em
15
sentido contrário ao movimento da cabeça. Quando se movimenta a cabeça para
frente, a imagem visualizada de um objeto mais próximo aumenta em uma proporção
maior em comparação com a imagem visualizada de um objeto mais distante.
2.5.3. Informações de Profundidade Binoculares ( Binocular Depth Cues )
As percepções de profundidade binoculares são aquelas que dependem dos
dois olhos:
• Convergência ( Vergence ): Também conhecida por disparidade angular,
corresponde ao ângulo formado entre as direções dos olhos ao objeto focado.
Quanto mais paralelas forem estas direções, maior será a distância deste objeto.
• Disparidade Horizontal ( Horizontal Disparity ): Também conhecida
como paralaxe binocular. A percepção de profundidade é extraída da comparação
entre as duas imagens visualizadas, cada uma sobre o ponto de vista de um olho.
No cérebro, estas imagens se fundem, dando a impressão de visualizar uma única
imagem em profundidade.
2.6. EFEITOS INDESEJÁVEIS NA REPRODUÇÃO 3D
A reprodução imperfeita de efeito 3D proporciona resultados indesejáveis. Este
tópico apresenta causas e efeitos relacionados com estes resultados indesejáveis.
Blonde (BLONDE, 2010) e Hill (HILL, 2006) relatam efeitos indesejáveis
observados na reprodução 3D como:
• Conflito Acomodação-Convergência ( Accommodation–Vergence
Conflict ): A divergência entre a profundidade percebida pela percepção de
profundidade por acomodação e a profundidade percebida pela percepção de
profundidade por convergência é conhecida por conflito Acomodação-Convergência,
que prejudica a percepção de profundidade.
• Diplopia: Em alguns casos, pode ocorrer do cérebro não conseguir fundir
as imagens, fazendo com que a imagem visualizada seja duplicada.
• Cancelamento de Quadro ( Frame cancellation ): Quando um objeto
pode ser visualizado apenas por um olho, pelo fato de sua imagem estar
16
endereçada na frente e na borda do monitor, isto causa um efeito visual indesejável.
Por oclusão, nosso cérebro interpreta que a imagem está atrás da borda do monitor,
conflitando com as percepções binoculares que endereçam a imagem na frente do
monitor.
• Efeito Cardboard: Neste efeito, visualiza-se uma imagem plana, mesmo
existindo disparidade horizontal. Este efeito ainda não é bem explicado.
• Efeito Teatro de Marionetes ( Puppet Theater ): Consiste nos seres vivos
parecerem bonecos. Este efeito também não é bem explicado.
• Mudanças Abruptas na Aproximação da Cena: A reprodução 3D de
uma imagem obtida com a aproximação abrupta da câmera ao cenário provoca
demora na readaptação da visão.
• Objetos que mudam de profundidade rapidamente: A mudança rápida
da profundidade de objetos também provoca demora na readaptação da visão.
• Disparidade Vertical ( Vertical Disparity ): Em um monitor 3D, se as
imagens capturadas pelos olhos tiverem disparidade vertical, estes se moverão para
corrigir o problema, forçando músculos pouco usados. Olhar um monitor
estereoscópico com a cabeça inclinada é causa de disparidade vertical.
• Distorção da Perspectiva: Imagens com distorções diferentes em cada
olho dificultam a fusão de imagens.
• Conflito Binocular: Além da distorção, outras variações nas imagens
podem dificultar a fusão destas. A compressão separada de dados das imagens
estereoscópicas pode descartar detalhes da imagem dirigida a um olho e não
descartá-los da imagem dirigida ao outro olho.
17
2.7. EFEITO ESTEREOSCÓPICO
Conforme ilustrado na Figura 14, com base no modelo simplificado do olho,
uma infinidade de tamanhos e distâncias de um objeto produz a mesma imagem
projetada no fundo do olho, não sendo possível determinar as dimensões e a distância
do objeto a partir de uma única perspectiva deste objeto.
Figura 14 – Diferentes cenários que produzem a mesma projeção no fundo do olho
Fonte: Autor
A partir de duas perspectivas do mesmo cenário sobre pontos de vista
diferentes, é possível determinar o posicionamento único de pontos do cenário em
destaques, conforme ilustrado na Figura 15.
Figura 15 – Determinação das dimensões e do posicionamento de uma imagem a partir de duas
perspectivas
Fontes: Autor
18
As percepções de profundidade binoculares utilizam desta propriedade para
estimar a distância dos objetos visualizados. Os pontos do cenário que se destacam
correspondem aos pontos da imagem projetados na retina de maior contraste de cor.
O menor contraste de cor nas imagens projetadas no fundo de cada olho implica em
uma menor acuidade da percepção de profundidade.
Quando se olha para um ponto do cenário, os dois olhos se direcionam para
este ponto, de forma que a imagem deste ponto fique no centro da imagem projetada
na retina nos dois olhos. A partir da direção dos dois olhos, o cérebro estima a posição
deste ponto no espaço 3D pela percepção por convergência. A estimativa da posição
dos demais pontos se dá pela percepção de disparidade horizontal.
A movimentação dos olhos e da cabeça do observador faz com que o
endereçamento absoluto dos objetos virtuais se altere, provocando efeitos
indesejáveis, chegando a parecer que os objetos fogem do olhar. A rotação da cabeça
em torno do eixo ortogonal ao monitor proporciona disparidade vertical. A rotação da
cabeça em torno do eixo vertical olhando um objeto endereçado ao longe pode
provocar estrabismo divergente. Entre os conflitos de percepções de profundidade,
cabe citar o conflito convergência-acomodação e o cancelamento de quadro. Por
conta destas características, entre os usuários de monitores estereoscópicos, é
comum o relato de mal estar como dor nos olhos e de cabeça. Os próprios fabricantes
destes produtos recomendam o uso moderado do efeito estereoscópico.
2.8. EFEITO HEAD-TRACKING
O efeito Head-Tracking diz respeito à percepção da profundidade com o movimento
da cabeça, ou seja, está associado com a percepção de profundidade por paralaxe de
movimento.
Conforme ilustrado na Figura 16, é possível reproduzir o efeito Head-Tracking
apresentando a perspectiva do cenário sobre o ponto de vista da cabeça do
observador em um monitor 2D.
19
Figura 16 – Reprodução do efeito Head-Tracking em monitor 2D, apresentando a perspectiva do
cenário virtual sobre o ponto de vista do olho
Fonte: Autor
O efeito Head-Tracking em monitor 2D foi proposto por Johnny Lee (LEE,
2007), utilizando como rastreador de cabeça a câmera infravermelha de um controle
WII Remote da Nintendo, que captura a imagem de dois LEDs infravermelhos
inseridos em um par de óculos.
2.9. COMPUTAÇÃO GRÁFICA 3D
Antes do surgimento dos monitores 3D, já existia suporte 3D na computação
gráfica, em que cenários são representados no espaço 3D e perspectivas mais
realistas destes cenários são obtidas por um processo denominado renderização
(rendering). Um cenário é composto por objetos e fontes de luz. Os objetos são
definidos como poliedros com as coordenadas tridimensionais de seus vértices. Além
de sólidos, é possível também definir objetos como fluidos, névoas, fogo e outros.
O processo de renderização requer muito processamento e a grande
independência de dados favorece o uso de processamento paralelo.
Impulsionada pelo mercado de jogos, que hoje é maior que o mercado
cinematográfico, surgiu a placa aceleradora de vídeo dotada de grande poder de
processamento. Hoje, encontram-se no mercado placas de vídeo como a NVIDIA
20
GeForce GTX 690, com 3072 núcleos e ATI Radeon HD 5970 Graphics, com 3200
unidades de processamento.
Entre as bibliotecas gráficas 3D, merecem destaques a OpenGL (Open
Graphics Library) e a Direct3D, por serem soluções bem difundidas.
O padrão OpenGL foi criado em 1992 para oferecer as facilidades do IRIS GL
da Silicon Graphics e favorecer sua adoção pelos fabricantes de hardware (História do
OpenGL). Oferece código aberto e permite extensões a serem desenvolvidas pelos
próprios fabricantes de hardware. As extensões podem ser implementadas em
hardware ou em software para oferecer flexidade de implementação para hardware
limitado. Estas extensões podem ser incorporadas ao padrão, o que favoreceu seu
avanço.
A RenderMorphics, empresa iniciada em 1992, desenvolveu uma API
(Application Programming Interface) para gráficos 3D. Em 1995, a Microsoft comprou
a RenderMorphics para inserir recursos 3D no Windows 95, surgindo o Direct3D, que
compõe a API DirectX juntamente com as APIs DirectDraw, DirectInput, DirectPlay,
DirectSound, DirectSound3D, DirectMusic, DirectX Media, DirectX Media Objects e
DirectX Setup, voltadas para jogos, visando máxima performace e oferecendo
abstração de hardware.
Com o advento dos monitores estereoscópicos, os aplicativos gráficos
estereoscópicos passaram a manipular dois pontos de vista de perspectiva, em vez de
um só.
Praticamente, a primeira solução de baixo custo de monitor estereoscópico
para computação gráfica 3D foi a NVIDIA 3D Vision, que oferece a auto
estereoscopia, em que aplicativos com gráficos 3D que utilizam OpenGl ou Direct3D
se transformam em aplicações estereoscópicas sem a necessidade de adaptações
nestas aplicações. Esta solução é composta por um par de óculos LCD-Shutter de
fabricação exclusiva da NVIDIA, placa de vídeo NVIDIA compatível com NVIDIA 3D-
Vision e monitores de terceiros homologados pela NVIDIA.
As TVs e monitores estereoscópicos vêm se tornando cada vez mais
acessíveis. O padrão de mercado HDMI, que oferece total compatibilidade entre
21
diferentes dispositivos de diferentes fornecedores, oferece também suporte a
estereoscopia na sua versão 1.4.
Para o Windows 8, a Microsoft definiu a versão 1.2 do WDDM (Windows
Display Driver Model) e o DirectX 11.1 que oferecem suporte à estereoscopia com
abstração de hardware, dispensando o uso de APIs específicas de fabricante de placa
de vídeo.
2.9.1. Conceitos da Computação Gráfica 3D
Na computação gráfica 3D, são definidos conceitos abstratos que auxiliam no
equacionamento das matrizes transformação utilizadas no processo de renderização e
são encontrados tanto no Direct3D, quanto no OpenGL.
O monitor 2D apresenta uma perspectiva do cenário virtual definido no espaço
3D filmada por uma câmera abstrata , que captura a imagem projetada em um porto
de visualização (Viewport), conforme ilustrado na Figura 17.
Figura 17 – Princípio da computação gráfica 3D, em que a imagem projetada em um porto de
visualização sobre o ponto de vista da câmera abstrata é reproduzida no monitor
Fonte: Autor
A posição da câmera abstrata representa o ponto de vista da perspectiva a ser
reproduzida. Conforme ilustrado na Figura 18, esta câmera visualiza o porto de
visualização a uma distância Projd com os campos de visão vertical e horizontal
representados pelos ângulos Vφ e Hφ , respectivamente.
22
Figura 18 – Campos de Visão horizontal e vertical
Fonte: Autor
O porto de visualização é uma superfície plana retangular de largura Vw e
altura Vh , conforme ilustrado na Figura 21. O aspecto do porto de visualização
Aspecto é uma variável que estabelece a relação entre estas dimensões, que pode
ser equacionada a partir dos campos de visão por
2
2V
h
V
V
tg
tg
h
wAspect φ
φ
== (1),
na qual Proj22 d
wtg Vh =φ
e Proj22 d
htg VV =φ
.
Figura 19 – Dimensões do porto de visualização
Fonte: Autor
Quando o aspecto do porto de visualização for diferente do aspecto do monitor,
a imagem apresentada fica deformada.
Os objetos virtuais, a serem apresentados no monitor, são delimitados pelos
planos de corte Frontal e Traseiro (Near e Far ou Front e Back), paralelos ao plano de
projeção, conforme ilustrado na Figura 20. A distância destes planos de corte Frontal
23
e Traseiro ao ponto de vista da perspectiva a ser reproduzida é representada com
valor absoluto pelas variáveis n e f , respectivamente.
Figura 20 - Planos de corte Frontal e Traseiro
Fonte: Autor
Conforme ilustrado na Figura 21, os planos de corte e os campos de visão
definem o volume de visualização (Viewing Frustum), onde estão contidos os
objetos virtuais que devem ser apresentadas no monitor.
Figura 21 - Volume de Visualização
Fonte: (Viewports and Clipping)
Adotou-se a notação Objp e Objc como representação do ponto p e da
coordenada c referente à posição de um objeto Obj , cujas siglas dos objetos
apresentados neste tópico estão definidas na Tabela 2.1, tendo como exemplos a
posição do plano de projeção representada pelo ponto Projp e a coordenada z do
plano de corte Frontal representada por nz .
24
Tabela 2.1 - Abreviações dos nomes de objetos utilizadas em índices Objeto Abreviação Câmera Abstrata cam Plano de Corte Frontal n Plano de Corte Traseiro f Plano de Projeção Proj Porto de Visualização V
2.9.2. Orientações de Sistema de Coordenadas 3D
Por convenção, o vetor coluna representa as coordenadas no sistema de
coordenadas com orientação de mão direita e o vetor linha representa as
coordenadas no sistema de coordenadas com orientação de mão esquerda, conforme
ilustrado na Figura 22.
Figura 22 - Sistemas de coordenadas com orientações de mão esquerda e de mão direita
Fonte: (Coordinate Systems)
A transformação das coordenadas de uma orientação para outra, se dá pela
transposta do vetor de coordenadas e pela troca do sinal da coordenada z .
Para distinguir a orientação do sistema referencial em uma variável, adotou-se
a notação em que o índice abaixo da variável com md para orientação da mão direita
e me para orientação de mão esquerda, tendo como exemplo a variável mdM que
representa uma matriz transformação entre sistemas referenciais com orientação de
mão direita.
25
No Direct3D, os sistemas referenciais utilizados são com orientação de mão
esquerda, passando para mão direita na versão 11.1, e no OpenGL, com orientação
de mão direita.
2.9.3. Sistemas Referenciais da Computação Gráfica 3D
Na computação gráfica 3D são conceituados quatro sistemas referenciais:
• Sistema Referencial Local ( Local Space ): Um objeto é definido
isoladamente em um sistema referencial próprio denominado sistema referencial
Local, ou espaço Local.
• Sistema Referencial Global (World Space) : O sistema referencial
Global, ou espaço Global, é utilizado para posicionar todos os objetos que compõem
um cenário. O posicionamento de cada objeto é definido por uma matriz
transformação que transforma todas as coordenadas do objeto no espaço local em
coordenadas no espaço global.
• Sistema Referencial Vista ( View Space ): Conforme ilustrado na Figura
23, o posicionamento da câmera abstrata define a origem, a direção e sentido dos
eixos do sistema referencial Vista. A origem deste sistema referencial corresponde
ao ponto de vista da perspectiva a ser projetada no plano de projeção. A parte
superior da câmera define o eixo y, seu lado direito define o eixo x e a direção de
sua lente define a direção do eixo z, tendo mesmo sentido na orientação de mão
esquerda e sentido contrário na orientação de mão direita.
Figura 23 - Sistema Referencial Vista
Fonte: Autor
26
• Sistema Referencial de Projeção ( Projection Space ): No sistema
referencial de projeção, o volume de visualização fica transformado em um
paralelepípedo padronizado, em que o valor das coordenadas xProj e yProj dentro do
volume de visualização varia entre -1 e 1 e o valor da coordenada de profundidade
dentro deste volume de visualização varia entre 0 e 1 no Direct3D, entre 0 e -1 no
DirectX 11.1 e entre 1 e -1 no OpenGL, conforme ilustrado na Figura 24.
Figura 24 – Padronização das coordenadas dos vértices do volume de visualização no sistema
referencial de projeção
Fonte: Autor
Para auxiliar na conceituação do sistema referencial de Projeção, são utilizados
os sistemas referenciais de Projeção Simples e de Projeção Genérica.
Adotou-se a notação cSR e SRM como representação da coordenada c no
sistema referencial SR e da matriz que transforma as coordenadas para o sistema
referencial SR, respectivamente. As siglas que representam os sistemas referenciais
apresentados neste tópico estão definidas na Tabela 2.2, tendo como exemplos a
coordenada z do plano de corte Frontal no sistema referencial de Projeção
representada por nzProj e a matriz que transforma as coordenadas para o sistema
referencial de Projeção ProjM .
27
Tabela 2.2 - Abreviações dos sistemas referenciais usadas em índices
Sistema Referencial Abreviação Local Local Global Global De Visualização Vista De Projeção Simples P De Projeção Genérica PG De Projeção Proj
2.9.4. Coordenadas Homogêneas
Para se transformar as coordenadas 3D de um sistema referencial de para
outro para, utilizando coordenadas euclidianas, são necessários uma matriz 3x3 e um
vetor de três dimensões, conforme equacionamento feito para sistemas de
coordenadas com orientação de mão esquerda
[ ] [ ] [ ]000
333231
232221
131211
zyx
TTT
TTT
TTT
zyxzyx paraparaparadededeparaparapara +
= (2),
na qual o vetor [ ]000 zyx paraparapara contém as coordenadas da origem do sistema
referencial de no sistema referencial para.
É possível equacionar a mesma transformação de sistemas de coordenadas
euclidianas utilizando um espaço de quatro dimensões, em que é necessária uma
única matriz 4x4, na qual a quarta coordenada dos vetores tenha o valor unitário,
resultando em
[ ] [ ]
=
1
0
0
0
11
000
333231
232221
131211
zyx
TTT
TTT
TTT
zyxzyx
tototo
dededeparaparapara (3),
ou simplesmente
pMp depara = (4).
Além de necessitar de apenas uma única matriz para representar a
transformação entre sistemas referenciais, esta representação permite a
transformação inversa a partir da inversa da matriz transformação 1−= pMp parade (5).
28
Outra vantagem desta representação 4D do espaço 3D, é que a matriz
transformação resultante de uma dupla-transformação corresponde ao produto das
matrizes transformação parciais.
Esta quarta coordenada pode ser utilizada como um fator de escala que divide
as demais coordenadas para se obter as coordenadas 3D representadas, ou seja, o
vetor [ ]hzyx é representante do vetor de coordenadas euclidianas
hz
hy
hx .
Estas coordenadas 4D que representam o espaço 3D são conhecidas por
coordenadas homogêneas, que são utilizadas na computação gráfica 3D nas
transformações de coordenadas de um sistema referencial para outro.
Se o valor de h for nulo, as coordenadas representam uma coordenada que se
encontra no infinito na direção [ ]zyx , que é usual na computação gráfica 3D.
Além de permitir transformações lineares de coordenadas entre sistemas
referenciais diferentes, esta matriz 4x4 pode reproduzir projeções, que serão
apresentadas nos tópicos 2.9.4.3 e 2.9.4.4.
2.9.4.1. Correspondência entre as matrizes transfor mação para sistema de mão
esquerda e mão direita
A transformação de uma matriz transformação de coordenadas homogêneas
na mudança de orientação é dada por
−
−=
1000
0100
0010
0001
1000
0100
0010
0001
T
mdmeTT (6)
e
−
−=
1000
0100
0010
0001
1000
0100
0010
0001
T
memdTT (7),
na qual mdT é a matriz transformação entre sistemas referenciais com orientação de
29
mão direita e meT é a matriz transformação entre sistemas referenciais com orientação
de mão esquerda.
2.9.4.2. Translação de Sistema Referencial
A figura 30 ilustra um sistema referencial para que corresponde ao sistema
referencial de com sua origem deslocada para as coordenadas paraodex ,
paraode y e paraode y .
Figura 25 - Sistema referencial to obtido pela translação da origem do sistema referencial de para as
coordenadas paraodex ,
paraode y e paraode y
As matrizes meT e
mdT que efetuam esta transformação por translação de
referencial, respectivamente entre sistemas com orientação de mão esquerda e mão
direita, correspondem a
−−−
=
1
0100
0010
0001
paraparapara omede
odeode
me
zyx
T
(8) e
−−−
=
1000
100
010
001
para
para
para
omdde
ode
ode
md z
y
x
T (9).
30
2.9.4.3. Projeção no Plano
A projeção no plano, ou projeção cônica, corresponde a uma transformação de
coordenadas para um sistema referencial de projeção P , em que todas as
coordenadas projetadas ficam contidas no plano de projeção. A projeção no plano é
utilizada para se obter uma imagem em perspectiva cônica do cenário 3D.
Conforme Figura 26, se o sistema referencial original tiver como origem o
próprio ponto de vista e a direção z ortogonal ao plano de projeção, as coordenadas
do ponto projetado podem ser obtidas por semelhança de triângulos.
Figura 26 - Vistas superior e lateral de uma projeção no plano
Fonte: Autor
Pode-se observar que o valor das coordenadas euclidianas de projeção de uma
imagem endereçada nas coordenadas imPx , imPy e imPz corresponde ao valor das
coordenadas euclidianas da imagem imx , imy e imz multiplicadas pela profundidade do
plano de projeção Projd e divididas pela profundidade da imagem imPz , portanto,
projetar no plano corresponde a atribuir a profundidade da imagem imz no valor da
quarta coordenada homogênea e o produto da respectiva coordenada euclidiana pela
profundidade do plano de projeção Projd nas demais coordenadas homogêneas, ou
seja, [ ]immdimmd
imimimmeP
zzdydxdp ... ProjProjProj= .
Como [ ] [ ]Pmeimmd
imimimmdimmd
imim Mzyxzzdydxd 1... ProjProjProj = , a matriz que
efetua esta transformação corresponde a
31
=
0000
100
000
000
Proj
Proj
Proj
d
d
d
MPme
(10).
A matriz projeção para sistema referencial com orientação de mão direita PmdM
é
obtida aplicando a transformação da equação 7 em
−
−=
1000
0100
0010
0001
1000
0100
0010
0001
T
PmePmdMM
, resultando em
−
=
0100
000
000
000
Pr
Pr
Pr
oj
oj
oj
Pmd d
d
d
M (11).
Nesta projeção, que corresponde à transformação para o sistema referencial
de Projeção Simples, a coordenada representada de profundidade de um ponto
projetado é sempre igual à coordenada de profundidade euclidiana do plano de
projeção. No sistema referencial de Projeção Genérica, a coordenada de profundidade
euclidiana tem correspondência biunívoca com a respectiva profundidade no espaço
original, com o elemento da matriz 43me
m não nulo para orientação de mão esquerda e
34mdm não nulo para orientação de mão direita. Com base nas equações 10 e 11, a
matriz transformação para o espaço de Projeção Genérica fica representada por
=
000
100
000
000
43
33
22
11
PG
m
m
m
m
Mme
(12)
para orientação de mão esquerda e
−
=
0100
00
000
000
3433
22
11
PG mm
m
m
Mmd
(13)
para orientação de mão direita.
32
2.9.4.4. Projeção Normalizada
A projeção normalizada visa transformar o volume de visualização em um
paralelepípedo, com os valores das coordenadas euclidianas de seus vértices
padronizados, possibilitando que a biblioteca gráfica determine quais vértices de
objetos estão dentro deste volume de visualização.
Na projeção normalizada, as coordenadas euclidianas x e y das arestas do
porto de visualização
−−2
,2
VV hw,
−2
,2
VV hw,
2,
2VV hw
e
−2
,2
VV hw passam a valer
[ ]1,1−− , [ ]1,1− , [ ]1,1 e [ ]1,1− no sistema referencial de Projeção, a coordenada
homogênea de profundidade do plano de corte Frontal assume o valor de
normalização nzProj e a coordenada homogênea de profundidade do plano de corte
Traseiro assume o valor de normalização fzProj . Os pontos com suas coordenadas
homogêneas
1
22 Projdhw vv , [ ]100 n e [ ]100 f têm suas projeções nas
coordenadas euclidianas [ ]ProjProj11 z , [ ]nzProj00 e [ ]fzProj00 , que são
representadas respectivamente pelas coordenadas homogêneas
[ ]ProjProjProjProjProjProj ddzdd , [ ]nnzn.00 Proj e [ ]ffzf .00 Proj . Os valores não
nulos da matriz Projme
M são obtidos a partir do sistema de equações
[ ][ ] [ ][ ] [ ]
=
=
=
ProjProj
ProjProj
ProjProjProjProjProjProjProjProj
100.00
100.00
122
mef
men
me
vv
Mfffz
Mnnnz
Mdhw
ddzdd
.
Como a matriz de projeção normalizada para orientação de mão esquerda tem
a mesma configuração que a respectiva matriz de projeção genérica da equação 12, a
solução do sistema de equações resulta em
33
−−
−−=
0.).(
00
1..
00
002
0
0002
ProjProj
ProjProj
Proj
Proj
Proj
nf
fnzznf
nzfzh
dw
d
M
fn
nf
v
v
me
(14).
A matriz projeção normalizada para sistema referencial com orientação de mão
direita ojmdM
Pr é obtida pela transformação da equação 7 em
−
−=
1000
0100
0010
0001
1000
0100
0010
0001
ProjPr
T
meojmdMM
, que resulta em
−−
−−
−−
=
0100
.).(..00
002
0
0002
ProjProjProjProj
Proj
Proj
Pr
nf
fnzz
nf
nzfzh
dw
d
M
fnnf
v
v
ojmd
(15).
Como V
V
h
wAspecto= conforme equação 1, para as equações 12 e 13
correspondem a
−−
−−=
0.).(
00
1..
00
002
0
0002
ProjProj
ProjProj
Proj
Proj
Proj
nf
fnzznf
nzfz
Aspectow
dw
d
M
fn
nf
v
v
me (16)
e
−−
−−
−−
=
0100
.).(..00
002
0
0002
ProjProjProjProj
Proj
Proj
Proj
nf
fnzz
nf
nzfz
Aspectow
dw
d
M
fnnf
v
v
md (17).
34
2.9.5. Matrizes Transformação da Computação Gráfica 3D
As matrizes transformação utilizadas na computação gráfica 3D são:
• Matriz Global GlobalM (World Matrix ): A matriz Global tem a função de
inserir um objeto em um cenário, atribuindo posição, direção e tamanho. A matriz
global é utilizada para converter as coordenadas homogêneas que definem o objeto
no seu sistema referencial local para o sistema referencial global.
• Matriz Vista VistaM (View Matrix ): A matriz Vista transforma as
coordenadas homogêneas do sistema referencial global em coordenadas do sistema
referencial Vista, posicionando a câmera abstrata no cenário.
• Matriz Projeção ProjM (Projection Matrix ): Esta matriz efetua a
normalização do volume de visualização, transformando as coordenadas
homogêneas do cenário em coordenadas de perspectiva, configurando o aspecto do
porto de visualização, o campo de visão horizontal e a posição dos planos de corte.
A matriz projeção é obtida substituindo os valores padrões nas equações 16 e
17, com 0Proj =nz e 1Proj =fz na equação 16 para o Direct3D, 0Proj =nz e 1Proj −=fz na
equação 17 para o Direct3D 11 e, 1Proj =nz e 1Proj −=fz na equação 18 para o
OpenGL, resultando respectivamente em
−−
−
=
0.
00
100
002
0
0002
Proj
Proj
Proj3
nf
fnnf
f
Aspectow
dw
d
M v
v
DlDirect (18),
−−
−−
−
=
0100
.00
002
0
0002
Proj
Proj
Proj113
nf
fn
nf
f
Aspectow
dw
d
Mv
v
DDirect (19)
35
e
−−
−−
−
=
0100
.00
002
0
0002
Proj
Proj
Proj113
nf
fn
nf
f
Aspectow
dw
d
Mv
v
DDirect (20).
36
Capítulo 3
ESTADO DA ARTE DOS MONITORES 3D
Os monitores 2D, que reproduzem uma única perspectiva de um cenário 3D, já
proporcionam sensação de profundidade por conta de algumas informações de
profundidade monoculares como as de sombreamento, de oclusões, de tamanho
relativo, de nebulosidade, de distorção da perspectiva e de gradiente de textura. O
monitor 3D visa explorar as demais percepções como as percepções binoculares, de
acomodação e de paralaxe de movimento.
Atualmente, existem muitos desenvolvimentos de monitor 3D, que podem ser
classificados em monitor estereoscópico, monitor auto estereoscópico e monitor
volumétrico.
3.1. MONITORES ESTEREOSCÓPICOS
O monitor estereoscópico explora as percepções de profundidade paralaxe
binocular, fazendo com que cada olho do observador visualize uma perspectiva em
um ponto de vista diferente.
Para que cada olho do observador visualize uma imagem diferente, estas
duas imagens são apresentadas misturadas no monitor e separadas por filtros em
lentes de óculos. Conforme Blonde (BLONDE, 2010), Fliegel (FLIEGEL, 2010),
Fujikawa (FUJIKAWA, 2010), Hill (HILL, 2010), Shi (SHI, 2010) e Shuhong
(SHUHONG, 2010), os principais sistemas estereoscópicos monitor-óculos são
anaglifo, polarização da luz, INFITEC e LDC Shutter, existindo ainda no contexto da
estereoscopia pares de óculos ou capacetes contendo um visor para cada olho.
O Anaglifo é destinado à reprodução estereoscópica de imagens
monocromáticas, em que a imagem de cada olho é reproduzida em uma cor diferente.
Cada lente de um par de óculos filtra a cor a ser vista pelo respectivo olho, conforme
ilustrado na Figura 27. A fusão das imagens pelo cérebro não é tão confortável, pois
cada olho recebe a imagem em uma cor diferente.
37
Figura 27 – Exemplo de óculos Anaglifo (NVIDIA 3D Vision)
Fonte: Autor
Segundo Shuhong (SHUHONG, 2010), para o monitor estereoscópico baseado
em filtros de luz polarizada, existem dois tipos de polarização que permitem a mistura
e a separação das imagens: a polarização linear e a polarização circular. Existem
implementações deste sistema tanto em projetores, quanto em monitores LCD. Uma
desvantagem desta solução é que a polarização da luz pode sofrer mudanças no
ambiente.
Figura 28 – Estereoscopia com filtro de polarização linear usando dois projetores
Fonte: (SHUHONG, 2010)
No INFITEC, a separação das imagens se dá por comprimento de onda.
Conforme ilustrado na Figura 29, são reproduzidas duas tonalidades para cada cor
primária RGB, sendo que uma tonalidade é vista por um olho e não é vista pelo outro.
São utilizados dois filtros de cores, cada um passa apenas uma tonalidade de cada
cor primária. Esta solução é encontrada apenas em projetores. São utilizados dois
projetores, cada um com um filtro de cores. Cada lente dos óculos possui um filtro
diferente, fazendo com que a imagem projetada por um projetor só seja vista pelo olho
correspondente. A Figura 30 ilustra um par de óculos INFITEC.
38
Figura 29 – Princípio do INFITEC, em que cada filtro deixa passar apenas um conjunto de cores
primárias
Fonte: (FLIEGEL, 2010)
Figura 30 – Exemplo de óculos INFITEC
Fonte: (INFITEC)
No LCD Shutter, as imagens são separadas no tempo, em que os quadros
ímpares são vistos por um olho e os pares pelo outro. Um sinal de sincronismo é
enviado para o par de óculos, fazendo com que as lentes dos óculos fiquem opacas
ou translúcidas no momento correto, conforme ilustrado na Figura 31. Por ser ativo, o
par de óculos LCD Shutter costuma ter maior preço de aquisição. Esta tecnologia é
utilizada em monitores e em projetores.
39
Figura 31 – Princípio de funcionamento do LCD Shutter. Enquanto uma lente fica opaca a outra fica
translúcida
Fonte: (SHUHONG, 2010)
É possível reproduzir também o efeito estereoscópico em pares de visores, um
visor para cada olho, embutidos em óculos ou capacetes.
Figura 32 – Exemplo de óculos com visores embutidos
Fonte: (Sony Insider)
40
3.2. MONITORES AUTO ESTEREOSCÓPICOS
A Auto Estereoscopia surgiu com a ideia de se reproduzir efeitos
estereoscópicos sem a necessidade de óculos, que pode ser possível utilizando
barreiras de paralaxes (Parallax Barrier) ou cadeia de lentes (Lens Array), conforme
ilustrado na Figura 33.
Figura 33 – Barreira de paralaxe e cadeia de lentes
Fonte: (HILL, 2010)
Geralmente, o grande problema dos monitores auto estereoscópicos é que o
observador precisa ficar posicionado em uma janela de visualização. Quanto à janela
de visualização, um monitor auto estereoscópico pode ser classificado em janela de
visualização fixa, com rastreamento de cabeça e com múltiplas vistas (Multiview).
Na janela de visualização fixa, conforme ilustrado na Figura 34, a cabeça do
espectador precisa ficar localizada em uma posição correta para visualizar a imagem
tridimensional.
41
Figura 34 – Janela de visualização fixa
Fonte: (HILL, 2010)
No monitor auto estereoscópico com rastreamento de cabeça, um rastreador
de cabeça determina a posição dos olhos do usuário ou de vários usuários (MUTED –
Multi-user Television Display) e o monitor apresenta imagens diferentes para direções
diferentes, de forma que cada olho visualize uma perspectiva do cenário coerente com
sua posição. Existem diferentes implementações de rastreadores de cabeça, sendo
tendência o reconhecimento da posição dos olhos em imagem capturada por câmera.
A Figura 35 ilustra o reconhecimento do ponto de vista dos olhos de vários
espectadores em uma imagem capturada por uma câmera para a reprodução auto
estereoscópica.
Figura 35 – Rastreamento de Cabeça
Fonte: (BRAR, 2010)
42
No monitor com múltiplas vistas, são apresentadas várias perspectivas do
cenário 3D, cada uma visualizada por um ângulo diferente, disponibilizando várias
janelas de visualização.
Figura 36 – Auto estereoscopia com Múltiplas Vistas
Fonte: (HILL, 2010)
3.3. MONITORES VOLUMÉTRICOS
O monitor volumétrico explora todas as percepções de profundidade.
Favalora (FAVALORA, 2005) classifica os monitores 3D volumétricos em Volume de
Varredura (Swept Volume), Volume Estático (Static Volume),
Hologramas/Estereogramas Holográficos e com várias múltiplas vistas (Highly
Multiview).
De acordo com Favalora (FAVALORA, 2005), o monitor volumétrico foi
proposto em 1912.
A Figura 37 ilustra um exemplo de monitor volumétrico com volume de
varredura, em que uma tela de projeção solidária a um projetor gira, fazendo com que
a luz emitida pelo projetor seja refletida no espaço 3D, como se um objeto no espaço
tivesse emitindo luz.
43
Figura 37 - Monitor 3D Volumétrico com espelho e projetor
Fonte: (FAVALORA, 2005)
No monitor volumétrico de volume estático, a imagem produzida no espaço é
obtida com a luz refletida ou transmitida em meio estático.
Como exemplos de monitor 3D volumétrico com volume estático, cabe citar o
monitor baseado em múltiplas camadas de LCD ilustrado na Figura 38 e o monitor
que cria bolhas de plasma no ar a partir de pulsos de laser, ilustrado na Figura 39.
Figura 38 - Monitor 3D Volumétrico com multicamadas de LCD. Cada camada de LCD é controlada
para ficar transparente ou dispersar a luz
Fonte: (SHI, 2010)
44
Figura 39 - Monitor 3D Volumétrico com bolhas de plasma produzida com pulso de laser
Fonte: (SHUHONG, 2010)
De acordo com Yaras (YARAS, 2010), a holografia foi concebida em 1947 por
Dennis Gabor (1900-1973). Foi implementada pela primeira vez nos anos 60, graças
ao advento do laser.
Shi (SHI, 2010) descreve que o princípio essencial da holografia consiste em
capturar imagem de objetos, registrando suas informações de ondas de luz através da
interferência, exibindo esta imagem com a reprodução destas ondas de luz através da
difração.
De acordo com Kreis (KREIS, 2007), a imagem 3D é reproduzida por SLM
(spatial light modulators). O SLM é iluminado com luz coerente, que por difração de
campo de onda, reconstitui a imagem virtual do cenário original.
Figura 40 - Captura e reprodução de imagem Holográfica. Na holografia, a imagem é capturada pela
interferência de luz e reproduzida por difração
Fonte: (STERN, 2006)
45
Favalora (FAVALORA, 2005) qualifica como monitor com várias múltiplas vistas
(Highly Multiview) o monitor com uma quantidade entre 30 e 200 vistas, quantidade
considerada suficiente para explorar a percepção de profundidade por acomodação.
Esta classe de monitores é considerada emergente.
Tecnologicamente, o monitor com várias múltiplas vistas depende da alta
densidade de pixels e do poder de processamento na obtenção de várias
perspectivas.
Uma desvantagem deste monitor 3D está na falta de percepção de
profundidade de paralaxe de movimento para movimento vertical da cabeça do
espectador. Outra desvantagem é que a inclinação da cabeça do espectador em
relação ao eixo ortogonal ao monitor proporciona disparidade vertical. Estas
desvantagens podem ser superadas utilizando matrizes de lentes em vez de cadeia
de lentes, exigindo uma densidade ainda maior de pixels e um maior poder de
processamento para renderizar a maior quantidade de perspectivas.
46
Capítulo 4
MODELAGEM DO EFEITO 3D COMPOSTO
No efeito 3D que combina os efeitos Head-Tracking e estereoscópico, cada
olho visualiza uma perspectiva do cenário virtual sobre o seu ponto de vista. Além de
explorar as percepções de paralaxe de movimento e binoculares, pretende-se reduzir
distorções e evitar a disparidade vertical.
A reprodução do efeito 3D composto consiste em substituir o par original de
matrizes transformação, gerado para reproduzir uma perspectiva do cenário virtual,
por dois pares substitutos de matrizes transformação, cada par definindo a
perspectiva a ser vista pelo respectivo olho. Cada par substituto de matrizes
transformação é determinado a partir do par original de matrizes transformação e das
coordenadas reais 3D do ponto de vista do respectivo olho.
Na reprodução do efeito 3D composto, é dado o mesmo tratamento
individualmente para cada olho.
4.1. ABORDAGEM PROPOSTA PARA A COMPUTAÇÃO GRÁFICA 3 D
Os sistemas referenciais e as variáveis da computação gráfica 3D, existentes
na abordagem original, existem também nesta abordagem proposta, mas com suas
particularidades, com uma composição para cada olho. Cada olho é tratado
separadamente e da mesma forma. Nos equacionamentos, as variáveis das duas
abordagens são correlacionadas, existindo a necessidade de distinguir os sistemas
referenciais e as variáveis das duas abordagens. Esta distinção é feita com uma
apóstrofe adicionada ao nome dos sistemas referenciais e das variáveis na
abordagem proposta.
Conforme ilustrado na Figura 41, o monitor no espaço real corresponde ao
porto de visualização no espaço virtual. Ambos funcionam como uma janela de
visualização, através da qual, o observador visualiza o cenário virtual. Esta
correspondência define a transformação entre os espaços Real e Virtual, permitindo
transformar para o espaço Virtual as coordenadas dos olhos medidas no espaço Real.
47
Figura 41 – Correlação entre o espaço Real e o espaço virtual, em que o monitor no espaço Real
corresponde ao porto de visualização no espaço Virtual, que ambos funcionam como uma janela de
visualização, através da qual se visualiza o cenário virtual
Fonte: Autor
Para garantir a correspondência entre o monitor e o porto de visualização, o
aspecto do porto de visualização é igualado ao aspecto do monitor `Aspecto, que
corresponde à relação entre sua largura Dw e altura Dh , conforme ilustrado na Figura
42. Para tanto, um dos campos de visão da câmera também precisa ser ajustado,
optando-se em manter igual o campo de visão horizontal da câmera Hφ . O aspecto do
monitor é dado por
)2`(
)2(`
v
h
D
D
tg
tg
h
wAspecto φ
φ== (21).
Figura 42 – Dimensões do Monitor
Fonte: Autor
48
A câmera abstrata é solidária à janela de visualização, tendo a função de
posicioná-la no espaço virtual.
O volume de visualização, que contém os objetos a serem visualizados no
monitor, fica delimitado pelos planos de corte e pelos campos de visão do olho sobre
a janela de visualização, conforme ilustrado na Figura 43.
Figura 43 – Volume de Visualização na abordagem proposta
Fonte: Autor
4.2. SISTEMAS REFERENCIAIS DA CG 3D NA ABORDAGEM PR OPOSTA
No sistema referencial Vista, sua origem corresponde ao ponto de vista da
perspectiva a ser reproduzida e a direção e o sentido dos seus eixos são definidos
pela inclinação do porto de visualização, que equivale à inclinação da câmera
abstrata. Nesta abordagem, em que o sistema referencial Vista é representado pelo
espaço Vista`, como o posicionamento do porto de visualização se mantém e o ponto
de vista da perspectiva passa a ser o ponto de vista do olho, a inclinação da câmera
continua definindo a direção e o sentido de seus eixos e a sua origem passa a ser o
ponto de vista do olho.
49
Figura 44 - Sistema Referencial Vista`
Fonte: Autor
No novo sistema referencial de projeção, representado pelo espaço Proj`, o
novo volume de visualização continua sendo um paralelepípedo com a mesma
normalização das coordenadas dos vértices.
Para medir a posição real dos olhos do observador, é definido o sistema
referencial Real. Optou-se em utilizar apenas a orientação de mão esquerda, com a
origem no centro do monitor, o eixo x sendo o eixo horizontal, o eixo y sendo o eixo
vertical e o eixo z sendo ortogonal ao plano do monitor com sentido positivo para trás
do monitor.
Figura 45 - Sistema Referencial Real Fonte: Autor
A Tabela 4.1 define as siglas dos objetos apresentados neste tópico e a Tabela
4.2 a sigla do novo sistema referencial utilizado.
50
Tabela 4.1 - Abreviações dos nomes de objetos utilizadas em índices Objeto Abreviação Olho do Observador Olho Monitor D
Tabela 4.2 - Abreviações dos sistemas referenciais usadas em índices
Sistema Referencial Abreviação Real Real
4.3. POSICIONAMENTO DOS PLANOS DE CORTE
Nesta abordagem, as distâncias dos planos de corte e de projeção ao ponto de
vista da perspectiva, passam a serem medidas em relação ao ponto de vista do olho,
sendo representadas pelas variáveis `n , `f e Proj`z , conforme ilustrado na Figura 46.
Figura 46 – Posição dos planos de projeção Proj e de corte Frontal e Traseiro na abordagem proposta
Fonte: Autor
As distâncias dos planos de corte Frontal, de corte Traseiro e de Projeção ao
olho são dadas por
51
−=
−=−=
OlhomeVista
OlhomeVistame
OlhomeVistame
zdd
zff
znn
ProjProj`
`
`
(22)
para orientação de mão esquerda e
+=
+=+=
OlhomdVista
OlhomdVistamd
OlhomdVistamd
zdd
zff
znn
ProjProj`
`
`
(23)
para orientação de mão direita.
4.4. MATRIZES TRANSFORMAÇÃO DA CG 3D NA ABORDAGEM P ROPOSTA
Na abordagem proposta, a nova matriz vista, ou matriz vista substituta VistaM `
é obtida com a translação da origem do sistema referencial Vista para a posição do
ponto de vista do olho, sendo
−−−
=
1
0100
0010
0001
`
OlhoVistaOlhoVistaOlhoVista
VistameVista
me
zyx
MM (24)
para orientação da mão esquerda e
VistamdOlhoVista
OlhoVista
OlhoVista
Vistamd
Mz
y
x
M
−−−
=
1000
100
010
001
` (25)
para orientação de mão direita.
Se na matriz de projeção, formulada na equação 16, as variáveis n, f , Projd e
Aspecto forem substituídas respectivamente pelas variáveis `n , `f , Proj`d e `Aspecto ,
o volume de visualização no espaço de projeção Proj` fica deslocado nas direções x
e y . Portanto a nova matriz projeção, ou matriz projeção substituta Proj`M , que
normaliza as dimensões do novo volume de visualização e compatibiliza o aspecto do
porto de visualização com o aspecto do monitor, corresponde a
52
∆∆
−
−−
−=
10
0100
0010
0001
.
0``
``.).(00
1``
`.`.00
00``2
0
000`2
`
ProjProj
ProjProj
Proj
Proj
Pr
yx
nf
fnzznf
nzfz
Aspectow
dw
d
M
fmenme
nmefme
v
v
ojme
,
ou ainda
−
−−
−∆∆
=
0``
``.).(00
1``
`.`.
00``2
0
000`2
`
ProjProj
ProjProj
Proj
Proj
Proj
nf
fnzznf
nzfzyx
Aspectow
dw
d
M
fmenme
nmefme
v
v
me
(26),
na qual x∆ e y∆ correspondem ao deslocamento do volume de visualização
normalizado no espaço de projeção.
O centro da janela de visualização tem coordenadas homogêneas
[ ]1P̀rojdyx OlhoVistaOlhoVista −− no espaço Vista` e coordenadas homogêneas
[ ]ProjProjProjProj ``.`00 dnd no espaço Proj`. As incógnitas x∆ e y∆ podem ser
determinadas pelo equacionamento
[ ] [ ]ProjProjProjProjProj
ProjProjista ``.`00`1` dndMdyxme
OlhoOlhoVista =−− ,
correspondente ao sistema de equações
=∆+−
=∆+−
0.```2
.
0.``2
.
ProjProj
Projista
PrProj
ydAspectow
dy
xdw
dx
vOlho
ojv
OlhoVista
,
que tem como solução
v
OlhoVista
w
xx
2=∆ e `2
Aspectow
yy
v
OlhoVista=∆ .
Substituindo estas variáveis na equação 26, obtém-se
53
−−
−−=
0``
``.).(00
1``
`.`.`
22
00``2
0
000`2
`
ProjProj
ProjProj
Proj
Proj
Proj
nf
fnzznf
nzfzAspecto
w
y
w
x
Aspectow
dw
d
M
fn
nf
v
OlhoVista
v
OlhoVista
v
v
me
(27).
Transformando esta matriz para sistema de orientação de mão direita com a equação
7, obtém-se
−−
−−
−−
−
−
=
0100``
``.).(
``
`.`.00
0`2
``2
0
02
0`2
`
ProjProjProjProj
Proj
Proj
Proj
nf
fnzz
nf
nzfz
Aspectow
yAspecto
w
dw
x
w
d
M
fnnf
v
OlhoVista
v
v
OlhoVista
v
md
(28).
Ao Substituir 0Proj =nz e 1Proj =fz na equação 27 para o Direct3D; 0Pr =noj z e
1Proj −=fz na equação 28 para o Direct3D 11 e 1Proj =nz e 1Proj −=fz na equação 28
para o OpenGL, estas matrizes resultam respectivamente em
−−
−
=
0``
``.00
1``
``
22
00``2
0
000`2
`
Proj
Proj
Proj3
nf
fnnf
fAspecto
w
y
w
x
Aspectow
dw
d
M
v
OlhoVista
v
OlhoVista
v
v
DDirect (29),
−−
−−
−
−
−
=
0100``
``.
``
`00
0`2
``2
0
02
0`2
`Proj
Proj
Proj113
nf
fn
nf
f
Aspectow
yAspecto
w
dw
x
w
d
Mv
OlhoVista
v
v
OlhoVista
v
DDirect (30)
54
e
−−−
+−
−
−
=
0100``
``..2
``
``00
0`2
``2
0
02
0`2
`Proj
Proj
Proj
nf
fn
nf
nf
Aspectow
yAspecto
w
dw
x
w
d
Mv
OlhoVista
v
v
OlhoVista
v
OpenGL (31).
O rastreador de cabeça determina a posição do ponto de vista dos olhos do
observador no sistema referencial Real OlhopReal , cujas coordenadas precisam ser
transformadas para o sistema referencial Vista da reprodução básica OlhoVista p . Para
isto, é definida a matriz alMRe , que transforma as coordenadas do sistema referencial
Real para o sistema referencial Vista da reprodução básica, a partir do
equacionamento para orientação de mão esquerda
almeOlhomealOlhomeVista
MppReRe
= (32)
e para orientação de mão direita
Olhome
T
alalmeOlhomdVista
pMpReRe
= (33).
Como a inclinação da câmera abstrata corresponde à inclinação do porto de
visualização, que por sua vez, corresponde à inclinação do monitor, a direção e o
sentido dos eixos x, y e z são os mesmos nos sistemas referenciais Vista e Real,
portanto a transformação de coordenadas do sistema referencial Real para o sistema
referencial Vista se resume na translação da origem do centro da janela de
visualização para a posição da câmera abstrata e na mudança de escala, por
intermédio de um fator de escala s, resultando em
=
1
000
000
000
Re
VVistaVVistaVVista
alme
zyx
s
s
s
M .
Como o centro do monitor se encontra sobre o eixo z no sistema referencial
Vista da reprodução básica e a janela de visualização fica no plano de projeção, vale
0=VVista x , 0=VVista y e ProjdzVlhVista
= , resultando em
55
=
100
000
000
000
Proj
Re
d
s
s
s
Malme
(34).
Por conveniência, a orientação do sistema referencial Real será sempre de mão
esquerda. A matriz Real almd
MRe
, que transforma as coordenadas do sistema referencial
Real com orientação de mão esquerda para coordenadas do sistema referencial Vista
com orientação de mão direita corresponde a
−=
1000
00
000
000
.
1000
0100
0010
0001
ProjRe ds
s
s
Malmd
,
resultando em
−−=
1000
00
000
000
ProjRe ds
s
s
Malmd
(35).
O fator de escala s pode ser obtido pela relação entre a largura da janela de
visualização no sistema referencial Visa VVista w e a largura real do monitor Dal wRe ,
resultando em
Dal
vVista
w
ws
Re
= (36).
Substituindo as equações 34 e 35 na equação 32, obtêm-se as coordenadas
do ponto de vista do olho para orientação de mão esquerda
[ ] [ ]
=
100
000
000
000
.11
Proj
RealRealReal
d
s
s
s
zyxzyxOlhome
OlhoOlhoOlhomeVista
OlhoVistaOlhoVista
e orientação de mão direita
−−=
1
.
1000
00
000
000
1Real
Real
Real
ProjOlhome
Olho
Olho
OlhomdVista
OlhoVista
OlhoVista
z
y
x
ds
s
s
z
y
x
,
56
ou ainda,
sxx OlhoOlhoVista .Real= (37),
syy OlhoOlhoVista .Real= (38) e
ProjReal
. dszzOlhomeOlhomeVista
+= (39)
para orientação de mão esquerda e
).( ProjReal
dszzOlhomdOlhomdVista
+−= (40)
para orientação de mão direita.
4.5. VARIÁVEIS EXTRAIDAS DA NATRIZ PROJEÇÃO ORIGINA L
Com base nas equações 18, 19 e 20, as variáveis n e f são obtidas para
cada caso particular:
• Para o Direct3D:
33Proj3
43Proj3
DDirect
DDirect
m
mn −= (41)
e
33Proj3
11
DDirectm
nf
−= (42).
• Para o Direct3D 11:
33Proj113
34Proj113
DDirect
DDirect
m
mn = (43)
e
33Proj113
11
DDirectm
nf
+= (44).
• Para o OpenGL:
57
33Proj
34Proj
1OpenGL
OpenGL
m
mn
+−= (45)
e
1
1
33Proj
33Proj
+
−=
OpenGL
OpenGL
m
mnf (46).
Para as três bibliotecas gráficas, das equações 18, 19 e 20, obtém-se
11Proj
Proj2
m
dwv = (47).
58
Capítulo 5
PROJETO
No projeto, a reprodução do efeito 3D e a apresentação MEF voltada para o
efeito 3D são tratadas de forma independente.
A reprodução do efeito 3D é abstraída como uma camada de software, na qual,
o par de matrizes originais, que define a perspectiva a ser apresentada em um monitor
2D sobre o ponto de vista da câmera abstrata, é substituído por pares de matrizes
substitutas, que definem a perspectiva a ser apresentada a cada olho do observador
por um monitor estereoscópico. As matrizes transformação originais são geradas pela
aplicação gráfica, que as parametrizam ao sistema de renderização. Na camada do
efeito 3D, as matrizes transformação substitutas são determinadas a partir das
matrizes originais e da posição do ponto de vista de cada olho do observador, medida
pelo rastreador de cabeça.
A apresentação MEF é dividida em representação gráfica e na interface de
interação com usuário. São apresentadas possibilidades de representação 3D de
campos escalares e vetoriais e as necessidades de interação que favorecem a
acuidade visual. Para prova de conceito, são selecionadas as reproduções gráficas
que menos causam latência no processo de renderização, visando obter um efeito 3D
de melhor qualidade.
5.1. EFEITO 3D COMPOSTO
Neste tópico, são apresentados: o princípio de funcionamento; a inserção da
camada do efeito 3D; o projeto do rastreador de cabeça; as variáveis de configuração
do ambiente; a obtenção das matrizes transformação substitutas, a ordem em que as
variáveis são determinadas e a configuração ideal na reprodução do efeito 3D.
59
5.1.1. Princípio de Funcionamento
A Figura 47 ilustra a situação denominada de Reprodução Básica , em que
uma aplicação gráfica 3D parametriza o sistema de renderização com o par de
matrizes que define a perspectiva sobre o ponto de vista da câmera abstrata.
Figura 47 - Reprodução Básica, em que a aplicação gráfica envia para o sistema de renderização as
matrizes que definem a perspectiva sobre o ponto de vista da câmera abstrata
Fonte: Autor
A Figura 48 ilustra a situação denominada de Reprodução com o Efeito 3D ,
em que a camada de software, inserida entre a aplicação gráfica 3D e o sistema de
renderização, substitui o par de matrizes da reprodução básica VistaM e ProjM por um
par de matrizes substitutas Vista`M e Proj`M para cada olho, Vista`Moe e Proj`Moe para o
olho esquerdo e Vista`Mod e Proj`Mod para o olho direito.
Figura 48 - Reprodução com o Efeito 3D, em que uma camada de software envia para o sistema de
renderização os pares de matrizes que definem as perspectivas sobre o ponto de vista de
cada olho
Fonte: Autor
60
5.1.2. Inserção da Camada de Efeito 3D
Conforme ilustrado na Figura 57, quanto ao uso da CPU, a plataforma
Windows é dividida em duas macro camadas: a camada de Software está associada
ao processamento realizado pela CPU e a camada de Hardware está associada às
tarefas realizadas pelos periféricos.
Figura 49 – Camadas Lógicas da Computação Gráfica da plataforma Windows
Fonte: (DirectDraw Architecture)
A aplicação gráfica acessa a biblioteca gráfica, que verifica quais recursos
estão disponíveis no hardware abstrato, delegando todo processamento possível. O
processamento que não pode ser efetuado pelo hadware abstrato é emulado no HEL
(Hardware Emulation Layer).
A biblioteca gráfica se comunica com o driver do adaptador de vídeo através de
uma interface padrão, que independe do fabricante ou modelo do adaptador de vídeo,
por isso a denominação de hardware abstrato. Cabe ao fornecedor da placa
adaptadora de vídeo fornecer o driver com a interface padrão que compatibiliza o
adaptador de vídeo com o hardware abstrato.
O driver do adaptador de video delega a renderização ao respectivo hardware
(adaptador de vídeo), podendo até emular parte da renderização na própria camada
de software. A placa com maior suporte de funcionalidades é conhecido por placa
aceleradora de vídeo.
61
A camada de software que reproduz o efeito 3D, que substitui as matrizes que
parametrizam o sistema de renderização, pode ser inserida na camada de aplicação,
na camada de biblioteca gráfica, na camada de abstração de hardware ou na camada
de hardware.
No protótipo implementado para a prova de conceito, a camada do efeito 3D é
inserida na camada de aplicação, por ser a camada de mais fácil acesso, mas a
inserção desta camada abaixo da camada de aplicação pode disponibilizar este efeito
de forma automática, em que qualquer aplicação gráfica reproduz o efeito sem a
necessidade de ser especialmente desenvolvida com este recurso.
5.1.3. Rastreador de Cabeça
Para que a imagem apresentada no monitor e vista por um olho seja
exatamente uma perspectiva do cenário virtual no ponto de vista deste olho, é
necessário medir a posição de cada ponto de vista ocular, que se considera estar
próximo ao centro do cristalino e ao centro da pupila.
A necessidade do uso de óculos estereoscópicos, para filtrar a imagem vista
por cada olho, faz com que a medida da posição dos pontos de vista dos olhos seja
indireta, em que um rastreador de óculos meça o posicionamento do par de óculos
estereoscópico e que um rastreador de olhos, solidário a este par de óculos, meça a
posição do ponto de vista de cada olho no sistema referencial do par de óculos,
também denominado por sistema referencial da cabeça. A Figura 50 ilustra os
componentes do rastreador de cabeça.
Figura 50 – Componentes do Rastreador de Cabeça
Fonte: Autor
62
Na determinação das coordenadas 3D no sistema referencial Real, é
necessário manipular coordenadas em diferentes sistemas referenciais. Além do
sistema referencial Real, são definidos o sistema referencial 2D de projeção da
câmera que rastreia os óculos; o sistema referencial 3D desta câmera e o sistema
referencial 3D da cabeça, ilustrados na Figura 51.
Figura 51 - Sistemas Referenciais de Projeção da Câmera; da Câmera; da Cabeça e Real
Fonte: Autor
O sentido dos eixos do espaço 3D da câmera não é pré-definido, ficando
definido após a escolha da transformação do espaço de projeção da câmera para este
espaço, em que serão dispensadas constantes de proporcionalidade.
63
A Tabela 5.1 define as siglas dos sistemas referenciais apresentados neste
tópico.
Tabela 5.1 – Abreviações dos sistemas referenciais usadas em índices Sistema Referencial Abreviação Projeção da câmera Prj Da Câmera Cam Da Cabeça Cabeça
5.1.3.1. Protótipo do Rastreador de Óculos
A medida do posicionamento de um objeto no espaço 3D exige o mínimo de
seis grandezas escalares, uma para cada grau de liberdade do objeto no espaço 3D.
O 6DoF (six degree of freedom) é uma medida usual destes seis graus de liberdade,
sendo composta pelas três coordenadas 3D de posição e por três medidas de
inclinação, uma para cada eixo de rotação 3D, conhecidas por pitch, yaw e roll.
Para medir o posicionamento da cabeça, optou-se em utilizar as coordenadas
3D da posição da cabeça Cabeçapr
Real , o versor Frentenv
Real que aponta para frente da
cabeça, o versor Supnr
Real que aponta para a direção superior da cabeça e o versor
Dirnr
Real que aponta para o lado direito da cabeça no sistema referencial Real, conforme
ilustrado na Figura 60.
Figura 52 - Medida adotada de posicionamento da cabeça
Fonte: Autor
64
Com a origem na posição da cabeça Cabeçap , os versores Frentenv
Real , Supal nr
Re e
Diral nr
Re definem o sistema referencial denominado por sistema referencial da Cabeça
ou sistema referencial dos Óculos.
Por ser mais simples de implementar, optou-se em utilizar uma câmera
infravermelha que identifica pontos emissores ou refletores de luz infravermelha fixos
no par de óculos.
Para simplificar o equacionamento, a implementação e o processo de
calibração do protótipo do rastreador de óculos destinado à prova de conceito, foram
adotadas condições simplificadoras que limitam os graus de liberdade de
movimentação da cabeça, estabelecem restrições no posicionamento da câmera em
relação ao monitor e definem a posição dos pontos referência nos óculos.
A condição simplificadora que restringe o posicionamento da cabeça do
observador, ilustrada na Figura 53, impõe que a cabeça do observador esteja sempre
na direção ortogonal ao monitor, o que limita seu posicionamento em quatro graus de
liberdade: três graus de seu translado e um grau de liberdade de sua rotação em torno
do eixo ortogonal ao monitor.
Figura 53 - Condição simplificadora que limita o posicionamento da cabeça em quatro graus de
liberdade, em que o observador deve olhar sempre na direção ortogonal ao monitor
Fonte: Autor
A condição simplificadora que restringe o posicionamento da câmera, ilustrada
na Figura 54, estabelece que o eixo horizontal seja paralelo ao eixo horizontal do
monitor (vista frontal) e permite uma pequena inclinação da câmera em relação a este
eixo (vista lateral).
65
Figura 54 - Condição simplificadora que restringe o posicionamento da câmera
Fonte: Autor
A tolerância da inclinação da câmera é necessária para que esta possa
visualizar toda a região de posicionamento da cabeça do observador.
O posicionamento da cabeça do observador, com estas condições
simplificadoras, pode ser estimado localizando dois pontos referência dos óculos em
uma imagem capturada pela câmera: o ponto referência direito Dirp e o ponto
referência esquerdo Esqp , conforme ilustrado na Figura 55.
Figura 55 - Captura de dois pontos dos óculos a partir de uma câmera
Fonte: Autor
A condição simplificadora que define a posição dos pontos referência nos
óculos, ilustrado na Figura 56, impõe o paralelismo entre a linha que passa pelos
pontos de vista dos olhos e a linha que passa pelos pontos referência e a existência
de um plano de simetria ortogonal a estas linhas, equidistante dos olhos e dos pontos
referência.
66
Figura 56 – Condição simplificadora que define a posição dos pontos referência nos óculos
Fonte: Autor
Quanto mais estas condições forem satisfeitas, mais precisa será a medida da
posição real dos pontos de vista dos olhos do observador. A calibração do rastreador
de cabeça e a tolerância à mudança da direção da cabeça minimizam as incertezas,
mas é conveniente que precauções sejam tomadas para maximizar a satisfação
destas condições.
Como ponto que representa a posição da cabeça Cabeçaal pRe , optou-se pelo
ponto médio dos pontos referência, conforme ilustrado na Figura 57.
Figura 57 – Posição da Cabeça
Fonte: Autor
No plano de projeção da câmera, a imagem é capturada e representada em
um mapa de bits, ou seja, uma matriz bidimensional em que cada elemento discreto
da imagem (pixel) representa uma cor. O mapa de bits corresponde a um sistema
referencial de duas dimensões, denominando de sistema referencial de projeção da
câmera, em que a origem se localiza na posição superior esquerda, o eixo de
coordenada horizontal tem sentido positivo da direita para a esquerda em relação ao
observador e o eixo de coordenada vertical tem sentido positivo para baixo.
67
Na imagem capturada pela câmera, são reconhecidos os pontos referência e
determinadas as suas coordenadas neste sistema referencial [ ]DirDir yx PrjPrj e
[ ]EsqEsq yx PrjPrj . Considerando que a inclinação da câmera em relação ao monitor não
seja acentuada, é razoável aproximar a posição da cabeça no espaço 2D de projeção
da câmera Prj ao ponto médio dos pontos referência neste mesmo referencial,
conforme ilustrado na Figura 58, resultando no equacionamento
2PrjPrj
PrjEsqDir
Cabeça
xxx
+≅ (48)
e
2PrjPrj
PrjEsqDir
Cabeça
yyy
+≅ (49).
Figura 58 - Sistema Referencial de Projeção da Câmera
Fonte: Autor
Pelas propriedades de projeção, a coordenada de profundidade da posição da
cabeça no espaço da câmera CabeçazCam seria inversamente proporcional ao módulo do
vetor Direita Dirvr
Prj , que une os pontos referência no espaço de projeção da câmera
Prj conforme ilustrado na Figura 59, se a relação entre o componente vertical e o
horizontal deste segmento neste espaço fosse igual à mesma relação no espaço Real.
Estas relações não são iguais devido à inclinação da câmera e a uma possível
diferença de escala entre as coordenadas vertical e horizontal do espaço referencial
de projeção da câmera. Os componentes deste segmento no espaço de projeção da
câmera correspondem a
68
−=−=
EsqDirvDir
EsqDirvDir
yyy
xxx
PrjPrjPrj
PrjPrjPrj (50).
Figura 59 – Vetor Direita Dirvr
Fonte: Autor
Utilizando uma variável r , que iguale estas relações em vDiral
vDiral
vDir
vDir
x
y
x
yr
Re
Re
Prj
Prj = , ou
ainda,
vDir
vDir
vDiral
vDiral
y
x
x
yr
Prj
Prj
Re
Re= (51),
faz com que a coordenada CabeçazCam seja inversamente proporcional a
2Prj
22Prj vDirvDir yrx + . Adotando uma coordenada de profundidade no espaço 3D da
Câmera CabeçazCam , que dispense uma constante de proporcionalidade na sua
determinação, tem-se
2Prj
22Prj
1
vDirvDir
CabeçaCamyrx
z+
= (52).
Pelas propriedades de projeção, as coordenadas horizontal e vertical no
espaço de projeção Cabeçaj xPr e Cabeçaj yPr são diretamente proporcionais às respectivas
coordenadas no espaço 3D da câmera CabeçaCamx e CabeçaCamy e inversamente
proporcionais à coordenada de profundidade do espaço 3D da câmera CabeçazCam .
Adotando coordenadas que dispensam constantes de proporcionalidade na sua
determinação, tem-se
69
=
=
CabeçaCam
CabeçaCamCabeça
CabeçaCam
CabeçaCamCabeça
z
yy
z
xx
Prj
Prj
,
que substituindo a equação 52, resulta em
+=
+=2
Prj22
PrjPrj
2Prj
22PrjPrj
vDirvDirCabeçaCamCabeça
vDirvDirCabeçaCamCabeça
yrxyy
yrxxx.
Portanto, desta equação e da equação 52, as coordenadas da cabeça no
espaço 3D da Câmera correspondem a
+=
+=
+=
2Prj
22Prj
2Prj
22Prj
Pr
2Prj
22Prj
Prj
1
vDirvDir
CabeçaCam
vDirvDir
CabeçajCabeçaCam
vDirvDir
CabeçaCabeçaCam
yrxz
yrx
yy
yrx
xx
(53).
A posição da cabeça no sistema referencial Real é obtida pela matriz RM , que
transforma as coordenadas do espaço 3D da câmera para o espaço Real
RCabeçaCamCabeçaal Mpp =Re (54).
Esta matriz e a variável r são determinadas na calibração do rastreador de óculos.
A calibração do rastreador de óculos consiste em posicionar o par de óculos
em quatro posições de coordenadas conhecidas no espaço Real, sempre o mantendo
na horizontal e na direção ortogonal ao monitor.
A partir das coordenadas conhecidas no espaço Real e das calculadas no
espaço 3D da câmera, obtém-se o equacionamento
[ ] [ ][ ] [ ][ ] [ ][ ] [ ]
====
RCamCamCamalalal
RCamCamCamalalal
RCamCamCamalalal
RCamCamCamalalal
Mzyxzyx
Mzyxzyx
Mzyxzyx
Mzyxzyx
11
11
11
11
4444Re4Re4Re
3333Re3Re3Re
2222Re2Re2Re
1111Re1Re1Re
(55).
Isolando as incógnitas, que são os elementos da matriz RM , tem-se o sistema de
equações
70
=
4Re
4Re
4Re
3Re
3Re
3Re
2Re
2Re
2Re
1Re
1Re
1Re
43
42
41
33
32
31
23
22
21
13
12
11
444
444
444
333
333
333
222
222
222
111
111
111
100000000
010000000
001000000
100000000
010000000
001000000
100000000
010000000
001000000
100000000
010000000
001000000
z
y
x
z
y
x
z
y
x
z
y
x
m
m
m
m
m
m
m
m
m
m
m
m
zyx
zyx
zyx
zyx
zyx
zyx
zyx
zyx
zyx
zyx
zyx
zyx
al
al
al
al
al
al
al
al
al
al
al
al
CamCamCam
CamCamCam
CamCamCam
CamCamCam
CamCamCam
CamCamCam
CamCamCam
CamCamCam
CamCamCam
CamCamCam
CamCamCam
CamCamCam
(56).
Ao resolver este sistema linear, obtêm-se os elementos da matriz RM . Este
sistema de equações deve ser determinável quando os quatro pontos de calibração
não forem coplanares, portanto é conveniente que o tetraedro, que tem estes quatro
pontos de coordenadas conhecidas como vértices, se aproxime a um tetraedro
equilátero.
A variável r pode ser estimada transformando a direção do vetor Dirvr
do
espaço 3D da Câmera para o espaço Real com
[ ] [ ] RvDirCamvDirCamvDirCamvDiralvDirvDir Mzyxzyx 00ReRealReal = ,
na qual
EsqDirvDir xxx RealRealReal −= (57),
EsqDirvDir yyy RealRealReal −= (58),
EsqalDirvDir zzz ReRealReal −= (59),
2Prj
22Prj
Prj
vDirvDir
vDirvDirCam
yrx
xx
+= (60),
2Prj
22Prj
Prj
vDirvDir
vDirvDirCam
yrx
yy
+= (61)
e
EsqCamDirCamvDirCam zzz −= (62).
Dividindo vDirCamx por vDirCam y obtém-se a relação
vDir
vDir
vDirCam
vDirCam
y
x
y
x
Prj
Prj= (63).
71
Como os dois pontos referência estão na mesma profundidade no espaço
Real para as condições simplificadoras, o componente vDirzReal no protótipo do
rastreador de óculos é considerado nulo, resultando em
[ ] [ ] RvDirCamvDirCamvDirCamvDirvDir Mzyxyx 000RealReal = ,
ou ainda,
312111Real mzmymxx vDirCamvDirCamvDirCamvDir ++= (64),
322212Real mzmymxy vDirCamvDirCamvDirCamvDir ++= (65)
e
3323130 mzmymx vDirCamvDirCamvDirCam ++≅ .
Isolando a variável vDirCamz desta última equação, obtém-se
33
2313 ..m
mymxz vDirCamvDirCam
vDirCam
+−≅ (66).
Como o eixo horizontal do espaço 3D da câmera deve ser paralelo ao eixo
horizontal do espaço Real, o eixo x de um espaço deve ser ortogonal ao eixo y do
outro espaço, fazendo com que os elementos 12m , 13m , 21m e 31m da matriz RM
devam ser nulos, resultando em
+≅+≈
≈
3323
3222Real
11Real
0 mzmy
mzmyy
mxx
vDirCamvDirCam
vDirCamvDirCamvDir
vDirCamvDir
,
que resulta em
−≈
≈
)( 3233
2322Real
11Real
mm
mmyy
mxx
vDirCamvDir
vDirCamvDir
.
Dividindo a segunda equação pela primeira, obtém-se
3311
32233322
Real
Real
mm
mmmm
x
y
x
y
vDirCam
vDirCam
vDir
vDir −≈ ,
ou ainda 3311
32233322
Real
Real
mm
mmmm
y
x
x
y
vDirCam
vDirCam
vDir
vDir −≈ ,
que ao substituir a equação 63 obtém-se
72
3311
32233322
Prj
Prj
Real
Real
mm
mmmm
y
x
x
y
vDir
vDir
vDir
vDir −≈ ,
que por sua vez, ao substituir a equação 51 resulta em
3311
32233322
mm
mmmmr
−≈ (67).
Se algum dos valores dos elementos 12m , 13m , 21m e 31m da matriz RM
determinada na calibração não for próximo de zero, ou a câmera não foi bem
posicionada ou os óculos não foi posicionado adequadamente nos quatro pontos
conhecidos. A verificação destes elementos da matriz serve como validação da
calibração.
Por ser imposto que a direção da cabeça do observador seja sempre ortogonal
ao monitor nas condições simplificadora, tem-se que o versor Frentenv
para o protótipo
do rastreador de óculos corresponde a
[ ] [ ]100RealRealRealRe ≅= nFrentenFrentenFrenteFrenteal zyxnv
(68).
O versor Dirnr
Real é obtido dividindo o vetor Dirvr
pelo seu módulo, resultando
[ ]
++== 0
2Real
2Real
Real
2Real
2Real
RealRealRealRealReal
vDirvDir
vDir
vDirvDir
vDirnDirnDirnDirDir
yx
y
yx
xzyxn
r (69).
O versor Supal nr
Re é obtido pelo produto vetorial DirFrenteSup nnnrrr
RealRealReal ^= , dado por
−=−=−=
nDirnFrentenFrentenDireitanSup
nDirnFrentenDireitanFrentenSup
nDirFrentenDireitanFrentenSup
xyxyz
zxxzy
yzzyx
RealRealRealRealReal
RealRealRealRealReal
RealRealRealRealReal
.
Como 0Real ≅nFrentex , 0Real ≅nFrentey , 1Re ≅nFrenteal z e 0Real ≅nDirz para as condições
simplificadoras, os componentes do versor que aponta para a direção superior da
cabeça no protótipo do rastreador de óculos valem
≅≅−≅
0Real
RealReal
RealReal
nSup
nDirnSup
nDirnSup
z
xy
yx
(70).
73
5.1.3.2. Protótipo do Rastreador de Olhos
Devido à impossibilidade de medir a posição exata do ponto de vista de cada
olho em relação ao par de óculos no protótipo, optou-se em estimar esta posição. Esta
posição é estimada a partir de variáveis de parametrização do rastreador de olhos,
que são: a distância entre os olhos do observador; a altura e a distância da linha dos
olhos em relação à linha que passa pelos pontos referência.
A distância entre os olhos é conhecida na estereoscopia por Separação
(Separation), conforme ilustrado na Figura 60.
Figura 60 – Variável Separação
Fonte: Autor
Conforme ilustrado na Figura 61, a altura e a distância da linha dos olhos em
relação à linha que passa pelos pontos referência correspondem, respectivamente, às
coordenadas dos olhos no sistema referencial da cabeça OlhosCabeçay e OlhosCabeçaz .
Figura 61 - Coordenadas vertical e de profundidade da que passa pelo ponto de vista dos dois olhos no
sistema referencial da Cabeça
Fonte: Autor
74
Visando a simplificação do projeto no protótipo, considera-se que a posição
média esperada de cada ponto de vista dos olhos independe do posicionamento da
cabeça e que, esta posição média esperada corresponde à situação em que o
observador esteja olhando para um ponto a sua frente no infinito. Portanto, nestas
condições, as coordenadas dos olhos direito (od ) e esquerdo (oe) no sistema
referencial da cabeça correspondem a
−≈
≈
OlhosCabeçaOlhosCabeçaoeCabeça
OlhosCabeçaOlhosCabeçaodCabeça
zySeparação
p
zySeparação
p
2
2 (71).
5.1.3.3. Determinação da Posição Real do Ponto de V ista de cada Olho
As coordenadas do ponto de vista de cada olho no sistema referencial Real são
determinadas a partir da posição dos óculos no sistema referencial Real, das
coordenadas dos olhos no sistema referencial da cabeça e dos versores que definem
a inclinação da cabeça do observador em
−++=+++=
DirCabeçaoeCabeçaSupCabeçaoeCabeçaFrenteCabeçaoeCabeçaCabeçaoe
DirCabeçaodCabeçaSupCabeçaodCabeçaFrenteCabeçaodCabeçaCabeçaod
nxnynzpp
nxnynzppvvv
vvv
...
...
RealReal
RealReal (72).
Para o protótipo, vale substituir as variáveis determinadas nas equações 68, 69, 70 e
71, resultando em
+≈
−+≈
−+≈
+≈
++≈
++≈
OlhosCabeçaCabeçaoe
nDirnSupOlhosCabeçaCabeçaoe
nDirnSupOlhosCabeçaCabeçaoe
OlhosCabeçaCabeçaod
nDirnSupOlhosCabeçaCabeçaod
nDirnSupOlhosCabeçaCabeçaod
zzz
ySeparação
yyyy
xSeparação
xyxx
zzz
ySeparação
yyyy
xSeparação
xyxx
RealReal
RealRealRealReal
RealRealRealReal
RealReal
RealRealRealReal
RealRealRealReal
.2
.
.2
.
.2
.
.2
.
(73).
75
5.1.4. Determinação da variável Projd
A variável Projd não é determinável a partir das matrizes transformação que
definem a perspectiva sobre o ponto de vista da câmera abstrata. O ideal é que esta
variável seja parametrizada pela aplicação gráfica, mas para o efeito 3D automático,
esta variável deve ser uma variável de configuração, que pode ser ajustada pelo
usuário durante a reprodução do efeito 3D. Também é possível disponibilizar ao
usuário o comando de ajuste ótimo, em que a camada do efeito 3D posiciona o plano
de projeção no centro do cenário visualizado.
5.1.5. Variáveis de Configuração do Ambiente
Além das variáveis extraídas das matrizes originárias da reprodução básica, a
camada de software precisa de variáveis de configuração. No protótipo, as variáveis
de configuração do ambiente são armazenadas em arquivos. São variáveis de
configuração ambiente:
• As coordenadas reais dos quatro pontos de calibração do rastreador de óculos.
• As variáveis RM e r : determinadas na calibração e utilizadas pelo rastreador
de óculos.
• As variáveis Separação, OlhosCabeçay e OlhosCabeçaz , que parametrizam o rastreador
de olhos do protótipo.
• As características do monitor Dw e `Aspecto.
• A variável ajustável Projd .
5.1.6. Ordem de Determinação das Variáveis no Protó tipo
No software, as variáveis precisam seguir uma ordem de determinação.
Na calibração, são determinados:
• A matriz RM com a resolução do sistema de equações 56;
• O fator de correção r a partir da equação 67 (3311
32233322
mm
mmmmr
−≅ ).
76
A partir da configuração do ambiente, são determinadas:
• As coordenadas da linha dos olhos no espaço da Cabeça OlhosCabeçay , OlhosCabeçaz
• A largura do monitor Dw ;
• O aspecto do monitor `Aspecto e
• A distância do plano de projeção no espaço Vista Projd .
No rastreador de óculos, após a determinação das coordenadas dos olhos no
espaço de projeção DirxPrj , DiryPrj , EsqxPrj e EsqyPrj , são determinadas:
• As coordenadas da cabeça no espaço de projeção a partir das equações:
2PrjPrj
PrjEsqDir
Cabeça
xxx
+≈ (48)
e
2PrjPrj
PrjEsqDir
Cabeça
yyy
+≈ (49),
• Os componentes do vetor Direita
−=−=
EsqDirvDir
EsqDirvDir
yyy
xxx
PrjPrjPrj
PrjPrjPrj (50);
• As coordenadas da cabeça no espaço 3D da câmera
+=
+=
+=
2Prj
22Prj
2Prj
22Prj
Prj
2Prj
22Prj
Prj
1
vDirvDir
CabeçaCam
vDirvDir
CabeçaCabeçaCam
vDirvDir
CabeçaCabeçaCam
yrxz
yrx
yy
yrx
xx
(53);
• As coordenadas da cabeça no espaço Real
RCabeçaCamCabeçaal Mpp =Re (54);
• Os componentes do vetor Direita no espaço 3D da Câmera
77
2Prj
22Prj
Prj
vDirvDir
vDirvDirCam
yrx
xx
+= (57),
2Prj
22Prj
Prj
vDirvDir
vDirvDirCam
yrx
yy
+= (58) e
33
2313 ..
m
mymxz vDirCamvDirCam
vDirCam
+−≅ (66);
• Os componentes do vetor Direita no espaço Real
312111Real ... mzmymxx vDirCamvDirCamvDirCamvDir ++= (64)
e
322212Real ... mzmymxy vDirCamvDirCamvDirCamvDir ++= (65);
• Os componentes do versor Direita no espaço Real
≈+
=
+=
0Real
2Real
2Real
RealReal
2Real
2Real
RealReal
nDir
vDirvDir
DistnDir
vDirvDir
vDirnDir
z
yx
yy
yx
xx
(69);
• Os componentes do versor Superior no espaço Real
≅≅−≅
0Real
ReReal
ReReal
nSup
nDiralnSup
nDiralnSup
z
xy
yx
(70)
e
• As coordenadas dos olhos no espaço Real
78
+≈
−+≈
−+≈
+≈
++≈
++≈
OlhosCabeçaCabeçaoe
nDirnSupOlhosCabeçaCabeçaoe
nDirnSupOlhosCabeçaCabeçaoe
OlhosCabeçaCabeçaod
nDirnSupOlhosCabeçaCabeçaod
nDirnSupOlhosCabeçaCabeçaod
zzz
ySeparação
yyyy
xSeparação
xyxx
zzz
ySeparação
yyyy
xSeparação
xyxx
RealReal
RealRealRealReal
RealRealRealReal
RealReal
RealRealRealReal
RealRealRealReal
.2
.
.2
.
.2
.
.2
.
(73)
Na camada de software do efeito 3D, que tem acesso às matrizes
transformação que definem a perspectiva do cenário sobre o ponto de vista da câmera
abstrata VistaM e ProjM , são determinados:
• A posição do plano de corte Frontal no Espaço Vista
33Proj3
43Proj3
DDirect
DDirect
m
mn −= (41)
para o Direct3D,
33Pr113
34Proj113
ojDDirect
DDirect
m
mn = (43)
para o Direct3D11 e
1
33Proj
34Proj
OpenGL
OpenGL
m
mn
+−= (45)
para o OpenGL;
• A posição do plano de corte Traseiro no Espaço Vista
33Proj3
11
DDirectm
nf
−= (42)
para o Direct3D,
79
1
1
33Proj113DDirectm
nf
+= (44)
para o Direct3D11 e
1
1
33Proj
33Proj
+
−=
OpenGL
OpenGL
m
mnf (46)
para o OpenGL;
• A largura do porto de visualização no Espaço Vista
11Proj
Proj2
m
dwv = (47)
e
• O fator de escala
D
vVista
w
ws
Real
= (36).
Nesta camada de software, a posição real 3D do ponto de vista de cada olho é
tratada separadamente com as coordenadas [ ]OlhoOlhoOlho zyx RealRealReal , obtendo um
par de matrizes transformação substitutas VistaM` e Proj`M para cada olho, sendo
determinados:
• As coordenadas do olho no espaço Vista
sxx OlhoOlhoVista .Real= (37),
syy OlhoOlhoVista .Real= (38),
ProjReal
. dszzOlhomeOlhomeVista
+= (39)
para orientação de mão esquerda e
).( ProjReal
dszzOlhomdOlhomdVista
+−= (40)
para orientação de mão direita;
• As distâncias ao olho dos planos de corte Frontal, de corte Traseiro e de
Projeção
80
−=
−=−=
OlhomeVista
OlhomeVistame
OlhomeVistame
zdd
zff
znn
ProjProj`
`
`
(22)
para orientação de mão esquerda e
+=
+=+=
OlhomdVista
OlhomdVistamd
OlhomdVistamd
zdd
zff
znn
ProjProj`
`
`
(23)
para orientação de mão direita. Obs: O plano de corte Frontal nunca pode estar
atrás do olho do observador, caso contrário, este plano de corte deve ser deslocado
para satisfazer esta condição, tornando positivo o valor da variável `n para os dois
olhos;
• A matriz Vista Substituta
1
0100
0010
0001
`
−−−
=
OlhoVistaOlhoVistaOlhoVista
VistameVista
me
zyx
MM (8)
para orientação de mão esquerda e
ViewrhOlhoVista
OlhoVista
OlhoVista
Vistarh
Mz
y
x
M
−−−
=
1000
100
010
001
` (9)
para orientação de mão esquerda;
• A matriz Projeção Substituta
−−
−
=
0``
``.00
1``
``
22
00``2
0
000`2
`
Proj
Proj
Proj3
nf
fnnf
fAspecto
w
y
w
x
Aspectow
dw
d
M
v
OlhoVista
v
OlhoVista
v
v
DDirect (29)
para Direct3D,
81
−−
−−
−
−
−
=
0100``
``.
``
`00
0`2
``2
0
02
0`2
`Proj
Proj
Proj113
nf
fn
nf
f
Aspectow
yAspecto
w
dw
x
w
d
Mv
OlhoVista
v
v
OlhoVista
v
DDirect (30)
para Direct3D11 e
−−−
+−
−
−
=
0100``
``..2
``
``00
0`2
``2
0
02
0`2
`Proj
Proj
Proj
nf
fn
nf
nf
Aspectow
yAspecto
w
dw
x
w
d
Mv
OlhoVista
v
v
OlhoVista
v
OpenGL (31)
para OpenGL.
5.1.7. Configuração Ideal na Reprodução do Efeito 3 D Composto
A câmera do rastreador de cabeça solidária ao monitor permite que a
calibração seja feita uma única vez, ou seja, de fábrica. Portanto o rastreador de
cabeça deve ser componente do monitor.
A placa de vídeo pode ser otimizada para renderizar perspectivas para
diferentes pontos de vista para vários usuários de um único cenário. Portanto é
conveniente que a camada do efeito 3D seja inserida na placa de vídeo.
As coordenadas do ponto de vista dos olhos de um ou mais observadores
devem ser enviadas para a placa de vídeo, que por sua vez renderiza as perspectivas
sobre o ponto de vista de cada olho e as envia para o monitor reproduzi-las, de forma
que cada olho visualize apenas a sua respectiva perspectiva.
É possível implementar um monitor estereoscópico com câmera embutida, a
qual determina o posicionamento dos óculos, que por sua vez, possui câmeras que
reconhece o ponto de vista de cada olho, determina a posição de cada um e transmite
este dado para o monitor por ondas de rádio.
82
A Figura 62 ilustra a configuração ideal da reprodução do efeito 3D, com
câmera do rastreador de cabeça solidária ao monitor.
Figura 62 – Configuração Ideal para o Efeito 3D, em que a camada de efeito 3D é inserida na camada
de hardware na placa de vídeo e o rastreador de cabeça é componente do monitor
Fonte: Autor
Os sensores de interação do usuário com o espaço virtual devem ser solidários
ao monitor para que a determinação das coordenadas 3D reais associadas aos
comandos de Realidade Virtual (RV) tenham o mesmo referencial que o rastreador de
cabeça. Portanto os sensores da interface de interação do usuário devem ser um
componente do monitor.
As coordenadas 3D dos comandos RV devem ser transformadas para o
espaço virtual, cuja matriz transformação está contida na camada do Efeito 3D.
Portanto é conveniente que os comandos 3D sejam tratados pela própria placa de
vídeo.
83
5.2. APRESENTAÇÃO MEF VOLTADA PARA O EFEITO 3D
Neste trabalho, a apresentação MEF é subdividida em representação gráfica e
interação com o usuário. São apresentadas possibilidades de representação gráfica
de campos e especificados comandos de usuário por interação com o cenário no
espaço 3D.
Neste tópico, são apresentados também os dados da simulação MEF
necessários à sua apresentação e a especificação de quais representações devem
ser apresentadas no protótipo do Visualizador MEF 3D para prova de conceito,
visando o mínimo de latências no processo de renderização.
5.2.1. Representação Gráfica
Em um visualizador MEF 3D, é possível apresentar objetos geométricos, a
malha de elementos finitos, intensidades de campos (vetoriais e escalares), campos
vetoriais, linhas de campo e superfícies equipotenciais.
Os objetos geométricos podem ser representados por poliedros texturizados
(revestidos por materiais) ou simplesmente coloridos. A reprodução dos objetos com
mais realismo, ou seja, com texturas, reflexões, sombreamento e transparências,
enriquece o efeito 3D por explorar melhor as percepções de profundidade
monoculares.
A intensidade de campo é usualmente representada por coloração, com base
em escala de cores. A reprodução de intensidade de campo com base nesta escala
de cores em uma reprodução 2D de um corte 2D é usual, mas a reprodução em todo
espaço 3D de intensidades de campo com base em escala de cores polui a
visualização. Uma forma de evitar poluição visual é reproduzindo uma nebulosidade
monocromática, em que só se visualiza a nebulosidade onde o campo é mais intenso.
Outra forma, de se evitar poluição visual, é apresentando a intensidade de campo
apenas na superfície dos objetos geométricos, colorindo os respectivos poliedros
conforme as intensidades de campo.
O campo vetorial pode ser representado por setas que partem de pontos
distribuídos uniformemente. O comprimento de cada seta é proporcional à intensidade
do campo na sua origem. Esta representação de campo vetorial é usual em cortes 2D
84
ou em superfícies geométricas, mas a representação de campo vetorial em todo o
espaço 3D pode poluir a visualização. As possibilidades de reproduzir campo vetorial
no espaço 3D evitando poluição visual são reproduzindo setas 3D em um corte, na
superfície dos objetos geométricos ou oferecendo seletividade em quais regiões do
espaço 3D devem ser apresentados estes campos. Estas regiões selecionáveis
podem ser: região que contem as linhas de campo que passam por partes
selecionadas de objetos sólidos ou volume em torno de um ponto referência indicado
pelo usuário.
As linhas de campo são representadas por linhas, cuja direção é representada
por setas. A seletividade de regiões, nas quais são apresentadas as linhas de campo,
evita poluição visual.
As superfícies equipotenciais podem ser representadas por superfícies
transparentes. A poluição visual pode ser evitada apresentando uma única superfície
equipotencial que passe por um ponto indicado.
Uma simulação MEF pode ser dinâmica ou estática, real ou complexa (fasorial).
Tanto a simulação dinâmica, quanto a estática complexa, deve ser reproduzida com
animação.
Os dados obtidos da simulação MEF, para serem reproduzidos em
apresentação gráfica 3D, devem conter: informações que definem os objetos
geométricos, suas partes e posicionamento no tempo; malhas 3D, com seus nós fixos
e móveis e; os valores dos campos atribuídos aos nós em cada elemento finito da
malha 3D para cada campo a cada instante.
5.2.2. Interação com Usuário
Em uma única simulação pelo Método dos Elementos Finitos existem diversos
campos a serem representados como o Elétrico, o Magnético e de Corrente, entre
outros, exigindo que o visualizador MEF permita selecionar para quais campos serão
apresentadas as intensidades, as linhas de campo e as superfícies equipotenciais.
É conveniente que partes de objetos possam ser selecionadas para definir
regiões de interesse, para as quais as representações de campos são apresentadas,
reduzindo poluição visual e oferecendo maior acuidade nestas regiões de interesse.
85
O ideal é que o usuário possa interagir no espaço 3D, com auxílio de menu 3D,
a partir do qual se escolhe qual representação vai ser apresentada, para quais
campos, em quais regiões. Estas regiões podem ser definidas selecionando partes de
objetos ou indicando a região com o dedo. O usuário precisa ainda movimentar o
cenário e mudar escala (Zoom).
5.2.3. Apresentação MEF 3D no Protótipo
Tanto a texturização de objetos, como a reprodução de nebulosidade, quanto à
reprodução de superfícies transparentes, oferecem maior complexidade de
implementação e demanda maior tempo no processo de renderização, o que pode
comprometer o efeito 3D projetado. Portanto, a implementação destes recursos não
se justifica na implementação do protótipo.
Para a prova de conceito, não existe a necessidade de animações,
interatividade 3D, obtenção de cortes e nem de suporte a múltiplos campos.
No protótipo, considera-se suficiente a implementação da reprodução de
intensidade de campo na superfície dos objetos geométricos, de linhas de campo e de
campos vetoriais em apresentação não animada.
Para esta reprodução, os dados necessários a serem obtidos da aplicação
MEF são: geometria dos objetos definida por malhas superficiais; cor atribuída a cada
nó destas malhas superficiais e as trajetórias das linhas de campo.
86
Capítulo 6
PARTE PRÁTICA - IMPLEMENTAÇÃO
Como hardware do rastreador de cabeça, optou-se em utilizar a câmera
infravermelha e um par de LEDs ou refletores infravermelhos fixados em um par de
óculos.
O desenvolvimento se iniciou com a inserção do efeito Head-Tracking em um
visualizador gráfico com base no StateManeger, aplicativo gráfico de código aberto
disponível no SDK (Software Development Kit) do DirectX 10. O SDK é um kit de
desenvolvimento de software, geralmente acompanhado com códigos fontes
exemplos.
A primeira tentativa de inserção do efeito estereoscópico foi utilizando o kit
NVIDIA 3D Vision, por oferecer vantagens inicialmente. Quando o mercado passou a
oferecer soluções estereoscópicas de melhor qualidade e menor custo, a grande
insatisfação obtida com o uso deste kit levou à sua substituição por solução
estereoscópica padrão de mercado baseada em HDMI 1.4.
Como plataforma de software com suporte a estereoscopia compatível com o
padrão HDMI 1.4, optou-se pela biblioteca DirectX 11.1, suportada apenas na
plataforma Windows Store App, no ambiente Visual Studio 2012 e no sistema
operacional Windows 8. O Visualizador MEF 3D foi desenvolvido com base em uma
aplicação do SDK do Windows Store App.
Testes com arquivos de formatos gráficos 3D exportados pelo aplicativo MEF
utilizado (Maxwell 3D) revelaram a necessidade de especificar um novo formato 3D
com suporte às informações que definem as representações MEF a serem
reproduzidas.
Foi especificado um formato gráfico 3D que representa intensidades de campo
em superfícies geométricas e linhas de campo, para o qual foi implementado um
carregador no Visualizador MEF 3D.
Foi desenvolvido um conversor que gerou um arquivo no formato especificado
a partir dos arquivos de dados exportados pelo Maxwell na simulação de um
eletroímã, possibilitando sua reprodução do Visualizador MEF 3D.
87
6.1. HARDWARE DO RASTREADOR DE CABEÇA
O TrackIR 5 da NaturalPoint consiste em uma câmera infravermelha, com
emissores de luz infravermelha embutidos (Figura 63), e uma haste com três
refletores infravermelhos (Figura 64), para fixar na cabeça presa a um boné (Figura
65). A câmera infravermelha é conectada ao PC via USB. O fabricante disponibiliza
ferramentas de software como um SDK e APIs. O produto é um rastreador de cabeça
utilizado para oferecer comandos em jogos com o movimento da cabeça.
Figura 63 – Câmera IR com LEDs IR e conexão USB
Fonte: (NaturalPoint TrackIR Users Manual)
Figura 64 – TrackClip (haste com refletores infravermelhos)
Fonte: (NaturalPoint TrackIR Users Manual)
Figura 65 – TrackClip fixado no boné
Fonte: (NaturalPoint TrackIR Users Manual)
88
No protótipo do rastreador de cabeça foi utilizada a câmera IR do TrackIR 5 em
conjunto com um par de óculos estereoscópicos com LEDs IR ou refletores IR nele
fixados, conforme ilustrado na Figura 66. Foram utilizados LEDs infravermelhos com
comprimento de onda 850 nm, potência de 3W e ângulo de espalhamento de 120º
(Figura 67). Os refletores infravermelhos foram retirados de uma haste de um TrackIR
5 reserva (Figura 68). Os LEDs infravermelhos, em comparação aos refletores
infravermelhos, têm a vantagem do maior alcance, mas a desvantagem da fiação.
Figura 66 – Configuração de hardware utilizada como rastreador de cabeça
Fonte: Autor
Figura 67 - LED infravermelho 850 nm 3W
Fonte: (FJMSOFT)
Figura 68 – Refletor infravermelho retirado da haste do TrackIR 5
Fonte: Autor
89
6.2. IMPLEMENTAÇÃO DO EFEITO HEAD-TRACKING
Com base no VectorTracking, aplicativo de código aberto que acompanha o
SDK da Natural Point, foi desenvolvido o calibrador do rastreador de cabeça, o qual
armazena a matriz de calibração no arquivo texto “Calibration.txt”, localizado no
diretório específico, escolhido para armazenar todos os arquivos de configuração do
Ambiente do Efeito 3D. Neste diretório são armazenados os seguintes arquivos:
• “Calibrator.txt”: na calibração, é utilizada uma estrutura que permite posicionar
o par de óculos em quatro posições conhecidas. Neste arquivo, são
informadas as coordenadas euclidianas dos quatro pontos conhecidos do
calibrador no referencial do calibrador. Foi dedicado um arquivo para esta
configuração para facilitar o teste de diferentes estruturas de calibração.
• “CalibratorPosition.txt”: este arquivo contém as coordenadas euclidianas da
origem da estrutura de calibração no espaço Real.
• “Calibration.txt”: Possui a matriz transformação do espaço 3D da câmera para
o espaço Real.
• “Display.txt”: este arquivo contem as dimensões do monitor Dw e Dh , que
permitem determinar também o aspecto do monitor `Aspecto. Foi dedicado um
arquivo desta configuração para facilitar a troca de monitor.
• “Eyes.txt”: este arquivo contém as informações do observador, utilizadas pelo
rastreador de olhos, como a separação entre os olhos Separação e
coordenadas 2D da posição da linha dos olhos em relação à linha que passa
pelos pontos referência dos óculos. Foi dedicado um arquivo para estes
parâmetros para facilitar a troca de observador.
• “Others.txt”: este arquivo contém a variável Prjd , que permite ajustar a posição
do plano de projeção no espaço virtual.
O efeito Head-Tracking foi implementado inicialmente no StateManager, cujo
código fonte está disponível no SDK do DirectX 10, com suporte a carregamento de
formato DirectX de extensão ”.x” e, que acompanha um arquivo de formato 3D, que
define o cenário ilustrado na Figura 69.
90
Figura 69 – Cenário do StateManager
Fonte: Autor
A rotina que parametrizava as matrizes Vista e de Projeção para o sistema de
renderização foi modificada para substituir estas matrizes.
Ao reproduzir o efeito Head-Tracking, observou-se que o efeito 3D era pouco
realista para objetos virtuais endereçados entre o observador e o monitor. Esta
observação sugere que as percepções de profundidade binoculares são mais
sensíveis à visualização de objetos próximos à cabeça do observador, que em
conjunto com a percepção de profundidade de acomodação faz com que o cérebro
tende a endereçar estes objetos virtuais no plano do monitor, conflitando com a
percepção de profundidade de paralaxe de movimento.
Um vídeo do cenário virtual, feito com uma câmera filmadora com o rastreador
de cabeça medindo seu posicionamento, fez parecer mais realista o efeito Head-
Tracking, mesmo com objetos virtuais endereçados entre a câmera filmadora e o
monitor. A reprodução deste vídeo, que não endereça o cenário filmado no espaço
3D, faz parecer que a filmagem foi feita em um cenário virtual endereçado no espaço
3D, criando a ilusão que o efeito Head-Tracking é mais realista do que realmente é.
O efeito indesejado dos objetos virtuais endereçados próximos à cabeça do
observador motivou a exploração do efeito estereoscópico.
91
6.3. COMBINANDO A ESTEREOSCOPIA AO EFEITO HEAD-TRACKING
Inicialmente, o efeito estereoscópico foi inserido no StateManeger utilizando o
Kit NVIDIA 3D Vision (Figura 70), solução de estereoscopia desenvolvida
especificamente para computação gráfica 3D. Na época, este kit era a solução mais
apropriada por ter baixo custo e oferecer suporte para desenvolvimento de software.
Figura 70 - Kit NVIDIA 3D Vision
Fonte: (NVIDIA 3D Vision)
O aparecimento de novos produtos de melhores qualidade e preço incentivou
a substituição do kit da NVIDIA por produtos padrão de indústria.
O conector HDMI é um padrão de indústria desenvolvido para conectar DVD
players, Blu-Ray players, Home Theater, decodificador de TV a cabo, computadores,
Internet TV e outros a monitores, TVs ou projetores. Este padrão teve adesão
praticamente por toda indústria. O Padrão HDMI 1.4 consiste em uma versão do
conector HDMI com melhores características elétricas e no protocolo de comunicação
com suporte a envio de pares de imagens (imagens estereoscópicas).
Conforme ilustrado na Figura 71, são requisitos de hardware na computação
gráfica 3D, além do conector HDMI 1.4, placa de vídeo e monitor estereoscópico
compatíveis com o padrão HDMI 1.4.
92
Figura 71 - Requisitos de Hardware na computação gráfica 3D com padrão HDMI
Fonte: Autor
Como plataforma de software, optou-se pela solução da Microsoft, em que a
biblioteca gráfica Direct3D do DirectX 11.1 fornece controle flexível a estereoscopia.
O DirectX 11.1 foi disponível apenas para aplicações Windows Store App, que
executam em desktop com Windows 8. O ambiente de desenvolvimento de aplicativos
da plataforma Windows Store App passou a ser disponível apenas na versão do
Visual Studio 2012. Nesta plataforma, é comum encontrar: novas extensões à
linguagem C++; incompatibilidade com componentes de software já consagrados;
impossibilidade de ligação com outras bibliotecas binárias e a mudança na orientação
de sistema de coordenadas do Direct3D para mão direita. Estas características
tornaram trabalhosa a migração para esta plataforma.
O Visualizador MEF 3D foi desenvolvido a partir do StereoSimpleDirect3D, por
ser o único visualizador Windows Store App de código aberto com suporte a
estereoscopia encontrado, disponível no SDK do Windows Store App (Direct3D
stereoscopic 3D sample).
A Figura 72 ilustra o cubo que é apresentado girando no StereoSimpleDirect3D.
93
Figura 72 – Cubo visualizado no StereoSimpleDirect3D
Fonte: Autor
Cada face do cubo é texturizada pela imagem em mapa de bits representada
na Figura 73. O cubo é definido por oito vértices e doze elementos de superfícies
triangulares. Cada elemento de superfície é definido por um conjunto de três
identificadores de vértices. Cada vértice é definido por um vetor de três coordenadas
que define sombreamento e um vetor de duas coordenadas do vértice no mapa de
bits.
Figura 73 – Imagem em mapa de bits usada para definir a textura da face do cubo
Fonte: Autor
No efeito estereoscópio, para cada olho, o dispositivo é parametrizado com um
buffer que contem as matrizes transformação, as definições do cubo e o código
compilado do sombreador (shader) de vértice e do sombreador de pixel.
Para contornar a impossibilidade de ligar a biblioteca binária do TrackeIR 5 ao
Visualizador MEF 3D na plataforma Windows Store App, foi desenvolvido um
programa servidor na plataforma Win32 ligado a esta biblioteca que permite o
Visualizador MEF 3D consultar a posição dos pontos referência capturados pela
câmera do TrackIR 5 via TCP/IP.
94
Com a mudança da orientação dos Sistemas Referenciais no Direct3D para
mão direita, foi necessário refazer todo o equacionamento das matrizes
transformação.
No Visualizador MEF 3D, foram implementados um cliente do rastreador de
cabeça que se comunica com o servidor de rastreador de cabeça e a substituição das
matrizes que definem as perspectivas.
A Figura 74 ilustra uma imagem de um vídeo feito por uma câmera presa ao
par de óculos. Nesta imagem, o par de óculos está inclinado, sendo que as duas
perspectivas estão na mesma altura em relação ao par de óculos, mostrando que o
efeito 3D suporta a rotação da cabeça em torno do eixo ortogonal ao monitor.
Figura 74 – Foto da reprodução do efeito 3D composto com o par de óculos inclinado
Fonte: Autor
6.4. FORMATOS GRÁFICOS 3D DE ARQUIVOS
É requisito do Visualizador MEF 3D em desenvolvimento a leitura de arquivo
que permite reproduzir graficamente simulações eletromagnéticas 3D feitas por
aplicação MEF. O arquivo de leitura precisa ser de formato exportado ou convertido
de um formato exportado pela aplicação MEF.
Como aplicação MEF, optou-se pelo Maxwell, utilizado no laboratório GMAcq
(Grupo de Máquinas e Acionamentos Elétricos).
95
Inicialmente, pretendeu-se utilizar arquivos de formatos gráficos 3D exportados
pelo Maxwell, que tem suporte aos formatos: ASIS, com extensão “.sab” para formato
binário e extensão “.sat” para formato texto; Ansoft 3D Solid Model, de extensão sm3;
DXF da Autocad; CATIA (Computer Aided Three-Dimensional Interative Application),
com as extensões “.exp” e “.model”; IGES (Initial Graphics Exchange Specification),
com as extensões “.iges” e “.igs”; Parasolid, com extensão “.x_b” para formato binário
e extensão “.x_t” para formato texto; STEP (STandart for the Exchange of Product),
com as extensões “.step” e “.stp” e VRML (Virtual Reality Modeling Language), com a
extensão “.wrl”.
De uma simulação MEF, foram exportados arquivos nos diferentes formatos
3D, os quais foram analisados e testados.
Entre os testes efetuados, merece citar a reprodução de uma perspectiva do
arquivo de formato VRML utilizando o Blender e o freeWLR, ilustrado na Figura 75.
Nas superfícies dos objetos 3D, o Blender atribui opacidade e sombreamento e o
freeWLR atribui transparência.
Figura 75 – Visualização do arquivo no formato VRML exportado pelo Maxwell 3D
Fonte: Autor
Devido à falta de informações de campos desejadas nos arquivos de formatos
gráficos 3D exportados, decidiu-se especificar um formato 3D mais adequado à
reprodução de apresentação MEF para o efeito 3D, com a extensão “MEF3D”.
96
Visando representar intensidades de campo em superfície de objeto, o
Visualizador MEF 3D foi modificado com base em um código exemplo disponível no
SDK do Windows Store APP (Direct3D tutorial sample), passando a reproduzir um
cubo colorido ilustrado na Figura 76.
Figura 76 – Cubo colorido, com a coloração representando intensidade de campo na superfície do cubo
Fonte: Autor
Este cubo continua sendo definido por oito vértices e doze elementos de
superfícies triangulares. Cada elemento de superfície continua sendo definido por um
conjunto de três inteiros. Cada vértice passa a ser definido por uma coordenada 3D e
uma cor. No elemento de superfície, a totalidade de cor varia gradualmente entre
vértices.
Para o formato MEF3D foram feitas especificações que permitem representar
intensidades de campo em superfície de objeto. A definição do cubo colorido com
estas especificações foi feita no arquivo CUBE.MEF3D, com sua listagem ilustrada na
Figura 77. No Visualizador MEF 3D, foi implementado um carregador de arquivo, que
foi testado com este arquivo.
97
Figura 77 – Listagem do CUBE.MEF3D no formato MEF 3D com a definição do cubo colorido
Fonte: Autor
Os conceitos de vértice e de faces da computação gráfica correspondem
respectivamente aos conceitos de nós e elementos de superfície do método dos
elementos finitos.
A variável SurfaceMesh define a geometria dos objetos. Uma malha de
superfície é definida por coordenadas de nós/vértices no vetor Nodes e elementos de
superfície/faces triangulares no vetor Elements, em que para cada elemento de
superfície/face existe um vetor de três inteiros, que identificam os respectivos
nós/vértices.
98
A cor de cada nó/vértice, que define a coloração das faces, é definida no vetor
RGBFloatColors, cuja quantidade de elementos deve ser igual à quantidade de nós da
malha de superfície e, cada cor é representada por um vetor de três elementos reais.
Para a reprodução de linhas de campo, foi definida a variável FieldLines no
formato MEF3D, que é um vetor de linhas de campo, sendo cada linha de campo um
vetor de coordenadas 3D, conforme listagem apresentada na Figura 78, na qual é
definida uma linha de campo fechada. Nesta reprodução de linha de campo, cada
segmento de linha entre dois pontos seguidos corresponde a uma seta, que é
representada por um tetraedro.
Figura 78 – Listagem com a definição de uma linha de campo fechada no formato MEF3D
A interpretação do vetor FieldLines foi implementada no carregador do formato
MEF3D no Visualizador e o código que define a linha de campo foi inserido no arquivo
CUBE.MEF3D, passando a reproduzir o cenário ilustrado na Figura 79.
99
Figura 79 – Reprodução da linha de campo em perspectiva e em estereoscopia
Fonte: Autor
Devido à impossibilidade de ilustrar adequadamente o efeito 3D composto
pelos efeitos Head-Tracking e estereoscópico, optou-se em ilustrar na Figura 80 a
reprodução da linha de campo fechada, definida por mais pontos, em pontos de vista
diferentes, em perspectiva e em estereoscopia.
Figura 80 – Linha de campo definida com mais segmentos, reproduzida em diferentes perspectivas
Fonte: Autor
100
6.5. OBTENÇÃO DE ARQUIVO MEF3D DE UMA SIMULAÇÃO MEF
Utilizando o Maxwell 3D, foi feita uma simulação magnetostática de um
eletroímã, com suas vistas ilustradas na Figura 81.
Figura 81 – Vistas frontal, lateral e superior em perspectiva do eletroímã simulado no Maxwell 3D
Fonte: Autor
O resultado da simulação foi exportado em arquivos de extensão “.dsp”, em
que as malhas são representadas nos vetores Elements e Nodes e, os campos são
representados no vetor ElemSolution.
O vetor Elements contém termos inteiros, cujos dois primeiros representam na
sequência o total de nós e o total de elementos finitos. Cada elemento finito é
representado por uma sequência de termos no vetor Elements. Os primeiros quatro
termos da sequência caracterizam o elemento finito. O quinto termo informa a
quantidade de nós associados ao elemento finito. Os demais termos da sequencia são
índices de nós. Na simulação em questão, os elementos finitos são tetraedros
associados a dez nós: quatro vértices e seis arestas.
101
O vetor Nodes contém termos reais, sendo que cada três termos representam
a coordenada 3D de um nó da malha. As coordenadas dos nós encontram-se
ordenadas de acordo com o índice de cada nó, cujo primeiro índice tem valor zero.
O vetor ElemSolution contém valores reais. Os campos são representados a
partir do quarto termo deste vetor. Cada sequência de três termos representa o campo
3D de cada nó em cada elemento finito, na sequência do vetor Elements.
Foram exportados três arquivos com extensão “.dsp”: o primeiro contendo a
malha na região do imã e da bobina; o segundo contendo a malha e os campos na
região do vácuo e o terceiro contendo a malha e os campos na região do vácuo e da
bobina.
Foi desenvolvido um software que lê estes três arquivos e gera um arquivo no
formato MEF 3D proposto. A superfície gerada corresponde à interface do imã e da
bobina com o vácuo. As intensidades de campo nesta superfície correspondem às
intensidades de campo no vácuo. A escala de cores utilizada é um degrade do azul
para o vermelho, em que o azul corresponde ao campo de menor intensidade e o
vermelho ao campo de maior intensidade. A Figura 82 ilustra uma perspectiva do
eletroímã reproduzida pelo Visualizador MEF 3D.
Figura 82 – Imagem em perspectiva de campo superficial apresentada pelo Visualizador MEF 3D a
partir de uma simulação magnetostática do eletroímã
102
CONCLUSÃO
Neste trabalho foram propostas melhorias na apresentação MEF voltadas para
a Realidade Virtual. Na representação gráfica dos fenômenos físicos foi proposta a
seletividade das informações de interesse, para evitar poluição visual. Foi proposto o
uso de escala de cores bidimensionais, com degrade entre duas tonalidades. Foram
especificadas outras representações como de superfícies equipotenciais e
intensidades de campo no espaço 3D. A interface de iteração do usuário com o
espaço virtual se faz necessária por ser mais amigável e flexível.
A reprodução 3D Absoluta, em que o endereçamento do cenário virtual não
varie com o posicionamento da cabeça do observador, é requisito da interface de
iteração do usuário. Utilizando recursos tecnológicos de baixo custo, foi projetado o
efeito 3D que oferece este endereçamento absoluto do cenário virtual. Uma camada
de software, que a partir da posição medida do ponto de vista de cada olho, faz
apresentar em um monitor estereoscópico as perspectivas do cenário de acordo com
o ponto de vista de cada olho.
O efeito 3D proposto foi modelado e equacionado. Para que seja reproduzido
adequadamente, é necessário que a medição da posição do ponto de vista dos olhos
seja precisa, exigindo calibração do rastreador de cabeça.
A camada do efeito 3D, inserida na placa de vídeo, permite a disponibilização
automática deste efeito a todas as aplicações gráficas 3D que delegam a
renderização ao hardware. O calibrador de cabeça/olhos solidário ao monitor
possibilita que sua calibração seja feita uma única vez, ou seja, de fábrica. Com um
pequeno avanço tecnológico é possível disponibilizar este efeito a vários
observadores em um único monitor, podendo até dispensar o uso de óculos utilizando
o monitor auto estereoscópico com rastreamento de cabeça apresentado na seção
3.2. Esta configuração pode caracterizar uma geração de monitores voltados à
Realidade Virtual que irá perdurar até a viabilização tecnológica dos monitores
volumétricos, não podendo desconsiderar o potencial das soluções de realidade
aumentada.
Para prova de conceito, foi implementado um visualizador MEF com a camada
do efeito 3D nele inserida. Foi projetado um rastreador de cabeça simplificado, que
103
estima a posição do ponto de vista dos olhos a partir da medida da posição de dois
pontos referência do par de óculos estereoscópico. Este rastreador de cabeça
simplificado permite a movimentação da cabeça do observador em apenas quatro
graus de liberdade.
Na prova de conceito, a reprodução 3D se mostrou bem realista,
proporcionando uma sensação de imersão satisfatória, mesmo sem explorar a
percepção de acomodação.
Para testar a representação MEF, no Visualizador MEF foi implementado o
leitor do formato de arquivo MEF 3D, especificado neste trabalho, que define
superfícies a partir de coordenadas 3D de vértices, associa elementos de face
triangular aos seus vértices, atribui cor a cada vértice representando intensidade de
campo e define linhas de campo em sequências de coordenadas 3D.
No Maxwell 3D, foi feita uma simulação magnetostática de um eletroímã, cujos
dados foram exportados e convertidos para o formato MEF 2D.
A visualização desta simulação no Visualizador MEF com a escala de cores
variando entre o azul e o vermelho permitiu uma percepção mais intuitiva das
intensidades de campo e o realismo 3D enriqueceu a visualização.
104
PERSPECTIVAS FUTURAS
A melhor reprodução do efeito 3D explorado depende da precisão da medida
da posição dos pontos de vista dos olhos e da latência entre seu posicionamento e a
apresentação das respectivas perspectivas, existindo tolerância a estas incertezas e
latências.
A melhor precisão da medida pode ser obtida: utilizando câmera de maior
definição na medição do posicionamento dos óculos; medindo os seis graus de
posicionamento dos óculos com mais pontos referência nele fixados e fazendo uma
melhor estimativa da posição dos olhos no referencial dos óculos com base no seu
posicionamento, ou até, utilizando câmeras embutidas nos óculos para medir a
posição do ponto de vista de cada olho.
A latência depende do tempo de resposta do rastreador de cabeça, do poder
de processamento da placa de vídeo e do detalhamento do cenário virtual. Esta
latência pode ser melhorada: utilizando câmeras com menor tempo de resposta;
dispensando a arquitetura cliente-servidor do rastreador de cabeça; utilizando placas
de vídeo com maior poder de processamento e o detalhamento do cenário virtual
pode ser reduzido por um processo de compactação, que reduz a quantidade de
poliedros, que representam os objetos virtuais, sem comprometer a qualidade da
reprodução gráfica.
Na configuração sugerida ideal para o efeito 3D explorado, além do efeito 3D
ser automático e dispensar calibrações, o rastreador de cabeça pode ser
implementado com a máxima precisão e com o mínimo tempo de resposta. A placa de
vídeo pode ser aperfeiçoada para ter a máxima eficiência na renderização de
múltiplas perspectivas de um único cenário virtual. Os desenvolvedores de placas de
vídeo em conjunto com os desenvolvedores de monitores são os mais capacitados
para esta implementação.
No Visualizador MEF, faltam implementar: a interface de interação do usuário;
o suporte a animação; a seletividade das informações de interesse e a representação
de superfícies equipotenciais e da intensidade escalar de campos na forma de
nebulosa. Para tanto, é necessário definir um formato diferente do definido na prova
de conceito.
105
REFERÊNCIAS BIBLIOGRÁFICAS
AZEVEDO E.; CONCI A. Computação Gráfica – geração de imagens, Rio de Janeiro: Campus/Elsevier, 2003. 350 P.
AZEVEDO E.; CONCI A.; LETA F. Computação Gráfica – teoria e prática. Rio de Janeiro: Campus/Elsevier, 2008. v.2, 404 P.
BENZIE P. et al. A Survey of 3DTV Displays: Techniques and Technologies. In: CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, 2007 IEEE TRANSACTIONS ON. IEEE Journals & Magazines. p. v17-1647-1658. DOI: 10.1109/TCSVT.2007.905377. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=4358676&queryText%3DA+Survey+of+3DTV+Displays%3A+Techniques+and+Technologies>. Acesso em: jan. 2014.
BLONDE L.; DOYEN D.; BOREL T. 3D stereo rendering challenges and techniques. INFORMATION SCIENCES AND SYSTEMS (CISS), 2010 44TH ANNUAL CONFERENCE ON. IEEE Conference Publications. p. 1-6. DOI: 10.1109/CISS.2010.5464936. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5464936&queryText%3D3D+stereo+rendering+challenges+and+techniques>. Acesso em: jan. 2014.
BRAR R.S. et al. Multi-user glasses free 3D display using an optical array. In: 3DTV-CONFERENCE: THE TRUE VISION - CAPTURE, TRANSMISSION AND DISPLAY OF 3D VIDEO (3DTV-CON), 2010. IEEE Conference Publications. p. 1-4. DOI: 10.1109/3DTV.2010.5506487. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5506487&queryText%3DMulti-user+glasses+free+3D+display+using+an+optical+array>. Acesso em: jan. 2014.
Coordinate Systems. Disponível em <http://msdn.microsoft.com/en-us/library/windows/desktop/bb204853(v=vs.85).aspx>. Acesso em: jan. 2014.
Direct3D tutorial sample. Disponível em <http://code.msdn.microsoft.com/windowsapps/Direct3D-Tutorial-Sample-08667fb0>. Acesso em: jan. 2014.
Direct3D stereoscopic 3D sample. Disponível em <http://code.msdn.microsoft.com/windowsapps/Direct3D-111-Simple-Stereo-9b2b61aa>. Acesso em: jan. 2014.
DirectDraw Architecture. Disponível em <http://msdn.microsoft.com/en-us/library/windows/hardware/ff553820(v=vs.85).aspx>. Acesso em: jan. 2014.
106
FAVALORA GE. Volumetric 3D Displays and Application Infrastructure. COMPUTER, 2005. IEEE Journals & Magazines. p. v38-37-44. DOI: 10.1109/MC.2005.276. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=1492264&queryText%3DVolumetric+3D+Displays+and+Application+Infrastructure >. Acesso em: jan. 2014.
FJMSOFT. Disponível em
<http://www.fjmsoft.com.br/ecommerce_site/produto_6298_9175_Super-LED-IR-3w-Infravermelho-850nm-single-chip>. Acesso em: jan. 2014.
FLIEGEL K. Advances in 3D imaging systems: Are you ready to buy a new 3D TV set? RADIOELEKTRONIKA (RADIOELEKTRONIKA), 2010 20TH INTERNATIONAL CONFERENCE. IEEE Conference Publications. p. 1-6. DOI: 10.1109/RADIOELEK.2010.5478550. 1-6 p. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5478550&queryText%3DAdvances+in+3D+imaging+systems%3A+Are+you+ready+to+buy+a+new+3D+TV+set%3F>. Acesso em: jan. 2014.
FUJIKAWA S. Three-dimensional imaging technology: A revolution in the world of imaging. VLSI CIRCUITS (VLSIC), 2010 IEEE SYMPOSIUM ON. IEEE Conference Publications. p. 9-12. DOI: 10.1109/VLSIC.2010.5560254. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5560254&queryText%3DThree-dimensional+imaging+technology%3A+A+revolution+in+the+world+of+imaging> Acesso em: jan. 2014.
HILL L.; JACOBS A. 3-D Liquid Crystal Displays and Their Applications. PROCEEDINGS OF THE IEEE, 2006. IEEE Journals & Magazines. p. 575-590. DOI: 10.1109/JPROC.2006.870695. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=1605204&queryText%3D3-D+Liquid+Crystal+Displays+and+Their+Applications>. Acesso em: jan. 2014.
História do OpenGL. Disponível em <http://www.opengl.org/wiki/History_of_OpenGL>. Acesso em: jan. 2014.
INFITEC. Disponível em <http://infitec.net/index.php/home/glasses/infitec-premium-glasses>. Acesso em: jan. 2014.
JORKE H.; SIMON A.; FRITZ M. Advanced Stereo Projection Using Interference Filters. 3DTV CONFERENCE: THE TRUE VISION - CAPTURE, TRANSMISSION AND DISPLAY OF 3D VIDEO, 2008. IEEE Conference Publications. p. 177-180 p. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=4547837&queryText%3DAdvanced+Stereo+Projection+Using+Interference+Filters>. Acesso em: jan. 2014.
107
JUNG-YOUNG S. et al. Recent Developments in 3-D Imaging Technologies. DISPLAY TECHNOLOGY, JOURNAL OF, 2010. IEEE Journals & Magazines. p. 394-403. DOI: 10.1109/JDT.2010.2045636. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5458017&queryText%3DRecent+Developments+in+3-D+Imaging+Technologies> Acesso em: jan. 2014.
KREIS T. et al. Digital holography methods in 3D-TV. 3DTV CONFERENCE, 2007. IEEE Conference Publications. p. 1-4. DOI: 10.1109/3DTV.2007.4379471. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=4379471&queryText%3DDigital+Holography+Methods+in+3D-TV>. Acesso em: jan. 2014.
LEE J. (2007); Head Tracking for Desktop VR Displays using WiiRemote. Disponível em <http://www.youtube.com/watch?v=Jd3-eiid-Uw>. Acesso em: jan. 2014.
NaturalPoint TrackIR Users Manual. Disponível em <http://www.naturalpoint.com/trackir/support/TrackIR-manual-v5.0/tir5-Chapter_3.html#h-3>. Acesso em: jan. 2014.
NVIDIA 3D Vision. Disponível em <http://www.nvidia.com.br/object/3d-vision-discover-main-br.html>. Acesso em: jan. 2014.
SHI K.; WANG F. The development of stereoscopic display technology. ADVANCED COMPUTER THEORY AND ENGINEERING (ICACTE), 2010 3RD INTERNATIONAL CONFERENCE ON. IEEE Conference Publications. p. v4-276-280. DOI: 10.1109/ICACTE.2010.5579814. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5579814&queryText%3DThe+development+of+stereoscopic+display+technology>. Acesso em: jan. 2014.
SHUHONG X. et al. 3D display for a classroom. In: EDUCATIONAL AND INFORMATION TECHNOLOGY (ICEIT), 2010 INTERNATIONAL CONFERENCE ON. IEEE Conference Publications. p. v2-316-320. DOI: 10.1109/ICEIT.2010.5607580. Disponível em <http://ieeexplore.ieee.org/search/searchresult.jsp?newsearch=true&queryText=3D+display+for+a+classroom&.x=79&.y=36> Acesso em: jan. 2014.
Sony Insider. Disponível em <http://www.sonyinsider.com/2011/01/07/hands-on-with-sonys-3d-head-mounted-oled-glasses/>. Acesso em: jan. 2014.
STERN A.; JAVIDI B. Three-Dimensional Image Sensing, Visualization, and Processing Using Integral Imaging. Proceedings of the IEEE, 2006. IEEE Journals & Magazines. p. v94-591-607. DOI: 10.1109/JPROC.2006.870696. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=1605205&queryText%3DThree-Dimensional+Image+Sensing%2C+Visualization%2C+and+Processing+Using+Integral+Imaging>. Acesso em: jan. 2014.
108
Viewports and Clipping. Disponível em <http://msdn.microsoft.com/en-us/library/windows/desktop/bb206341(v=vs.85).aspx>. Acesso em: jan. 2014.
YARAS. et al. State of the Art in Holographic Displays: A Survey. Display TECHNOLOGY, JOURNAL OF, 2010. IEEE Journals & Magazines. p. 443-454. DOI: 10.1109/JDT.2010.2045734. Disponível em <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5473052&queryText%3DState+of+the+Art+in+Holographic+Displays%3A+A+Survey>. Acesso em: jan. 2014.