Pular para o conteúdo principal

Realidade virtual não imersiva — Atlas

O módulo inteiro em oito formas visuais. Cada uma mostra o mesmo conteúdo de outro jeito: o resumo ilustrado; os procedimentos passo a passo; os cartões para treinar de memória; o módulo contado como uma história, figura a figura; a árvore dos tópicos; o painel que junta conceito, exemplo, diagrama e fato; a rede de conceitos; e as regras, as contas e os erros previsíveis para consultar na hora.

Resumo ilustrado

Resumo ilustrado em nove partes, sob o título “Realidade virtual não imersiva” e a frase “a cena numa tela comum: a câmera chega a cada peça, e a página diz o que a tela não dá”. 1, a janela embaixo de tudo: regime em janela: a cena numa tela comum, sem visor (o aparelho preso à cabeça que cobre os olhos); a janela é a escada rolante parada: oferece menos, mas qualquer pessoa consegue usar; caso base: o regime que funciona sozinho; os outros acrescentam a ele, e ele não depende de nenhum; a queda entre regimes (a passagem para um que pede menos do aparelho) termina na janela; a janela entregue pela metade, sem chegar a todas as peças, é uma tela que não leva a lugar nenhum. 2, três números a partir do alvo: câmera em órbita: gira em volta do alvo, o ponto para onde ela olha; o azimute (o giro visto de cima); a elevação (o ângulo com que a câmera sobe acima da altura do alvo); a distância (até o alvo); a posição sai dos três números; os três números de partida se medem na câmera já posicionada: 1,62 m, 21,8 graus, azimute 0; travas (o menor e o maior valor aceito): elevação de 0 a 85 graus; distância de 0,35 m a 8 m. 3, gestos que só mudam números: arrastar (0,35 grau por pixel); a roda (a distância × 1,12 ou ÷ 1,12); a pinça, com dois dedos (a distância × a razão entre a distância dos dedos antes e a de agora); trocar ÷ 1,12 por × 0,88 não desfaz a ida: 1,12 × 0,88 = 0,9856 a cada ida e volta; a razão da pinça rende igual perto e longe: de 100 para 200 pixels, 1,62 m vira 0,81 m, e 8 m viram 4 m; mouse, dedo e caneta chegam do mesmo jeito, num tratamento só. 4, um dono só para a câmera: gesto ou botão, depois a órbita, depois a câmera; a câmera é escrita quando alguém mexe, e não a cada quadro (cada imagem que o aparelho mostra); a contagem de escritas que cresce com a página parada denuncia código que escreve a câmera sem ninguém pedir; o botão que escrevia a câmera direto: no primeiro arrasto, ela salta de volta; botão de enquadramento: pede à órbita que leve a câmera até onde uma parte da cena aparece inteira na tela. 5, a esfera dá a distância: esfera envolvente: centro no centro da caixa envolvente (a menor caixa, de arestas paralelas a x, y e z, que contém o objeto) e raio de metade da diagonal dela; distância pedida = ρ ÷ sen(θ/2) × m; ρ, o raio; θ, o campo de visão (o ângulo que a tela mostra de cima a baixo); m, a margem, 1,25; distância concedida: a pedida presa entre as travas, a que a câmera usa; a esfera, e não a caixa, porque ocupa a mesma altura na tela vista de qualquer direção; e a esfera sai da caixa do que aparece na tela, sem o escondido. 6, a fração decide a cobertura: fração da altura: quanto da altura da tela o diâmetro da esfera ocupa, na distância concedida; fração até 1 (peça coberta); acima de 1 (não cabe); a conferência da entrega passa as cinco peças pela mesma conta que move a câmera: 5 de 5; cobrir todas as peças com o mesmo gesto é a razão de não haver alcance de braço (até onde a mão chega sem dar um passo). 7, para quem não estava na sala: o endereço servido na mesma rede, e outro aparelho abre a página; a explicação de uso (como girar, aproximar e ir a cada peça) vem antes da cena, e por isso é lida antes de a pessoa tentar; depois da cena, seria lida só depois de ela desistir; os botões com o nome de cada peça completam a explicação; a explicação fica guardada no programa junto dos gestos que ensina, à vista de quem os muda. 8, folga e imagem perdida: teto da página (o tempo que o programa tem para cada quadro): 16,7 ms, o da tela; custo: o tempo do trabalho do próprio programa por quadro; a folga (o teto menos o custo médio) diz quanto trabalho ainda cabe; o intervalo (o tempo real entre duas imagens) diz se uma imagem se perdeu; do intervalo, a sobra dá perto de zero em qualquer cena; imagem perdida (a tela repete a anterior): acusada quando o pior intervalo (o mais longo dos últimos 120 quadros) passa de 1,5 vez o teto, 25,05 ms; a medida tirada logo ao abrir carrega trabalho que só se faz uma vez; vale a de 120 quadros. 9, três limites, aferidos: limite: o que o regime não oferece, com o que a falta impede de demonstrar; aferição: o confronto com o programa rodando; no computador de mesa, sem visor: profundidade inferida (calculada das pistas da própria imagem), confirmado; sem escala corporal (a comparação da cena com o corpo de quem usa), confirmado; sem alcance de braço, inconclusivo; com um visor apresentando a imagem, as duas primeiras saem contrariadas; pronta para ser destino da queda: quem nunca viu o projeto chega a cada peça sem ajuda, e cada limite tem a aferição ao lado.
Figura 1: O módulo em nove partes: a janela embaixo de tudo; os três números a partir do alvo; os gestos que só mudam números; o dono único da câmera; a esfera que dá a distância; a fração que decide a cobertura; a página para quem não estava na sala; a folga e a imagem perdida; e os três limites, aferidos.

Fluxogramas

Cinco procedimentos do módulo, na ordem em que ele os apresenta. Siga cada um com um lápis, aplicando-o à mesa de oficina do ambiente e às cinco peças do domínio, as do mecanismo que está sobre ela (o corpo, o eixo, a engrenagem grande, a engrenagem pequena e a tampa do mecanismo).

Mover a câmera por um gesto

Este fluxograma decide o que cada gesto muda na câmera. A câmera em órbita gira em volta do alvo, o ponto para onde ela olha, e guarda a posição em três números: o azimute (o giro em volta do alvo visto de cima), a elevação (o ângulo com que a câmera sobe acima da altura do alvo) e a distância até o alvo. O gesto chega do mouse, do dedo ou da caneta e muda só esses números: a roda multiplica ou divide a distância; um dedo apertado arrasta e gira; dois dedos fazem a pinça, o gesto de afastar ou aproximar os dois na tela. No fim de cada caminho, uma trava (o menor ou o maior valor que a órbita aceita) segura a elevação ou a distância, e só então a câmera é escrita.

