Projeto Virtual Worlds

Computação Gráfica 3D em C

Arquivos Mensais: março 2015

Uma coisa óbvia… e “enchendo linguiça”…

Não sei se você reparou, mas não existem “superfícies sólidas” em computação gráfica!

Escrevo isso só para deixar isso claro: Qualquer aparência de “solidez” é ilusória, no processamento de imagens em 3D. Tudo o que você vê são polígonos (triângulos, na maioria das vezes) que estão voltados para o observador. Os outros triângulos, não visíveis, simplesmente não são desenhados. Ainda, às vezes, a aparência de superfícies irregulares é ilusória também! Dê uma olhada no tópico sobre “bump mapping”, por exemplo.

A tarefa de um graphics engine é, portanto, decidir quais triângulos serão desenhados e em que ordem, bem como “recortá-los”, se for necessário, ajustanto também as coordenadas de texturas para que “cantos” invisíveis não sejam processados pela placa de vídeo. A placa-de-vídeo e a biblioteca gráfica (como OpenGL), por sua vez, também suportam “recortes automáticos”, mas é interessante não abusar desse recurso.

Ok, estou “enchendo linguiça” aqui porque já faz um tempo que não ponho minhas mãos no projeto… Em breve, espero, mostrarei como montar uma Binary Spatial Partition Tree, para ordenar polígonos e desenhá-los numa ordem pré-definida, bem como o uso de “portais”… Segurem suas calças porque o assunto é um cadinho espinhoso…. mas, é interessante…

[]s
Fred