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.
Para criar uma câmera, simplesmente use o comando CreateCamera:
;Cria uma nova câmera! camera=CreateCamera() |
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 |
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 |
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 |
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.