%%{init: {"flowchart": {"useMaxWidth": false, "rankSpacing": 30, "nodeSpacing": 30}, "sequence": {"useMaxWidth": false}, "class": {"useMaxWidth": false}, "state": {"useMaxWidth": false}, "er": {"useMaxWidth": false}}}%%
flowchart TB
    A["aviso de gesto sobre a cena:<br/>mouse, dedo ou caneta"] --> R{"roda?"}
    R -->|"sim"| Z{"valor<br/>vertical?"}
    Z -->|"zero:<br/>de lado"| N["nada muda"]
    Z -->|"positivo:<br/>para baixo"| M["distância<br/>× 1,12"]
    Z -->|"negativo:<br/>para cima"| V["distância<br/>÷ 1,12"]
    R -->|"não"| Q{"quantos<br/>apertados?"}
    Q -->|"nenhum"| N
    Q -->|"um"| G["arrastar: cada pixel<br/>para a direita, azimute<br/>− 0,35 grau; para baixo,<br/>elevação + 0,35 grau"]
    Q -->|"dois"| P["pinça: distância ×<br/>(dedos antes ÷ agora);<br/>o agora vira o antes"]
    G --> TE["trava da elevação:<br/>0 a 85 graus"]
    M --> TD["trava da distância:<br/>0,35 m a 8 m"]
    V --> TD
    P --> TD
    TE --> W["a posição sai<br/>dos três números,<br/>e a câmera é escrita"]
    TD --> W

Figura 2: Siga o arrasto de 100 pixels para a direita e 40 para baixo: o azimute vai de 0 a −35,0 graus, e a elevação, de 21,8 a 35,8. A pinça de 100 para 200 pixels leva 1,62 m a 0,81 m, de uma vez ou em dez movimentos, porque a distância entre os dedos de antes se mede no pouso do segundo dedo; medida no primeiro movimento, ela seria de 110 pixels, e a câmera pararia em 0,89 m. Já 200 pixels para baixo pediriam 91,8 graus, e a trava segura a elevação em 85.

Enquadrar uma peça e conferir a cobertura

Este fluxograma decide se uma peça do domínio fica coberta: se a câmera, levada até ela pela conta do enquadramento, a mostra inteira na tela. Enquadrar é levar a câmera a esse ponto. A peça se procura pelo nome na cena. Se for um lote, o conjunto de cópias desenhado numa só chamada de desenho (um só pedido à placa de vídeo), a conta usa a caixa de todas as cópias; se não, a caixa do que aparece, que deixa de fora o que está escondido na peça. Nos dois casos se trata de uma caixa envolvente, a menor caixa com as arestas paralelas a x, y e z que contém o que entra na conta, e dela sai a esfera envolvente, com centro no centro da caixa e raio igual à metade da diagonal da caixa. A distância pedida sai do raio, do campo de visão (o ângulo que a tela mostra de cima a baixo, 55 graus) e da margem de 1,25; a distância concedida é a pedida presa entre as travas da distância, de 0,35 m a 8 m. No último losango, a fração da altura é quanto da altura da tela o diâmetro da esfera ocupa na distância concedida.

%%{init: {"flowchart": {"useMaxWidth": false, "rankSpacing": 30, "nodeSpacing": 30}, "sequence": {"useMaxWidth": false}, "class": {"useMaxWidth": false}, "state": {"useMaxWidth": false}, "er": {"useMaxWidth": false}}}%%
flowchart TB
    A["uma peça do domínio,<br/>procurada pelo nome"] --> E0{"está<br/>na cena?"}
    E0 -->|"não"| F["falta: não<br/>conta como coberta"]
    E0 -->|"sim"| L{"é um<br/>lote?"}
    L -->|"sim: a caixa de<br/>todas as cópias"| VZ{"caixa<br/>vazia?"}
    L -->|"não: a caixa do<br/>que aparece"| VZ
    VZ -->|"sim"| X["a câmera não se move,<br/>e a peça não conta<br/>como coberta"]
    VZ -->|"não"| ES["esfera: o centro da caixa<br/>vira o alvo; raio de<br/>metade da diagonal"]
    ES --> PE["pedida = raio ÷ seno da<br/>metade do campo de visão<br/>× 1,25; concedida: presa<br/>entre 0,35 m e 8 m"]
    PE --> Q{"fração<br/>até 1?"}
    Q -->|"sim"| S["peça coberta"]
    Q -->|"não"| N["peça não coberta"]

Figura 3: Cada botão abaixo da cena, que o módulo chama de botão de enquadramento, faz o mesmo caminho até a distância concedida e leva a câmera para lá, mantendo o azimute e a elevação. A passagem que o projeto chama de conferência da entrega leva as cinco peças pela mesma conta até a fração. A engrenagem pequena pede 0,18 m, fica a 0,35 m e ocupa 37% da altura: coberta. Uma esfera de 3,3 m de raio pede 8,93 m, fica a 8 m e ocupa 87%: coberta. A conta pela altura vale numa tela mais larga do que alta; numa mais alta do que larga, a esfera só cabe se a fração não passar da razão entre a largura e a altura da tela: com essa razão em 0,5, só a engrenagem pequena caberia, e a contagem feita só pela altura continuaria dizendo 5 de 5.

Medir a folga e acusar a imagem perdida

Este fluxograma decide se a medida vale e o que ela diz: quanto trabalho ainda cabe e, quando uma imagem se perde, onde procurar a causa. A medida só vale depois de 120 quadros (cada quadro é uma imagem que o aparelho mostra), porque os primeiros fazem trabalho que só se faz uma vez. Com eles, a folga sai do teto (o tempo que o programa tem para cada quadro, 16,7 ms nesta página, o da tela) menos o custo médio (o tempo que o trabalho do próprio programa leva por quadro). Depois o losango olha o pior intervalo: o intervalo é o tempo real entre duas imagens, e o pior é o mais longo dos últimos 120 quadros. Acima de 25,05 ms, uma imagem se perdeu: não ficou pronta a tempo, e a tela repetiu a anterior. Se a folga continua positiva, a causa pode estar no código ou fora dele, na placa de vídeo, no compositor (a parte do sistema operacional que junta na tela o que todos os programas desenham) ou em outro programa.

%%{init: {"flowchart": {"useMaxWidth": false, "rankSpacing": 30, "nodeSpacing": 30}, "sequence": {"useMaxWidth": false}, "class": {"useMaxWidth": false}, "state": {"useMaxWidth": false}, "er": {"useMaxWidth": false}}}%%
flowchart TB
    A["clique em medir"] --> Q0{"já são<br/>120 quadros?"}
    Q0 -->|"não"| C["a medida carrega o trabalho<br/>que só se faz uma vez:<br/>não vale; meça mais tarde"]
    Q0 -->|"sim"| F["folga = 16,7 ms menos<br/>o custo médio"]
    F --> Q1{"pior intervalo<br/>acima de<br/>25,05 ms?"}
    Q1 -->|"não"| OK["nenhuma imagem perdida<br/>acusada; a folga diz quanto<br/>trabalho ainda cabe"]
    Q1 -->|"sim: imagem perdida"| Q2{"folga<br/>negativa?"}
    Q2 -->|"sim"| P["o programa não coube:<br/>o código sozinho<br/>passa do teto"]
    Q2 -->|"não"| D["procure no código e fora dele:<br/>placa de vídeo, compositor,<br/>outro programa; a medida<br/>não diz qual"]

