Um objeto câmera especifica as seguintes propriedades de uma câmera:
especificada por ou uma transformação camera para o objeto mundo ou uma transformação de objeto mundo para a câmera; essa transformação não inclui a projeção, de forma que essa transformação é tipicamente apenas uma composição de translação e rotação. Especificado como um objeto transform, tipicamente uma matriz 4x4.
Ao invés de sugerir uma distância típica da câmera ao objeto de interesse; usada para o posicionamento padrão da câmera (a câmera é colocada em (X,Y,Z) = (0,0,focus) quando resetada) e para ajustar o campo de visão quando alternando entre os modos de visualização ortográfico e perspectivo.
A verdadeira razão de aspecto no sentido <Xsize>/<Ysize>. Essa razão de aspecto normalmente pode concordar com a razão de aspecto da janela de camera. Geomview normalmente ajusta a razão de aspecto de suas câmeras para coincidir com suas janelas associadas.
Note que ambas as distâncias devem ser estritamente maiores que zero. Razões de distância <distante>/<próximo> muito grandes fazem com que a área de armazenamento temporário do eixo Z comporte-se de forma péssima; parte de um objeto pode ser visível mesmo se estiver em algum lugar mais distante que outro.
Especificado em uma das duas formas a seguir.
é o campo de visão – em graus se perpectivo, ou distância linear se ortográfico – na menor direção.
é metade do campo projetado no eixo Y, em coordenadas do objeto mundo (não angulo!), em unidades de distância a partir da câmera. Para uma câmera em perpectiva, halfyfield é relacionado ao campo angular:
enquanto para uma câmera em visão ortográfica temos simplesmente:
Essa definição singular de visualização é (a) maneira fácil de fazer cálculos que a envolvam e (b) é bem definida em ambas as formas de visualização ortográfica e perspectiva.
Argumentavelmente (de forma discutível) não é uma propriedade de uma câmera, mas da cena (do cenário). Todavia, como não existe o objeto "cordefundo" no OOGL, e a cor de fundo pode não ser uma propriedade do equipamento de desenho, essa propriedade pode ser especificada aqui. No momento em que esse manual está sendo escrito, todavia, a interface gráfica de usuário (GUI) sempre sobrescreve a cor de fundo com suas próprias escolhas.
Pelas mesmas razões mostradas acima,somente a referida GUI não sobrescreve essa
opção. A imagem é centralizada em "Normalized-Device-Coordinates"/NDC (0,0,-1); a imagem
não é redimensonada, apenas dese-nhada por trás de tudo mais como é. Veja Objetos de imagem.
A sintaxe para uma câmera é:
<nomecamera> ::=
[ "camera" ] (palavra chave opcional)
[ "{" ] (abertura de chave, geralmente requerida)
[ "define" <nome> ]
"<" <nomearquivo>
|
":" <nome>
|
(ou qualquer número dos seguintes,
em qualquer ordem...)
"perspective" {"0" | "1"} (padrão 1)
(de outra forma "ortographic")
"stereo" {"0" | "1"} (padrão 0)
(de outra forma mono)
"worldtocam" <transformação> (veja a sintaxe de transfor-
mação acima)
"camtoworld" <transformação>
(nenhum ponto na especificação de ambos
camtoworld e worldtocam; se é
restingido para ser o inverso de the other)
"halfyfield" <meio-campo-linear-Y-em-unidade-de-distância>
(o padrão é tan 40/2 graus)
Nota de tradução:40 é o valor padrão
do campo de visão (fov).
"fov" (campo de visão angular se "perspective",
campo de visão linear em caso contrário.
Medido em qualquer direção é menor,
dando a razão aspecto. Quando a razão de
aspecto muda -- e.g. quando uma janela é
reajustada -- "fov" é preservado.)
"frameaspect" <razão-de-aspecto> (X/Y) (padrão 1.333)
"near" <distância-de-corte-próxima> (padrão 0.1)
"far" <distância-de-corte-afastada> (padrão 10.0)
"focus" <distância-focal> (padrão 3.0)
"bgcolor" <cor RGB(A) em ponto flutuanter>
(padrão 1/3 1/3 1/3 1)
"bgimage" { <especificação de imagem> }
(padrão nenhuma imagem de fundo)
[ "}" ] (correspondente fechamento de chave)