3. Gráficos de Jogos: Mudança de Base

Em um jogo 3D, a câmera está inclinada e define um novo sistema de coordenadas. Um vetor de movimento v está representado na base da câmera como vB=(1,2,-1). A matriz de mudança de base para o sistema global é:
P=[lll 1 & 0 & 1 0 & 1 & 0 0 & 0 & 1 ]
Questão: Calcule o vetor v no sistema global e explique como isso afeta o deslocamento do jogador no mundo do jogo.

Passo 1

O enunciado nos dá um vetor de movimento na base da câmera, vec vB=(1,2,-1), e pede para encontrar o mesmo vetor no sistema de coordenadas global. Como a base da câmera está inclinada em relação ao sistema global, usamos a matriz de mudança de base P para transformar coordenadas de “camera” para “mundo”. A fórmula é
vec v = P,vec vB

Passo 2

Vamos multiplicar a matriz
P = 1 & 0 & 1 0 & 1 & 0 0 & 0 & 1
pelo vetor vec vB=(1,2,-1). Em forma de produto
vec v = 1 & 0 & 1 0 & 1 & 0 0 & 0 & 1 12-1 = 1cdot 1 + 0cdot 2 + 1cdot(-1)[0.3em] 0cdot 1 + 1cdot 2 + 0cdot(-1)[0.3em] 0cdot 1 + 0cdot 2 + 1cdot(-1) = 02-1 ]

Passo 3

O resultado vec v=(0,2,-1) indica quantas unidades o jogador se move ao longo de cada eixo global:
0 no eixo x global, ou seja, nenhum desvio lateral no mundo;
2 no eixo y global, ou seja, uma elevação de 2 unidades;
-1 no eixo z global, ou seja, um recuo de 1 unidade na profundidade.

Passo 4

Em termos de jogabilidade, isso significa que um comando de movimento para frente/para a direita na câmera (vetor (1,2,-1) na base inclinada) vai resultar, no mundo, em subir 2 unidades e recuar 1 unidade, sem deslocamento lateral global. A inclinação da câmera faz com que componentes de “frente” e “direita” da câmera se decomponham nesses deslocamentos globais.

Resposta

vec v = (0,2,-1).

Exercícios relacionados