Figura 4: Um quadro em que o código leva 30 ms, entre 119 de 0,24 ms, perde a imagem e deixa a média em 0,49 ms, dentro do teto: por isso, com a folga positiva, a folha do programa (o texto que ele escreve na tela, abaixo da cena) diz onde procurar, e não quem atrasou. Um pior intervalo de 16,8 ms, um décimo acima do teto, é o tremor da medida, e não uma imagem perdida.

Aferir os três limites

Este fluxograma decide, para cada limite da janela, se o programa em execução o confirma, o contraria ou não tem como dizer. Um limite de um regime é uma coisa que o regime não oferece, escrita em quatro partes. A janela tem três: a profundidade inferida (calculada das pistas da própria imagem); a falta de escala corporal (saber, sem régua, que um tampo está na altura da cintura); e a falta de alcance de braço (a distância até onde a mão chega sem dar um passo). Aferir é confrontar o que cada limite afirma com o que o programa em execução sabe. Para a profundidade, o losango pergunta se sai uma imagem por quadro, para a tela, ou uma para cada olho. Para a escala corporal, pergunta pelo chão e pelo visor (o aparelho preso à cabeça que cobre os olhos): o espaço de referência da janela (o sistema de coordenadas das posições, com a regra que fixa a origem) acompanha o olhar e não tem chão.

%%{init: {"flowchart": {"useMaxWidth": false, "rankSpacing": 30, "nodeSpacing": 30}, "sequence": {"useMaxWidth": false}, "class": {"useMaxWidth": false}, "state": {"useMaxWidth": false}, "er": {"useMaxWidth": false}}}%%
flowchart TB
    L["cada limite da lista,<br/>com o programa em execução"] --> Q{"qual<br/>limite?"}
    Q -->|"profundidade inferida"| Q1{"uma imagem<br/>por quadro,<br/>para a tela?"}
    Q1 -->|"sim: a mesma<br/>aos dois olhos"| C1["confirmado"]
    Q1 -->|"não: uma<br/>para cada olho"| X1["contrariado"]
    Q -->|"sem escala corporal"| Q2{"sem chão e sem<br/>visor mostrando<br/>a imagem?"}
    Q2 -->|"sim"| C2["confirmado"]
    Q2 -->|"não"| X2["contrariado"]
    Q -->|"sem alcance de braço"| I["nada no programa mede o braço:<br/>inconclusivo"]

Figura 5: No computador de mesa, sem visor, a aferição dá confirmado, confirmado e inconclusivo. Com um visor apresentando a imagem, os limites da profundidade e da escala corporal saem contrariados; sem visor, outra combinação diz que mudou o que o programa declara sobre o regime em janela (o espaço de referência e o que ele rastreia), ou o código da aferição.

Decidir se a janela está pronta para ser destino

Este fluxograma decide se a janela pode ser o destino da queda entre regimes (a passagem para um regime que pede menos do aparelho, que termina no regime em janela, a cena numa tela comum). A primeira pergunta é a de quem nunca viu o projeto: ele chega a cada peça se a conferência da entrega cobre as cinco peças do domínio, se há um botão por peça e se a página traz, antes da cena, o que o módulo chama de explicação de uso, o texto que diz como girar, aproximar e ir a cada peça. A segunda pergunta é a dos limites: cada um escrito na página, com a aferição ao lado.

%%{init: {"flowchart": {"useMaxWidth": false, "rankSpacing": 30, "nodeSpacing": 30}, "sequence": {"useMaxWidth": false}, "class": {"useMaxWidth": false}, "state": {"useMaxWidth": false}, "er": {"useMaxWidth": false}}}%%
flowchart TB
    A["a janela que vai ser destino<br/>da queda entre regimes"] --> Q1{"quem nunca viu<br/>o projeto chega a<br/>cada peça, sem ajuda?"}
    Q1 -->|"não"| F1["falta trabalho na janela:<br/>a conferência da entrega,<br/>os botões, a explicação de uso"]
    Q1 -->|"sim"| Q2{"cada limite<br/>na página, com<br/>a aferição?"}
    Q2 -->|"não"| F2["falta trabalho na janela:<br/>os limites escritos como dado,<br/>e aferidos"]
    Q2 -->|"sim"| S["a janela se sustenta sozinha"]
    F1 --> N["nenhum regime construído<br/>em cima dela compensa a falta"]
    F2 --> N

Figura 6: As duas perguntas se fazem à própria página. A primeira junta a conferência da entrega e a página que outra pessoa abre, sem ninguém explicar nada; a segunda, os limites com a aferição de cada um. Na janela sobrevive toda tarefa que só pede mudar o ponto de vista; a escala corporal e o alcance de braço não têm versão em janela, nem reduzida.

Cartões de memória

Leia a frente, diga a resposta em voz alta ou escreva no papel, e só então vire o cartão.

Definição: Caso base
O caso base de um ambiente servido em mais de um regime é o regime que precisa funcionar sozinho, antes de qualquer outro existir, porque é para ele que todos os outros caem quando falta o aparelho, a permissão ou a sessão de que dependem.

O que o distingue é a direção da dependência. Os outros regimes acrescentam ao caso base, e o caso base não depende de nenhum deles. Entregue pela metade, ele não espera os outros ficarem prontos: transforma cada falta de aparelho numa tela que não leva a lugar nenhum.

Neste percurso, o caso base é o regime em janela, a realidade virtual não imersiva: a cena mostrada numa tela comum, sem equipamento além do computador ou do celular.
Definição: Câmera em órbita
Uma câmera em órbita é uma câmera que gira em volta de um ponto, o alvo, sempre olhando para ele. A posição dela fica guardada em três números medidos a partir do alvo: o azimute \alpha, o giro em volta do alvo visto de cima; a elevação \varepsilon, o ângulo com que a câmera sobe acima da altura do alvo; e a distância d até o alvo.

Com o alvo em (x_a, y_a, z_a), a posição da câmera é

\[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.\]

Cada gesto muda os ângulos ou a distância, e a posição sai dos três números. Enquanto a órbita estiver instalada, a posição escrita por qualquer outro caminho dura só até o gesto seguinte, que a reescreve a partir dos três números: quem quiser a câmera noutro lugar pede à órbita um alvo e uma distância novos.

A elevação e a distância têm travas, o menor e o maior valor que a órbita aceita, e cada trava existe por um defeito que ela evita.
Definição: Enquadramento pela esfera envolvente
Enquadrar um objeto é levar a câmera ao ponto em que ele aparece inteiro na tela. O enquadramento pela esfera envolvente usa a esfera com centro no centro da caixa envolvente do objeto e raio \rho igual à metade da diagonal dela: o centro da esfera vira o alvo, e a distância sai de uma conta.

