Câmera 3D em primeira pessoa #4

Closed
opened 2026-10-03 17:25:06 -03:00 by caio · 0 comments
Owner

Objetivo

Sair do 2D: uma câmera em perspectiva controlada pelo teclado e pelo mouse, como num jogo em primeira pessoa.

O que vou aprender

  • Os espaços de coordenadas: modelo, mundo, visão e clip
  • As matrizes de visão e de projeção em perspectiva
  • Uniform buffers e bind groups para mandar dados à GPU a cada quadro
  • Ângulos yaw e pitch para olhar ao redor
  • Delta time, para o movimento não depender do FPS
  • Como travar e esconder o cursor do mouse

Tarefas

  • Adicionar o glam para vetores e matrizes
  • Criar a struct Camera com posição, yaw e pitch
  • Projeção em perspectiva com campo de visão de 70°
  • Uniform buffer com a matriz view_proj
  • WASD para andar, espaço e shift para subir e descer
  • Olhar com o mouse por DeviceEvent::MouseMotion, com o cursor travado
  • Limitar o pitch a ±89° para a câmera não virar de cabeça para baixo
  • Testes unitários para a direção para onde a câmera aponta

Pronto quando

Dá para voar ao redor dos objetos da cena com teclado e mouse.

## Objetivo Sair do 2D: uma câmera em perspectiva controlada pelo teclado e pelo mouse, como num jogo em primeira pessoa. ## O que vou aprender - Os espaços de coordenadas: modelo, mundo, visão e clip - As matrizes de visão e de projeção em perspectiva - Uniform buffers e bind groups para mandar dados à GPU a cada quadro - Ângulos yaw e pitch para olhar ao redor - Delta time, para o movimento não depender do FPS - Como travar e esconder o cursor do mouse ## Tarefas - [x] Adicionar o `glam` para vetores e matrizes - [x] Criar a struct `Camera` com posição, yaw e pitch - [x] Projeção em perspectiva com campo de visão de 70° - [x] Uniform buffer com a matriz `view_proj` - [x] WASD para andar, espaço e shift para subir e descer - [x] Olhar com o mouse por `DeviceEvent::MouseMotion`, com o cursor travado - [x] Limitar o pitch a ±89° para a câmera não virar de cabeça para baixo - [x] Testes unitários para a direção para onde a câmera aponta ## Pronto quando Dá para voar ao redor dos objetos da cena com teclado e mouse.
caio added this to the Fundação milestone 2026-10-03 17:25:06 -03:00
caio closed this issue 2026-10-03 18:40:40 -03:00
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
caio/simple-minecraft-rust#4
No description provided.