Treinamento em tecnologia de ray-casting. Parte 2

Saudações, leitor. Esta é a segunda parte da série de tradução "Tutorial de Ray-Casting para desenvolvimento de jogos e outros fins". A segunda parte é precedida da primeira, que também pode ser visualizada .

Vamos começar! Vamos continuar!

Limitações de ray-casting

A tecnologia de fundição de raios é rápida porque usa algumas restrições geométricas. Na maioria dos casos, as paredes são sempre perpendiculares ao chão (observe que isso não se aplica aos cantos entre as próprias paredes).

A partir daqui, temos outra limitação: o ponto de vista não pode girar ao longo do eixo Z. Por quê? Imagine o oposto: a rotação é permitida. Neste caso, as paredes podem inclinar-se e, consequentemente, perde-se a vantagem de desenhar secções verticais dessas mesmas paredes. A limitação de rotação é uma das razões pelas quais a projeção de raios não pode ser considerada 3D completo.

A tecnologia de ray-casting permite que o jogador se mova para frente / para trás e vire à direita / esquerda, mas não gire em torno do eixo Z (este tipo de rotação é chamado de roll (se o eixo Y for vertical, então a rotação ao longo dele é inclinação, e ao longo do eixo X é guinada, - aprox. . por.)).

Etapa 1: criando o ambiente

A fim de renderizar o trabalho de lançamento de raio, criaremos uma cena de labirinto com base nas seguintes restrições geométricas:

  •   

64x64x64 ( , , 2. , ). , , , ,  .

, ( - ), - . .

. , .  -  .

2.

,    , . :

  • , (FOV - Field Of View),

, . FOV, , . FOV 90° . , . 60°, ( - FOV). , 32 . , , . ( -, : 2.4  / 1.7 = 1.41 - . .).

,  -  , . , , FOV - . .

, X-, Y- . 3 POV (point of view) .

, - (1, 2), 45 , FOV , . ( 64x64 ).

POV, . - FOV - . - . .

, , . 320 200 - , ..  VG .

POV , , .

FOV .

:

, ( ): 320200 (160, 100). " ". - . .

( , , , , ).

FOV 60. 320 , 60° 320 , , 1 60 / 320 . - . .

FOV . , 320 / 2 = 160 : 90°, 60° / 2 = 30° 90° - 30° = 60° .    (277), . - . .

:

  • () = 320200

  • (160, 100)

  • = 277

  • = 60 / 320

(Às vezes, nos referiremos ao ângulo entre raios sucessivos como o ângulo entre colunas adjacentes. Mais tarde, esse ângulo será usado para iterar dentro do loop de uma coluna para a outra. A distância até o plano de projeção será necessária para o dimensionamento.)

Fim da segunda parte




All Articles