Camera vs Viewport


23

Não tenho uma compreensão clara do que é exatamente a diferença entre as coordenadas da câmera e as coordenadas da janela de visualização. Alguém pode esclarecer?

Respostas:


40

Câmera é como uma câmera com a qual o filme do Batman é filmado. Ele existe em um mundo virtual e pode ser movimentado, visando diferentes cenas, alterando a distância focal e outras propriedades da câmera. Você pode ter muitas câmeras e alternar entre elas. Você pode até filmar em várias câmeras ao mesmo tempo.

As coordenadas típicas da câmera são: posição no mundo virtual, direção da face, vetor ascendente, campo de visão etc.

Viewport é uma tela de cinema. É um local onde a imagem gravada pela câmera é mostrada. No mundo dos PCs, é uma área da tela em alguma janela ou imagem em tela cheia. Você pode mostrar feeds de várias câmeras ao mesmo tempo (como nos jogos de corrida de console entre 2-4 jogadores).

As coordenadas típicas da janela de visualização são: posição na tela, altura e largura.


0

As coordenadas da janela de visualização são as coordenadas em que são colocadas na tela. (Por exemplo, dentro de uma janela win32).

As coordenadas da câmera são a posição da câmera DENTRO da janela de exibição, que fica dentro do espaço 2D / 3D que você definiu no aplicativo OpenGL. A câmera não pode sair dessa janela de exibição porque está no espaço que você definiu onde o opengl pode fazer seu trabalho, dentro de uma janela do Win32.


Isso não é totalmente preciso. A viewport define o mapeamento do espaço NDC para o espaço da janela para transformação de vértice. Nas versões mais antigas do GL, esse mapeamento também se aplicava à transformação de posição de varredura (mas que foi removida). No entanto, existem muitas operações contábeis que não são restritas pela transformação de vértice e, portanto, você pode fazer coisas como limpar o buffer de cores fora da janela de exibição. De fato, a única maneira de restringir a limpeza de um buffer para uma região específica do framebuffer é usar uma coisa completamente diferente, chamada caixa de tesoura ( glScissor (...)).
Andon M. Coleman
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.