Com \theta para o campo de visão vertical da câmera, o ângulo que a tela mostra de cima a baixo, a esfera encosta na borda de cima e na de baixo da tela à distância \rho / \operatorname{sen}(\theta/2). A distância pedida é essa, multiplicada por uma margem m maior que 1, para a cena não encostar nas bordas:

\[d_{\text{pedida}} = \frac{\rho}{\operatorname{sen}(\theta/2)} \times m.\]

A distância concedida é a pedida presa entre as travas de distância da órbita, e é a que a câmera usa.

A esfera, e não a caixa, porque a esfera ocupa a mesma altura na tela vista de qualquer direção: a conta não precisa ser refeita quando quem olha muda de ângulo. A caixa que entra na conta é a do que aparece na tela; o que está escondido no objeto não entra.

A conta mede a altura da tela, e o objeto aparece inteiro quando a tela é mais larga do que alta, porque aí a altura encosta primeiro. Numa tela mais alta do que larga, quem encosta primeiro é a largura, e a conta passa a valer com o campo de visão horizontal no lugar de \theta.
Definição: Peça coberta pela órbita
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.
Definição: Folga
A folga é o que sobra do teto depois do custo: o teto do quadro menos o tempo médio que o trabalho do próprio programa leva por quadro, em milissegundos. Ela diz quanto trabalho ainda cabe no quadro.

A folga sai do custo, e não do intervalo entre imagens. O intervalo acompanha o ritmo da tela e não desce abaixo dele, por mais leve que a cena seja: numa tela de sessenta imagens por segundo, com o teto de 16,7 ms, a folga tirada do intervalo fica perto de zero em qualquer cena, leve ou pesada.

O intervalo responde a outra pergunta: se alguma imagem foi perdida. Ele anda em múltiplos do ritmo da tela, e um intervalo perto do dobro do ritmo é uma imagem que não saiu a tempo.
Definição: Limite de um regime
Um limite de um regime é uma coisa que o regime não oferece, escrita em quatro partes: um nome que o identifica; o enunciado do que falta, numa frase que quem lê consegue conferir; a razão técnica de faltar; e o que a falta impede de demonstrar naquele regime.

A última parte é a que separa o limite de uma lamentação. "Não há escala corporal" diz o que falta; "não dá para mostrar que o tampo tem a altura certa para trabalhar de pé" diz o que deixa de ser demonstrável, e é isso que precisa saber quem compara dois regimes.

Os limites ficam escritos como dado, junto do ambiente que eles descrevem: quem abre o ambiente os encontra na mesma página.
Definição: Profundidade inferida
A profundidade inferida é a distância que quem olha calcula a partir de pistas da própria imagem: a perspectiva, a oclusão (o objeto da frente tampando o de trás) e o tamanho relativo dos objetos.

Ela se opõe à profundidade vista com os dois olhos. Num visor, cada olho recebe uma imagem um pouco diferente, e a diferença entre as duas é uma pista que uma imagem sozinha não tem. Uma tela plana mostra a mesma imagem aos dois olhos, e por isso, no regime em janela, toda profundidade é inferida.

Profundidade inferida não é profundidade ausente: a cena na tela tem perto e longe. O que ela não sustenta é julgar, sem girar a câmera, qual de duas peças próximas está mais perto, que é o julgamento que encaixar uma peça na outra pede.
Definição: Escala corporal e alcance de braço
A escala corporal é a comparação entre o tamanho das coisas da cena e o corpo de quem as vê: saber, sem régua, que um tampo está na altura da cintura. O alcance de braço é a distância até onde a mão chega sem dar um passo.

As duas são medidas contra o corpo, e só existem num regime que sabe onde o corpo está: onde fica o chão da sala, a que altura estão os olhos, onde está a mão. O regime em janela não sabe nenhuma dessas coisas. A cena aparece do tamanho que a tela tiver, e o cursor chega a qualquer ponto da tela com o mesmo gesto, esteja a peça perto ou longe da câmera.

Nenhuma das duas falta por defeito de implementação, e nenhum código dentro do regime em janela as conserta: elas chegam com o regime que conhece o chão e rastreia a mão.
Definição: Aferição de um limite
A aferição de um limite é o confronto do que o limite afirma com o que o programa em execução sabe. Ela termina em um de três resultados: confirmado, quando o programa sabe o bastante para dizer que o limite vale; contrariado, quando sabe o bastante para dizer que não vale; e inconclusivo, quando o programa não tem como saber.

O terceiro resultado não é falha da aferição. Sem ele, um limite que nada no programa mede teria de sair confirmado ou contrariado sem fundamento, com a mesma cara dos que foram medidos; inconclusivo diz a quem lê que aquela linha depende de uma pessoa.

A aferição descreve o regime em uso. Os limites da profundidade e da escala corporal, aferidos com um visor apresentando a imagem, saem contrariados.

História em quadros

O módulo contado do começo ao fim, um passo em cada figura, na ordem em que ele avança.

