Polígonos, sombras e esqueletos

A grande maioria dos objetos 3-D criados para jogos de computador, são feitos de polígonos. Um polígono é uma área definida por linhas. Para haver um polígono, é preciso que existam pelo menos três linhas.


Um polígono triangular simples. Cada ponta do triângulo é um vértice.

As linhas conectam uma série de coordenadas no espaço tridimensional criado pelo computador. O ponto em que as linhas se encontram é conhecido como vértice. Cada vértice tem coordenadas X, Y e Z. Veja: 

  • a coordenada X determina a posição relativa à direita ou à esquerda no espaço virtual
  • a coordenada Y determinada a posição relativa ao topo ou à base no espaço virtual
  • a coordenada Z determina a posição relativa à frente ou ao fundo no espaço virtual
Já que cada polígono tem um conjunto de vértices para definir sua forma, ele precisa de informações que digam com o que se parecer. Há quatro maneiras de fazer isto:
  • sombreamento plano
  • sombreamento Gouraud
  • sombreamento Phong
  • mapeamento de texturas
O sombreamento plano atribui uma única cor ao polígono. É bastante simples e rápido, mas faz o objeto parecer artificial. O sombreamento Gouraud é mais complicado. Cores são atribuídas a cada vértice e misturadas na face do polígono. Já que cada vértice está associado a pelo menos três polígonos distintos, isto faz com que o objeto pareça natural, e não facetado. Veja este exemplo:


O mesmo objeto com aplicações de sombreamento plano e Gouraud

Você percebe que a bola com o sombreamento Gouraud parece muito mais lisa do que a sombreada com o modelo plano. Veja de perto o contorno das duas bolas. É a partir disto que você pode dizer que ambas as bolas têm exatamente o mesmo número de polígonos!

A versão mais complexa de sombreamento, o Phong raramente é usado em jogos. Enquanto o sombreamento Gouraud interpola as cores fazendo a média entre os vértices, o sombreamento Phong faz a média de cada pixel com base nas cores dos pixels adjacentes.

Outra técnica comum para determinar a aparência de um polígono consiste em usar mapeamento de textura. Pense no mapeamento de textura como se fosse o embrulho de um presente. Cada lado da caixa que está sendo embrulhada é um polígono em branco. Você poderia pintar a caixa, mas seria muito difícil fazer corresponder todos os desenhos do papel de embrulho. No entanto, se pegar o papel de embrulho e cobrir bem a caixa, você transforma completamente a caixa com pouco esforço.

O mapeamento de texturas funciona do mesmo jeito. Ele requer o uso de outra imagem. Esta imagem é esticada sobre o objeto como uma pele. A maioria dos consoles de videogame e placas gráficas de computador contém um chip especial e uma memória exclusiva, que armazenam as imagens especiais usadas no mapeamento de texturas, aplicando-as em cada polígono dinâmico. Isto permite que jogos como o Portal Runner tenham ambientes 3-D incrivelmente detalhados, com os quais se pode interagir em tempo real.

Os personagens de um jogo têm esqueletos. Semelhantes a nosso próprio esqueleto, tratam-se de uma série de objetos escondidos que se conectam e se movem um em relação ao outro. Usando uma técnica chamada parenting, um objeto alvo (o filho) é atribuído a outro objeto (o pai). Toda vez que o objeto-pai se move, o objeto-filho seguirá de acordo com os atributos associados a ele. Uma hierarquia completa pode ser criada com objetos que tenham filhos e pais. Eis um exemplo para um personagem humano:


O close mostra o braço do esqueleto. Veja que os objetos-dedo são filhos em relação ao objeto-mão que, por sua vez, é filho em relação ao objeto-braço.

Quando o esqueleto é criado e todos os controles de parenting são instalados, o personagem é animado. Talvez o método de animação de personagens mais popular dependa da cinemática inversa. Esta técnica move o objeto-filho para onde o animador quiser, fazendo com que o objeto-pai e todos os outros objetos anexados o sigam. Outro método popular para jogos é a captura de movimentos, que utiliza um conjunto de sensores em uma pessoa real para transmitir uma série de coordenadas para um sistema de computador. As coordenadas são adicionadas ao esqueleto de um personagem e convertidas em movimentos fluidos e realistas.

A variedade de movimentos de cada personagem é programada no jogo. Eis uma típica seqüência de eventos:

  • você aperta um botão no controlador para fazer o personagem andar para frente;
  • o botão completa um circuito e o controlador envia os dados resultantes para o console;
  • o chip do controlador no console processa os dados e os envia para a lógica de aplicação do jogo;
  • a lógica do jogo determina qual é a ação apropriada no ponto em que o jogo se encontra (mover o personagem para frente);
  • a lógica do jogo analisa todos os fatores envolvidos na realização do movimento (sombras, modelos de colisão e mudança do ângulo de visão);
  • a lógica do jogo envia as novas coordenadas para o esqueleto do personagem e todas as outras alterações para a máquina de renderização;
  • a máquina de renderização converte a cena com novos polígonos para cada objeto afetado, redesenhando a cena cerca de 60 vezes por segundo;
  • você vê o personagem se mover para frente.