Como fazer com que pareçam reais

Não importa o quão grande ou rico seja o mundo virtual tridimensional, o computador pode descrevê-lo simplesmente colocando pixels na tela bidimensional. Esta seção mostrará como aquilo que você vê na tela é feito para parecer real e, especialmente, como as cenas são feitas para que isso também ocorra. Primeiro, veremos como um único objeto estacionário é feito para parecer real. Após isso, desvendaremos a cena inteira. Por fim, veremos o que um computador deve fazer para mostrar cenas de imagens realísticas que se movem.

Para fazer um objeto parecer real, é necessário observar algumas características de imagens. Entre as mais importantes estão: formas, texturas da superfície, iluminação, perspectiva, profundidade do campo.

Formas
Quando olhamos pela janela, vemos todos os tipos de formas, com linhas e curvas de muitos tamanhos e combinações. Da mesma forma, quando olhamos para uma imagem gráfica tridimensional no monitor, vemos imagens feitas de uma variedade de formas, embora muitas delas sejam feitas de linhas retas. Vemos quadrados, retângulos, paralelogramos, círculos e rombóides; mas a maioria são triângulos. No entanto, para construir imagens que aparentem ter as curvas suaves freqüentemente encontradas em objetos reais, algumas das formas devem ser bem pequenas. Uma imagem complexa como, por exemplo, o corpo humano, requer muitas dessas formas reunidas em uma estrutura denominada estrutura de traços. Neste ponto, a estrutura pode ser reconhecida como o símbolo daquilo em que se transformará, mas a próxima etapa é importante. Deve ser aplicada uma superfície a essa estrutura.


Esta ilustração mostra a estrutura de uma mão constituída por  poucos polígonos - 862 no total

O contorno da estrutura pode ser feito para parecer mais natural e arredondado, porém muito mais polígonos serão necessários -  3.444

Texturas da superfície
Quando encontramos uma superfície no mundo real, podemos obter informações sobre ela de duas maneiras. Podemos olhar para ela, às vezes por vários ângulos, e tocá-las para verificar se é rígida ou macia. Em uma imagem gráfica tridimensional, no entanto, podemos apenas olhar para a superfície para obter todas as informações possíveis. Todas essas informações desmembram-se em três áreas:

  • cor: de que cor ela é? Ela possui uma única cor?
  • textura: parece macia ou possui linhas, saliências, crateras ou alguma outra irregularidade na superfície?
  • reflexo: quanta luz ela reflete? Os reflexos de outros itens na superfície são nítidos ou embaçados?
Uma maneira de tornar uma imagem "real" é ter uma grande variedade desses três fatores nas diversas partes da imagem. Olhe a sua volta: seu teclado possui cor/textura/reflexo diferentes do desktop, o qual possui cor/textura/reflexo diferentes do seu braço. Para a obtenção de uma cor realística, é importante que o computador seja capaz de escolher dentre milhões de cores diferentes para que os pixels constituam uma imagem. A variedade na textura vem dos modelos matemáticos e das superfícies, variando da pele de um sapo à gelatina e dos "mapas de textura" armazenados, que são aplicados às superfícies. Associamos também qualidades que não podemos ver (macio, rígido, quente, frio) a combinações de cor, textura e reflexo específicos. Se um deles estiver incorreto, a ilusão de realidade é destruída.


A inclusão de uma superfície à estrutura começa a alterar a imagem de algo claramente matemático para uma imagem que poderíamos reconhecer como sendo uma mão

Iluminação
Quando você entra em uma sala, acende a luz. Provavelmente você não perde muito tempo pensando no modo como a luz sai do bulbo ou do tubo e se espalha por toda a sala. Mas as pessoas que constroem gráficos tridimensionais precisam pensar nisso, pois todas as superfícies que rodeiam as estruturas devem ser iluminadas a partir de algum lugar. Uma técnica chamada traçado do raio, traça o caminho que os raios de luz imaginários fazem quando saem do bulbo, saltam dos espelhos, paredes e outras superfícies refletoras e, finalmente, alcançam os itens em intensidades diferentes a partir de ângulos variados. É complicado quando se pensa nos raios a partir de um único bulbo, mas a maioria dos cômodos tem várias fontes de luz (várias lâmpadas, acessórios do teto, janelas, etc).

A iluminação desempenha um papel fundamental em dois efeitos que dão a aparência de peso e solidez aos objetos: sombreamento e sombras. A primeira ocorre quando a luz que ilumina um objeto é mais forte em um lado do que no outro. Esse sombreamento é o que faz uma bola parecer redonda e as dobras de um cobertor parecerem profundas e macias. Essas diferenças na intensidade da iluminação trabalham com a forma para reforçar a ilusão de que o objeto possui profundidade, bem como altura e largura. A ilusão de peso vem do segundo efeito, as sombras.


Iluminar uma imagem não apenas confere profundidade a ela através do sombreamento, mas também "liga" os objetos ao chão por meio de sombras

Os corpos sólidos produzem sombras quando a luz bate sobre eles. Isso pode ser visualizado ao observar a sombra que uma árvore cria sobre a calçada. Por estarmos habituados a ver objetos e pessoas reais produzirem sombras, vê-las em uma imagem tridimensional reforça a ilusão de que estamos olhando o mundo real por meio de uma janela, em vez de uma tela com formas matematicamente geradas.

