Introdução a Câmeras

Câmeras lhe permitem ver o que está acontecendo no mundo 3D. Sem pelo menos uma câmera, nada será mostrado na tela.
Câmeras também controlam vários outros efeitos, inclusive distância de renderização, zoom e névoa
.

 Criando Câmeras 

Para criar uma câmera, simplesmente use o comando CreateCamera:

   
    ;Cria uma nova câmera!
    camera=CreateCamera()


 

 Área Visível 

Uma câmera precisa saber em que parte da tela será mostrada sua imagem. Esta área da tela é conhecida como área visível da câmera. Por padrão, a área visível de uma câmera é a tela inteira.

Para mudar a área visível de uma câmera use o comando CameraViewport:

   
    ;A área visível aqui é 1/4 da tela, no canto superior esquerdo
    CameraViewport camera,0,0,GraphicsWidth()/2,GraphicsHeight()/2


 

 Alcance da câmera 

Essa função determina a que distância da câmera os objetos serão renderizados. Você especifica 2 valores para o alcance da câmera - um valor mínimo e um valor máximo. Toda a renderização é limitada a esse intervalo.

É uma boa idéia tentar manter esse intervalo o menor possível. Isto ajuda a aumentar o desempenho pelo fato de que menos triângulos serão mostrados na tela. Por padrão, o valor mínimo é 1, e o valor máximo é 1000.

Para alterar o alcance da câmera, use o comando CameraRange:

   
    ;Define o valor mínimo como 5 e o máximo como 5000
    CameraRange camera,5,5000


 

 Zoom 

Mudando um zoom de uma câmera permite aproximar ou afastar a imagem, sem tirar a câmera do lugar. O valor padrão de zoom é 1. Valores maiores que 1 fazem um efeito de aproximação, enquanto valores menores fazem o afastamento. O zoom nunca deve ser 0 ou menos!

O comando CameraZoom controla o zoom de uma câmera:

   
    ;Um pouco de aproximação
    CameraZoom camera,1.5


 

 Efeitos de névoa 

Blitz3D permite efeitos névoa independentes para cada câmera. Isto pode ser útil para limitar o que uma certa câmera pode ver. Por exemplo, um jogo de corrida poderia usar uma câmera para seu espelho retrovisor. Porém, você poderia querer limitar o que é visível no espelho retrovisor para manter o jogo rodando mais rápido.

Para definir um efeito de névoa simples para uma câmera, você poderia usar algo assim:

   
     ;Define a cor da névoa
    CameraFogColor camera,0,128,255

    ;Define valores mínimo e máximo para a névoa
    CameraFogRange camera,1,1000

    ;Habilita a névoa
    CameraFogMode camera,1


 

Normalmente, o valor máximo da névoa e o alcance da câmera serão o mesmo. Porém, aumentando o valor mínimo, você pode controlar o quanto densa a névoa parece ser. Valores mínimos baixos resultarão em um efeito de névoa mais densa, uma vez que a névoa começará mais próximo à câmera.

Infelizmente, efeitos de névoa não são bem suportados em todos as placas de vídeo. Apesar de todas as placas suportarem algum tipo de efeito de névoa, a qualidade varia muito. Por isto, é uma idéia boa fazer a névoa ser opcional em seus jogos de Blitz3D.

Copyright 2001 (c) Paul Gerfen - GamecodingUK