Transformações geométricas 2D e 3D
Translação, escala e rotação em coordenadas homogéneas, composição e câmara.
Mover um objeto na cena é multiplicar os seus vértices por uma matriz. Rodar a câmara é multiplicar por outra. As transformações geométricas são o vocabulário com que se diz onde está cada coisa e para onde olha a câmara. Se dominares a composição de matrizes, metade dos exercícios da cadeira passam a ser multiplicações que já sabes fazer.
Coordenadas homogéneas
A translação não é linear: somar a um ponto não se escreve como produto por uma matriz . A solução é acrescentar uma coordenada e trabalhar em coordenadas homogéneas: o ponto 2D passa a e o ponto 3D passa a . Com esta coordenada extra, translação, escala e rotação escrevem-se todas como produtos por matrizes, e compor transformações é multiplicar matrizes. No fim divide-se pela última coordenada para voltar ao espaço original. Revê o produto de matrizes se a multiplicação já não sair automática, porque a ordem vai importar.
As três transformações básicas em 2D, aplicadas a vetores coluna, são:
Em 3D as matrizes são com a mesma estrutura: a translação ocupa a última coluna, a escala a diagonal e a rotação um bloco . Rotações em 3D fazem-se eixo a eixo, e cada eixo tem a sua matriz.
A ordem muda o resultado
Com vetores coluna, a matriz da direita aplica-se primeiro: em , o ponto sofre primeiro a escala , depois a rotação e por fim a translação . Trocar a ordem dá outro movimento. Esta é a armadilha clássica: “rodar e depois mover” não é “mover e depois rodar”.
Toma o ponto , a escala uniforme de fator 2, a rotação de sobre e a translação de :
Com , o ponto escala primeiro para , roda para e translada para . Podes confirmar multiplicando a matriz composta:
Com a ordem trocada, , o ponto translada primeiro para , roda para e escala para . Mesmo ingredientes, destino diferente. Quando o enunciado disser “roda o objeto sobre si próprio e depois coloca-o na posição”, a rotação fica à direita e a translação à esquerda.
Instancing e câmara
A composição também serve para reutilizar geometria: defines um modelo uma vez e desenhas várias cópias com matrizes de modelação diferentes. A isto chama-se instancing, e é como se enche uma cena de árvores ou cadeiras sem duplicar vértices.
A transformação de vista é a mesma ideia ao contrário: em vez de mover a câmara pelo mundo, move-se o mundo para a frente da câmara com a matriz inversa do seu posicionamento. Uma câmara na posição a olhar para o ponto constrói-se com uma base ortonormal (direita, cima, frente) que roda o mundo, seguida da translação por . Rotações, projeções e composição enquanto aplicações lineares estão explicadas nas aplicações lineares.