História em quadros, 15 figuras, três por fileira. 1, uma mesa vista por uma tela: um endereço aberto no computador ou no celular; acima: três frases dizem como girar, chegar perto e ir até cada peça; no meio: a mesa de oficina, vista de frente; abaixo: botões com nomes (“A cena inteira”, um por peça, “A prateleira do fundo”); a cena: tudo o que existe no ambiente (peças, mesa, luzes e a câmera que olha para elas); nenhum visor (o aparelho preso à cabeça que cobre os olhos), nenhum programa instalado. Legenda: o regime em janela mostra a cena numa tela comum; ao lado do visor, parece o regime menos importante. 2, escada parada ainda é escada: “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 outro andar, a pé: a janela oferece menos, mas qualquer pessoa consegue usar; três visores, quarenta pessoas: a janela abre em todos os aparelhos; a queda entre regimes (a passagem para um que pede menos) termina na janela; quem assiste à apresentação vê a tela; a construção vai da janela ao regime imersivo, o do visor; a dependência vai do imersivo à janela. Legenda: a janela é o caso base: o regime que funciona sozinho, e para onde os outros caem quando falta o aparelho. 3, três números a partir do alvo: a câmera em (0; 1,55; 1,50) olha para o alvo, o ponto (0; 0,95; 0); o caminho do alvo à câmera: (0; 0,60; 1,50), 0,60 m para cima, 1,50 m para a frente; a distância até o alvo (√(0,60² + 1,50²) ≈ 1,62 m); a elevação, o ângulo com que a câmera sobe acima da altura do alvo (seno = 0,60 ÷ 1,616 ≈ 0,371: 21,8 graus); o azimute, o giro visto de cima (0, nada para o lado); a conta da posição devolve x = 0, y ≈ 1,55 e z ≈ 1,50: o mesmo ponto. Legenda: a câmera em órbita gira em volta do alvo, sempre olhando para ele, e a posição sai dos três números. 4, quatro travas, quatro defeitos: trava: o menor ou o maior valor que a órbita aceita; a elevação mínima (0 grau): sem ela, o tampo fica entre a câmera e as peças em cima dele; a elevação máxima (85 graus): sem ela, passando de 90, a imagem dá meia-volta e o arrasto inverte; a distância mínima (0,35 m): sem ela, a câmera entra no corpo, a peça do meio do tampo; a distância máxima (8 m): sem ela, a roda afastaria a câmera além dos 50 m em que o desenho é cortado, e a cena sumiria; o azimute não tem trava: dar a volta inteira na mesa não estraga nada. Legenda: os valores de 0,35 m e de 8 m são escolha, e não saem de conta; cada trava existe por um defeito que ela evita. 5, arrastar gira: cada pixel que a mão anda gira a câmera 0,35 grau; 100 pixels para a direita e 40 para baixo, em dez movimentos: o azimute vai de 0,0 a −35,0 graus (100 × 0,35, para o lado que diminui); a elevação, de 21,8 a 35,8 graus (21,8 + 40 × 0,35); a distância fica em 1,62 m (arrastar não a muda); mão para a direita: a câmera anda para a esquerda em volta do alvo, e a mesa gira para a direita na tela. Legenda: mouse, dedo e caneta chegam do mesmo jeito; 200 pixels para baixo pediriam 91,8 graus, e a trava segura em 85. 6, multiplicar a distância: um passo da roda para baixo (1,62 × 1,12 = 1,81 m); um passo para cima (1,81 ÷ 1,12 = 1,62 m); se aproximasse com 0,88: 1,12 × 0,88 = 0,9856, e 22 cm mais perto em dez idas e voltas; pinça (afastar ou aproximar dois dedos na tela): de 100 para 200 pixels, razão 1/2, e 1,62 m vira 0,81 m; a distância entre os dedos de antes vem do pouso do segundo dedo; tomada no primeiro movimento (110 pixels), a câmera pararia em 0,89 m; rolagem de lado: valor vertical zero, e a câmera não se mexe. Legenda: a razão rende igual perto e longe; um tanto fixo de metros por pixel quase não moveria a câmera a 8 m e atravessaria a peça a 0,35 m. 7, um dono só para a câmera: escritas da câmera, no total, contadas na folha do programa (o texto que ele escreve na tela, abaixo da cena): a página abriu, e ninguém mexeu (1); um arrasto de dez movimentos (11); um passo da roda para baixo e um para cima (13); uma rolagem de lado (13); três botões, um depois do outro (16); a contagem que cresce com a página parada denuncia código que escreve a câmera sem ninguém pedir; o botão que escrevia a câmera direto: no primeiro arrasto, ela salta de volta para a mesa. Legenda: com a órbita instalada, só ela escreve a câmera, e só quando alguém mexe; a contagem de escritas com a página parada é a prova. 8, a esfera em volta da cena: esfera envolvente: centro no centro da caixa envolvente (a menor caixa, de arestas paralelas a x, y e z, que contém o objeto) e raio de metade da diagonal dela; cena inteira: raio de 1,87 m; o centro, (0,00; 0,57; −1,24), vira o alvo; campo de visão (o ângulo que a tela mostra de cima a baixo): 55 graus, 27,5 a cada borda; 1,87 ÷ sen 27,5° = 1,87 ÷ 0,462 ≈ 4,05 m; depois, × 1,25 (a margem, para a cena não grudar nas bordas): 5,06 m (a folha escreve 5,07, com o raio sem arredondar); na distância pedida, a esfera ocupa 76% da altura da tela. Legenda: a esfera, e não a caixa: ela ocupa a mesma altura na tela vista de qualquer direção, e a conta não se refaz a cada ângulo. 9, a caixa do que aparece: o escondido não entra na conta do enquadramento; o volume de contato (a forma simples, maior que a peça, contra a qual se testa proximidade e toque) fica escondido; somado à caixa, faria a engrenagem pequena pedir 0,26 m em vez de 0,18 m; o lote (o conjunto de cópias desenhado numa só chamada de desenho, um só pedido à placa de vídeo): a caixa de todas as cópias; a caixa vazia: a câmera não se move; a engrenagem pequena pede 0,18 m; a trava a deixa a 0,35 m, e ela aparece menor do que a conta pediu. Legenda: três casos separam a caixa do que aparece da caixa do objeto inteiro: o escondido, o lote e a caixa vazia. 10, cinco de cinco, pela fração: as cinco peças pela conta do enquadramento, e a fração da altura (quanto da altura da tela o diâmetro da esfera ocupa): distância pedida, distância concedida e fração de cada peça: o corpo (0,24 m; 0,35 m; 51%); o eixo (0,30 m; 0,35 m; 65%); a engrenagem grande (0,30 m; 0,35 m; 64%); a engrenagem pequena (0,18 m; 0,35 m; 37%); a tampa do mecanismo (0,25 m; 0,35 m; 52%); fração até 1: peça coberta; uma peça com esfera de 3,3 m de raio pede 8,93 m, acima da trava; a 8 m ocupa 87% e cabe: a regra pela distância a reprovaria; o mesmo gesto a qualquer distância: por isso não há alcance de braço (até onde a mão chega sem dar um passo). Legenda: a conferência da entrega usa a mesma conta que move a câmera, e a cobertura do domínio dá 5 de 5. 11, para quem não estava na sala: o computador em que o ambiente é construído serve o endereço aos aparelhos da mesma rede, e o celular de outra pessoa abre a página: é tudo o que ela tem; antes da cena, a explicação de uso: arrastar gira; a roda ou dois dedos aproximam e afastam; os botões levam a cada peça; os botões com o nome de cada peça, para quem não descobriu como girar; a explicação fica guardada junto dos gestos que ensina: se um gesto mudar, nada no programa acusa a frase que ficou errada. Legenda: a explicação antes da cena é lida antes de a pessoa tentar; depois da cena, só depois de ela desistir. 12, a folga sai do custo: teto (o tempo que o programa tem para cada quadro): 16,7 ms, 1.000 ÷ 60, o da tela, e não os 11,1 ms do visor; com 0,3 ms e com 3 ms de trabalho do programa por quadro, a sobra tirada do intervalo fica perto de 0 nos dois casos; a folga tirada do custo dá 16,4 ms e 13,7 ms; imagem perdida: a tela repete a anterior, e o intervalo (o tempo real entre duas imagens) vai a 33,3 ms; acusada quando o pior intervalo (o mais longo dos últimos 120 quadros) passa de 1,5 vez o teto, 25,05 ms; 16,8 ms é o tremor da medida; vale a medida de 120 quadros: os primeiros fazem trabalho que só se faz uma vez. Legenda: a folga é o teto menos o custo médio (o tempo do trabalho do próprio programa); o intervalo diz se uma imagem se perdeu. 13, o que a tela não dá: limite: o que o regime não oferece, em quatro partes; nome; o que falta; por que falta; o que impede de demonstrar; o que cada limite impede de demonstrar: a profundidade inferida (julgar, sem girar a câmera, qual de duas peças próximas está mais perto); sem escala corporal (que o tampo tem a altura certa para trabalhar de pé); sem alcance de braço (que uma peça está longe demais para ser apanhada sem dar um passo); escala corporal: saber, sem régua, que um tampo está na altura da cintura; inferida: calculada das pistas da própria imagem, sem a diferença entre as imagens dos dois olhos; 1838, Charles Wheatstone: dois espelhos, uma figura para cada olho, e quem olhava via um sólido. Legenda: nenhum é defeito de implementação: os três vêm de a cena aparecer numa tela plana, a uma distância que não é a do corpo de quem usa. 14, cada limite aferido: aferição: o confronto do limite com o programa em execução; no computador de mesa, sem visor: a profundidade inferida sai confirmada (uma imagem por quadro, para a tela); sem escala corporal, confirmado (sem chão, e nenhum visor apresentando a imagem); sem alcance de braço, inconclusivo (nada no programa mede o braço); sem chão: o espaço de referência da janela (o sistema de coordenadas das posições, com a regra que fixa a origem) acompanha o olhar; com um visor apresentando a imagem, as duas primeiras saem contrariadas. Legenda: inconclusivo não é falha: diz que a linha depende de uma pessoa; e cinco de cinco cobertas não confirmam o alcance de braço. 15, o piso para onde a queda leva: sobrevive na janela: ver cada peça inteira, de qualquer ângulo, chegar à menor e voltar à cena inteira; sem versão em janela, nem reduzida: a escala corporal e o alcance de braço; pronta para ser destino da queda, se as duas respostas forem “sim”: (1) quem nunca viu o projeto chega a cada peça do domínio, sem ajuda? (2) a página diz o que a janela não oferece, com a aferição ao lado? a seguir, “A camada de interação: ponteiro e seleção”, que entra sobre esta cena percorrida pela tela. Legenda: se uma das respostas for “não”, falta trabalho na janela, e nenhum regime construído em cima dela compensa a falta.
Figura 7: O módulo do começo ao fim, em quinze figuras: a mesa vista por uma tela; a escada parada; os três números a partir do alvo; as quatro travas; o arrasto que gira; a distância multiplicada; o dono único da câmera; a esfera em volta da cena; a caixa do que aparece; cinco de cinco, pela fração; a página para quem não estava na sala; a folga que sai do custo; o que a tela não dá; cada limite aferido; e o piso para onde a queda leva.