Perspectiva
A perspectiva é uma daquelas palavras que parece ser técnica, mas que na verdade descreve um simples efeito que todos já viram. Se você permanecer ao lado de uma estrada longa e reta e olhar para o infinito, parecerá que os dois lados da estrada se juntam em um ponto no horizonte. Da mesma forma, se existirem árvores próximas à estrada, as mais distantes parecerão menores do que as mais próximas. De fato, você terá a impressão de que as árvores estão convergindo no ponto formado pelo lado da estrada. Quando todos os objetos em uma cena parecem se unir em um único ponto, isso é perspectiva. Existem variações, mas a maioria dos gráficos tridimensionais utiliza a "perspectiva de ponto único" já descrito.

Na ilustração, as mãos estão separadas, mas a maioria das cenas apresenta alguns itens a sua frente e bloqueia parcialmente a visão de outros itens. Para essas cenas, o software não apenas deve calcular os tamanhos relativos dos itens mas também saber quais itens estão na frente e quanto dos outros devem ser ocultados. A técnica mais comum para se calcular esses fatores é a Z-Buffer. Ela tem esse nome devido à etiqueta comum do eixo ou linha imaginária, que vai da tela, passa pela cena e vai para o horizonte. Existem outros dois eixos comuns a serem considerados: o eixo-x, que mede a cena de lado a lado, e o eixo-y, que mede a cena do topo à base.

A Z-buffer atribui a cada polígono um número, baseado na proximidade do objeto que contém o polígono com a parte frontal da cena. Geralmente, os números mais baixos são atribuídos aos itens mais próximos à tela e, os mais elevados, aos mais próximos do horizonte. Por exemplo, uma buffer de 16 bits atribuiria o número -32.768 a um objeto devolvido o mais próximo possível da tela e 32.767 a um objeto que está o mais longe possível.

No mundo real, nossos olhos não conseguem ver objetos que se encontram atrás de outros, portanto, não temos problema em imaginar o que deveríamos estar vendo. O computador, por outro lado, encara o problema diversas vezes e o resolve de maneira objetiva. Conforme cada objeto é criado, seu valor-Z é comparado ao de outros objetos que ocupam os mesmos valores -x e -y. O objeto com o valor Z mais baixo é totalmente devolvido, enquanto que objetos com valores Z mais altos não são devolvidos no lugar em que se cruzam. O resultado assegura que não veremos itens ao fundo aparecendo no meio dos caracteres do primeiro plano. Se a Z-buffer for empregada antes que os objetos sejam totalmente devolvidos, as partes da cena que estão escondidas atrás dos caracteres ou objetos não precisam ser devolvidas. Isso acelera o desempenho dos gráficos.

Profundidade do campo
Outro efeito óptico utilizado com êxito para criar imagens tridimensionais é a profundidade do campo. Utilizando nosso exemplo das árvores ao lado da estrada, conforme a linha de árvores diminui, ocorre uma outra coisa interessante. Se você observar as árvores próximas a você, as mais distantes parecerão estar fora de foco. Isso é realmente verdade quando você olha uma fotografia ou um filme das árvores. Os diretores de cinema e os animadores utilizam esse efeito de profundidade do campo por dois motivos: o primeiro é reforçar a ilusão de profundidade na cena que se está assistindo. O computador certamente pode se certificar de que todos os itens em uma cena, não importando se está próximo ou longe de onde deveria estar, estão perfeitamente em foco. Já que estamos acostumados a ver a profundidade do efeito campo, no entanto, ter itens em foco independentemente da distância pareceria estranho e perturbaria a ilusão de assistir a uma cena no mundo real.

O segundo motivo pelo qual os diretores utilizam a profundidade do campo é para prender sua atenção nos itens ou atores que eles acreditam serem os principais. Para dirigir sua atenção para a heroína do filme, por exemplo, o diretor utiliza uma "profundidade de campo rasa", em que somente os atores estão em evidência. Uma cena projetada para impressioná-lo com a grandiosidade da natureza, por outro lado, pode utilizar uma "profundidade de campo intensa" para chamar sua atenção.

Anti-atalhos
Uma técnica que também engana os olhos é o anti-atalho. Os sistemas de gráficos digitais são muito bons em criar linhas que vão para baixo e para cima da tela, ou que vão para frente. Mas quando as curvas ou as linhas diagonais são mostradas (e elas aparecem com muita freqüência no mundo real), o computador pode produzir linhas que lembram degraus de uma escada em vez de fluxos suaves. Para enganar seus olhos e fazê-los ver uma curva ou linha suave, o computador pode incluir sombras graduais da cor na linha para os pixels que a envolvem. Esses pixels farão com que seus olhos pensem que os degraus desapareceram. Esse processo de inclusão de pixel adicional para enganar os olhos é chamado de anti-atalho e é uma das técnicas que separa os gráficos tridimensionais gerados pelo computador dos gerados a mão. Acompanhar as linhas conforme elas se movem por meio dos campos de cor e adicionar a quantidade certa de cor "antientalhe" é outra tarefa complexa que o computador deve executar conforme cria animações tridimensionais no seu monitor.


Os "degraus" entalhados que ocorrem quando as imagens são pintadas a partir de pixels em linhas retas marcam um objeto como sendo claramente gerado por computador

Aplicar pixels cinzentos em volta das linhas da imagem ("embaçar" as linhas) minimiza os degraus e faz com que um objeto pareça mais realístico