1 Realidade virtual não imersiva — Guia
Cada jeito de servir um ambiente virtual é um regime. No imersivo, o visor, aparelho que se prende à cabeça e tapa os olhos, põe a cena em volta de quem olha. No regime em janela, a cena aparece numa tela comum: é a realidade virtual não imersiva.
Comparada ao visor, a janela parece um ensaio, mas, neste percurso, ela é o caso base, o regime para onde os outros caem quando falta o aparelho: eles acrescentam a ela, e ela não depende de nenhum.
“Escada rolante parada ainda é escada; ambiente que só existe com o visor no rosto não é nada sem ele.” A escada sem energia ainda leva ao andar de cima, mas o ambiente preso ao visor não leva a lugar nenhum sem ele.
Na janela, quem anda pela cena é a câmera, o ponto de onde a imagem é desenhada. Como ela chega a cada peça?
1.1 Câmera, distância e tela
1.1.1 Três números e um alvo
A câmera em órbita gira em volta de um ponto, o alvo, sempre olhando para ele. A posição dela cabe em três números: o azimute \alpha, o giro, visto de cima, em volta do alvo; a elevação \varepsilon, o ângulo com que ela sobe acima do alvo; e a distância d até o alvo. Com o alvo em (x_a, y_a, z_a):
x = x_a + d\cos\varepsilon\,\operatorname{sen}\alpha, \qquad y = y_a + d\operatorname{sen}\varepsilon, \qquad z = z_a + d\cos\varepsilon\,\cos\alpha.
O produto d\cos\varepsilon é a sombra no chão do segmento entre a câmera e o alvo, e o azimute a divide entre x e z. Cada gesto muda algum dos três números, e a posição sai da conta. A elevação e a distância têm travas, o menor e o maior valor aceitos: aqui, de 0 a 85 graus e de 0,35 m a 8 m.
1.1.2 A distância que faz caber
Enquadrar é levar a câmera até a peça aparecer inteira na tela. O alvo vai ao centro da esfera envolvente, de raio \rho, que passa pelos cantos da menor caixa, de lados paralelos a x, y e z, que contém a peça. O campo de visão \theta é o ângulo que a tela mostra de cima a baixo, aqui 55 graus. Numa tela mais larga do que alta, a esfera encosta primeiro em cima e embaixo, à distância \rho/\operatorname{sen}(\theta/2), o raio sobre o seno da metade do campo de visão. A margem m, aqui 1,25, afasta mais, até a distância pedida:
d_{\text{pedida}} = \frac{\rho}{\operatorname{sen}(\theta/2)} \times m.
A distância concedida, a que a câmera usa, é a pedida presa entre as travas.
1.1.3 Coberta pela órbita
O módulo chama de peças do domínio as cinco do mecanismo da cena, e de conferência da entrega a passagem de cada uma pela conta do enquadramento. O alcance de braço é a distância até onde a mão chega sem dar um passo.
Uma peça do domínio está coberta pela órbita quando a órbita consegue enquadrá-la: a peça existe na cena, e a esfera envolvente dela cabe inteira na altura da tela à distância concedida. A medida é a fração da altura, quanto da altura da tela o diâmetro da esfera ocupa nessa distância, e a peça está coberta quando a fração é no máximo 1. A cobertura do domínio é a conta de quantas peças do domínio estão cobertas.
A conferência usa a mesma conta que a órbita usa para se mover. Uma conferência com conta própria poderia aprovar uma peça que a câmera não consegue mostrar.
A cobertura é coisa da câmera e da tela, e não do corpo. A peça coberta pela órbita pode estar a qualquer distância, e chegar a ela custa o mesmo gesto; é por isso que o regime em janela cobre todas as peças e não tem alcance de braço.
Da câmera, a borda da esfera fica a um ângulo de seno \rho/d do centro, e a altura na tela cresce com a tangente desse ângulo:
\text{fração} = \frac{\tan(\operatorname{arcsen}(\rho/d))}{\tan(\theta/2)}.
Fica descoberta a peça cuja fração passa de 1 na trava máxima.
1.2 O raio de 3,3 metros
Uma peça tem esfera de 3,3 m de raio. Na metade do campo, \operatorname{sen} 27{,}5° \approx 0{,}462 e \tan 27{,}5° \approx 0{,}521:
- Pedida: 3{,}3 / 0{,}462 \times 1{,}25 \approx 8{,}93 m.
- Concedida: a trava máxima segura a câmera em 8 m.
- Fração: \rho/d = 3{,}3/8 = 0{,}4125, o ângulo é 24,4 graus, e \tan 24{,}4° / \tan 27{,}5° \approx 0{,}87.
A peça ocupa 87% da altura: está coberta. A regra “coberta quando a pedida fica abaixo da trava máxima” a reprovaria no passo 2.
1.3 O botão e o braço
Um botão de enquadramento pede à órbita um alvo e uma distância novos. Se ele escrevesse a câmera direto, a posição duraria até o primeiro arrasto: a órbita refaz a conta com os números dela, ainda do alvo antigo, e a câmera salta de volta.
Cobrir as cinco peças com o mesmo gesto é a razão de a janela não ter alcance de braço: ela só sabe onde está o cursor, e não a mão.
1.4 Três previsões para conferir
Com o alvo em (1;\ 0{,}5;\ -2), azimute 180 graus, elevação 30 graus e distância 3 m, onde fica a câmera?
Em (1;\ 2;\ -4{,}60), aproximadamente, 1,5 m acima do alvo: o seno de 180 graus é 0, e o cosseno, -1.
Numa tela mais larga do que alta, uma peça tem esfera de 4 m de raio. Com a trava máxima de 8 m, ela fica coberta? Se não, que trava máxima, no mínimo, a cobriria?
Não: a 8 m, \rho/d = 0{,}5, o ângulo é 30 graus, e a fração é \tan 30° / \tan 27{,}5° \approx 1{,}11. A trava precisa chegar a 4/\operatorname{sen} 27{,}5° \approx 8{,}66 m, onde a fração vale 1.
Na mesma tela, uma peça tem o dobro do raio da de 3,3 m, e a trava máxima dobra para 16 m. Que fração da altura ela ocupa?
87%: ela pede 17,9 m, fica a 16 m, e \rho/d = 6{,}6/16 é a razão de antes. A fração só depende dessa razão e do campo de visão.
1.5 Para ir além
O caso base está em “A janela embaixo de tudo”; as travas e os gestos, em “A câmera presa a um ponto” e “Gestos que só mudam números”; a medida da esfera, em “Enquadrar pela esfera, e conferir cada peça”. O endereço está em “Uma página que outra pessoa abre, dentro do teto”. O que a janela não mostra está em “O que a tela não dá, aferido com o programa rodando”, e quando ela está pronta, em “O piso para onde a queda leva”.