Mapa mental

Os tópicos do módulo, do centro para fora, na ordem em que ele os apresenta.

Mapa mental com o título no centro e doze ramos, em sentido horário a partir do ramo de cima, à direita. A cena vista por uma tela: um endereço, no computador ou no celular; três frases que ensinam os gestos, e botões com nomes; nenhum visor, nenhum programa instalado; a janela parece o regime menos importante. A janela embaixo de tudo: três visores, quarenta pessoas; a queda entre regimes termina na janela; quem assiste vê a tela; a construção corre ao contrário da dependência; a escada rolante parada ainda é escada. A câmera presa a um ponto: o alvo e três números; a conta devolve a câmera ao lugar; os números de partida, medidos onde a câmera está; quatro travas, quatro defeitos evitados. Gestos que só mudam números: mouse, dedo e caneta num tratamento só; arrastar: 0,35 grau por pixel; a roda multiplica ou divide a distância por 1,12; a pinça pela razão entre as distâncias dos dedos. Quem escreve a câmera: escrita quando alguém mexe; a contagem de escritas como prova; o botão que escrevia direto; botões de enquadramento pedem à órbita. Enquadrar pela esfera: a esfera envolvente dá o alvo; distância pedida, com a margem; distância concedida, entre as travas; a esfera, e não a caixa; a caixa do que aparece. Quanto da tela cada peça ocupa: a fração da altura decide; a mesma conta que move a câmera; cinco de cinco peças cobertas; cobertura não é alcance de braço. Uma página que outra pessoa abre: o endereço na mesma rede; a explicação de uso antes da cena; a explicação guardada junto dos gestos. A folga sai do custo: custo, intervalo e teto; a sobra tirada do intervalo dá perto de zero; imagem perdida acima de 1,5 vez o teto; a medida tirada cedo demais. O que a tela não dá: um limite em quatro partes; a profundidade que se calcula; o corpo de quem usa, que a tela não conhece; nenhum é defeito de implementação. Cada limite aferido: três resultados; confirmado, confirmado, inconclusivo; o inconclusivo não é falha; com visor, profundidade e escala corporal saem contrariadas. O piso para onde a queda leva: o que sobrevive na janela; o que não tem versão em janela; duas perguntas antes de ser destino.
Figura 8: Os tópicos e subtópicos do módulo, do centro para fora, em sentido horário a partir do ramo de cima, à direita.

Painel do conhecimento

Conceitos

  • Caso base: o regime que precisa funcionar sozinho, antes de qualquer outro, e para onde os outros caem quando falta o aparelho, a permissão da câmera do celular ou a sessão imersiva (a ligação por onde o programa entrega cada quadro ao visor, o aparelho preso à cabeça que cobre os olhos); os outros regimes acrescentam a ele, e ele não depende de nenhum. Neste percurso, o regime em janela.
  • Câmera em órbita: a câmera que gira em volta do alvo, sempre olhando para ele, com a posição guardada em três números medidos a partir dele, o azimute, a elevação e a distância; com a órbita instalada, só ela escreve a câmera. As travas, o menor e o maior valor aceitos para a elevação e para a distância, existem cada uma por um defeito que ela evita, e os valores de 0,35 m e de 8 m são escolha do projeto.
  • Enquadramento pela esfera envolvente: levar a câmera ao ponto em que o objeto aparece inteiro na tela. A esfera envolvente tem centro no centro da caixa do que aparece e raio de metade da diagonal dela; o centro vira o alvo, a distância pedida sai da conta com a margem (1,25, para a cena não grudar nas bordas), e a concedida é a pedida presa entre as travas. A esfera, e não a caixa, porque ocupa a mesma altura na tela vista de qualquer direção; e a caixa que entra na conta é a do que aparece na tela, sem o escondido.
  • Peça coberta pela órbita: a peça do domínio que a órbita consegue enquadrar: a peça existe na cena, e a fração da altura (quanto da altura da tela o diâmetro da esfera ocupa), na distância concedida, é no máximo 1. A cobertura é da câmera e da tela, e não do corpo de quem usa.
  • Folga: o teto (o tempo que o programa tem para cada quadro) menos o custo médio (o tempo que o trabalho do próprio programa leva por quadro), só em milissegundos; sai do custo, e não do intervalo entre imagens, que responde a outra pergunta: se alguma imagem foi perdida.
  • Limite de um regime: uma coisa que o regime não oferece, em quatro partes: nome, o que falta, a razão técnica de faltar e o que a falta impede de demonstrar; a última separa o limite de uma lamentação.
  • Profundidade inferida: a distância calculada a partir de pistas da própria imagem, a perspectiva, a oclusão (o objeto da frente tampando o de trás) e o tamanho relativo. Inferida não é ausente: o que ela não sustenta é julgar, sem girar a câmera, qual de duas peças próximas está mais perto.
  • Escala corporal e alcance de braço: a comparação do tamanho das coisas da cena com o corpo de quem as vê, e a distância até onde a mão chega sem dar um passo; as duas são medidas contra o corpo, e nenhum código dentro do regime em janela as conserta.
  • Aferição de um limite: o confronto do que o limite afirma com o que o programa em execução sabe, em três resultados: confirmado, contrariado e inconclusivo; o terceiro não é falha da aferição.

Exemplos

  • A escada rolante sem energia, que ainda leva ao outro andar, a pé, e o ambiente que sem o visor não leva ninguém a lugar nenhum.
  • Três visores para quarenta pessoas: a janela abre em todos os computadores e celulares da sala ao mesmo tempo, e quem assiste à apresentação vê a tela.
  • A câmera que passa de 90 graus de elevação: a imagem dá meia-volta, e o arrasto passa a girar ao contrário.
  • O botão que escreve a câmera direto: funciona até o primeiro arrasto, e a câmera salta de volta para a mesa.
  • O lote, o conjunto de cópias desenhado numa só chamada de desenho (um só pedido à placa de vídeo), como as 24 peças de reposição de cada nível da prateleira, guarda a forma de uma cópia só: tratado como objeto comum, entra pela caixa dessa cópia, e a prateleira sai enquadrada do tamanho de uma peça de reposição, e não das 24.
  • A peça renomeada na cena e não na lista do domínio: a conferência dá falta dela, e o resultado não diz nada sobre a órbita.
  • A folga tirada do intervalo, que numa tela de sessenta imagens por segundo dá perto de zero, por mais leve que a cena seja.
  • O indicador que desse confirmado para o alcance de braço: a mesma cara dos limites que foram medidos, e nenhum fundamento.
  • A versão em janela apresentada como se fosse o regime imersivo, que nunca foi construído: a página tem de dizer o que a janela não oferece.

Diagrama

%%{init: {"flowchart": {"useMaxWidth": false}, "sequence": {"useMaxWidth": false}, "class": {"useMaxWidth": false}, "state": {"useMaxWidth": false}, "er": {"useMaxWidth": false}}}%%
flowchart LR
    J["Regime em janela<br/>caso base"]
    I["Regime imersivo<br/>acrescenta o visor"]
    A["Realidade aumentada<br/>acrescenta a sala"]
    J -->|construído primeiro| I
    J -->|construído primeiro| A
    I -.->|cai quando falta o visor ou a sessão imersiva| J
    A -.->|cai quando falta a permissão da câmera do celular| J

Figura 9: A construção sai da janela; a queda volta para ela. As setas cheias são a construção, e as tracejadas, a queda; a sessão imersiva é a ligação por onde o programa entrega cada quadro ao visor, e a realidade aumentada mistura a cena com a imagem da sala que a câmera do celular capta.

Evidências

  • Em 1838, Charles Wheatstone levou à Royal Society um aparelho de dois espelhos e pares de figuras quase idênticas, desenhadas à mão porque a fotografia ainda não existia em público; cada espelho levava uma das figuras a um olho só, e quem olhava via um sólido que não estava em nenhuma das duas.
  • O laboratório tem três visores para quarenta pessoas.
  • Contado numa execução do programa: a câmera da abertura dá 1,62 m, 21,8 graus e azimute 0; a página parada escreve a câmera uma vez só; as cinco peças do domínio ficam cobertas, com frações de 37% a 65% da altura; a aferição dá confirmado, confirmado e inconclusivo.
  • Numa execução fora da máquina de referência (o aparelho contra o qual a cena é orçada), o pior intervalo deu 16,8 ms, um décimo acima do teto, sem imagem perdida.
  • Nenhum custo deste módulo vale como número do laboratório: a máquina de referência ainda não foi medida.

Referências

  • WHEATSTONE, Charles. Contributions to the Physiology of Vision. — Part the First. On some remarkable, and hitherto unobserved, Phenomena of Binocular Vision. Philosophical Transactions of the Royal Society of London, v. 128, 1838.
  • Na bibliografia da disciplina, a profundidade vista com os dois olhos e as pistas de profundidade são tratadas em SHERMAN e CRAIG, e em JERALD (The VR book).

Aplicações

  • No projeto, as duas tarefas do módulo: entregar o regime que roda em qualquer máquina, com a câmera em órbita, a cena completa e o custo medido dentro do teto; e registrar o que esse regime não oferece, com o que cada falta impede de demonstrar.
  • Sempre que faltar o visor, a permissão da câmera do celular ou a sessão imersiva, a janela é o destino da queda entre regimes, e ela é também o que vê quem assiste.
  • No módulo seguinte, A camada de interação: ponteiro e seleção, o que entra se apoia na cena percorrida pela tela.
  • Nos módulos do regime imersivo, a lista de limites é o contraste: o regime que conhece o chão e rastreia a mão se compara com ela.

Mapa conceitual

DicaAntes de olhar

Escreva num papel: queda entre regimes, caso base, regime em janela, limite de um regime, gestos, botão de enquadramento, alcance de braço, aferição, travas, câmera em órbita, peça coberta pela órbita, folha do programa, alvo, esfera envolvente, fração da altura, conferência da entrega, caixa do que aparece, distância pedida, distância concedida, folga. Ligue os conceitos com setas, e escreva em cada seta um verbo que diga qual é a relação. Depois compare com o mapa.

Mapa conceitual. A queda entre regimes leva, quando falta o aparelho, ao caso base. O regime em janela é, neste percurso, o caso base. O limite de um regime descreve o que falta ao regime em janela. O regime em janela cobre todas as peças e não tem alcance de braço. O limite de um regime é confrontado com o programa rodando, e isso é a aferição. A aferição dá inconclusivo para o alcance de braço. A folha do programa escreve, abaixo da cena, a aferição. A peça coberta pela órbita não confirma, nem cinco de cinco, o alcance de braço. Os gestos mudam os ângulos ou a distância da câmera em órbita. O botão de enquadramento pede um alvo e uma distância à câmera em órbita. As travas seguram a elevação e a distância da câmera em órbita. A câmera em órbita gira sempre olhando para o alvo. A esfera envolvente dá, pelo centro, o alvo. A caixa do que aparece dá o centro e, pela diagonal, o raio da esfera envolvente. A esfera envolvente dá, pelo raio e com a margem, a distância pedida. A distância pedida, presa entre as travas, vira a distância concedida. A distância concedida é a distância em que se mede a fração da altura. A fração da altura até 1 define a peça coberta pela órbita. A conferência da entrega conta, nas cinco peças do domínio, cada peça coberta pela órbita. A conferência da entrega usa a mesma conta que move a câmera em órbita. A folha do programa escreve, ao abrir, o resultado da conferência da entrega. A folha do programa escreve, tirada do custo, a folga.
Figura 10: Os conceitos do módulo ligados por frases de ligação. Cada seta, lida da origem até a ponta, é uma afirmação do módulo.

Folha de consulta

A órbita

  • alvo: o ponto para onde a câmera olha; azimute \alpha: o giro em volta dele visto de cima; elevação \varepsilon: o ângulo com que a câmera sobe acima da altura dele; distância d até ele
  • com o alvo em (x_a, y_a, z_a): x = x_a + d\cos\varepsilon\,\operatorname{sen}\alpha; y = y_a + d\operatorname{sen}\varepsilon; z = z_a + d\cos\varepsilon\,\cos\alpha
  • abertura: câmera em (0;\ 1{,}55;\ 1{,}50), alvo em (0;\ 0{,}95;\ 0): 1,62 m, 21,8 graus, azimute 0
  • travas (o menor e o maior valor aceito): elevação de 0 a 85 graus; distância de 0,35 m a 8 m

Gestos

  • arrastar: 0,35 grau por pixel; mão para a direita, o azimute diminui; para baixo, a elevação sobe
  • roda: para baixo, distância × 1,12; para cima, ÷ 1,12; rolagem de lado: nada muda
  • pinça (afastar ou aproximar dois dedos na tela): distância × (entre os dedos antes ÷ agora), o antes medido no pouso do segundo dedo

Enquadrar

  • esfera envolvente: centro no centro da caixa do que aparece, e esse centro vira o alvo; raio \rho, metade da diagonal
  • d_{\text{pedida}} = \rho / \operatorname{sen}(\theta/2) \times m; \theta, o campo de visão (o ângulo que a tela mostra de cima a baixo), 55 graus; m, a margem, 1,25
  • distância concedida: a pedida presa entre 0,35 m e 8 m
  • o escondido não entra na caixa; o lote (o conjunto de cópias desenhado numa só chamada de desenho) entra pela caixa de todas as cópias; caixa vazia: a câmera não se move

Cobertura

  • fração da altura = \tan(\operatorname{arcsen}(\rho/d)) / \tan(\theta/2), com d a distância concedida
  • peça coberta: existe na cena, com fração no máximo 1
Peça Distância pedida Fração a 0,35 m
corpo 0,24 m 51%
eixo 0,30 m 65%
engrenagem grande 0,30 m 64%
engrenagem pequena 0,18 m 37%
tampa do mecanismo 0,25 m 52%
  • cobertura do domínio: 5 de 5, pela conta que move a câmera

Folga e imagem perdida

  • teto da página: 1.000 / 60 \approx 16{,}7 ms, e não os 11,1 ms do visor (o aparelho preso à cabeça que cobre os olhos)
  • folga = teto − custo médio (o tempo do trabalho do próprio programa): 0,3 ms de custo dão 16,4 ms; 3 ms dão 13,7 ms
  • imagem perdida: intervalo (o tempo real entre duas imagens) de 2 \times 1.000/60 \approx 33{,}3 ms; acusada acima de 1{,}5 \times 16{,}7 = 25{,}05 ms, no pior intervalo (o mais longo dos últimos 120 quadros)
  • vale a medida de 120 quadros; a tirada ao abrir carrega trabalho que só se faz uma vez

Limites e aferição

  • quatro partes: nome; o que falta; por que falta; o que a falta impede de demonstrar
  • impede de demonstrar: qual de duas peças próximas está mais perto, sem girar a câmera (profundidade inferida); que o tampo tem a altura certa para trabalhar de pé (sem escala corporal: a cena comparada ao corpo de quem usa); que uma peça está longe demais para ser apanhada sem dar um passo (sem alcance de braço)
  • computador de mesa, sem visor: confirmado, confirmado e inconclusivo

Erros previsíveis

  • “a janela é um degrau provisório”: é o caso base e o destino da queda entre regimes
  • “a janela não tem profundidade”: tem, inferida das pistas da própria imagem; falta-lhe a diferença entre as imagens dos dois olhos
  • “no visor, a diferença entre as imagens dos dois olhos dá a distância exata”: ela é uma pista que uma imagem sozinha não tem, e só isso se afirma dela
  • “a escala corporal virá numa versão futura da janela”: a janela não sabe a altura dos olhos de ninguém; a escala chega com o regime que conhece o chão
  • “os três limites são defeitos da implementação”: vêm de a cena aparecer numa tela plana, a uma distância que não é a do corpo de quem usa
  • “a órbita atualiza a câmera a cada quadro”: com a órbita instalada, só ela escreve a câmera, e só quando um gesto chega ou um botão pede
  • “1,12 para afastar e 0,88 para aproximar é simétrico”: 1{,}12 \times 0{,}88 = 0{,}9856, e cada ida e volta perde 1,44% da distância
  • “a elevação pode ir até 90 graus”: a 90, olhar para o alvo não diz qual lado fica em cima; passando, a imagem vira e o arrasto inverte
  • “toda peça enquadrada ocupa 76% da altura da tela”: 76% é a esfera na distância pedida; na trava mínima, as cinco ocupam de 37% a 65%
  • “a peça está coberta quando a distância pedida fica abaixo da máxima”: só a fração decide; uma esfera de 3,3 m de raio pede 8,93 m, acima da máxima, e a 8 m ocupa 87%: coberta
  • “a caixa pronta da biblioteca de desenho serve para enquadrar”: soma o volume de contato escondido, maior que a peça
  • “a janela tem alcance de braço, porque a órbita cobre todas as peças”: cobrir todas com o mesmo gesto, a qualquer distância, é a razão de não haver alcance de braço
  • “inconclusivo é uma falha da aferição”: confirmar o que nada no programa mede daria a mesma cara dos limites medidos, sem fundamento
  • “confirmado prova que o limite vale em qualquer aparelho”: com um visor apresentando a imagem, profundidade e escala corporal saem contrariadas
  • “a folga é o teto menos o intervalo”: o intervalo segue o ritmo da tela: a folga tirada dele dá perto de zero em qualquer cena
  • “pior intervalo acima do teto é imagem perdida”: 16,8 ms ficou um décimo acima, sem perda; acusa-se acima de 1,5 vez o teto
  • “imagem perdida com o custo médio dentro do teto veio de fora do código”: a média dilui um quadro lento do código; a folha do programa diz onde procurar, não quem atrasou