Uma malha triangular é um tipo de malha poligonal em computação gráfica. Ela consiste em um conjunto de triângulos (normalmente em três dimensões) que são conectados pelas arestas ou vértices comuns.[1]

Exemplo de uma malha triangular representando um golfinho.

Muitos softwares de computação gráfica e dispositivos de hardware podem operar de forma mais eficiente em triângulos agrupados em malhas do que se o mesmo número de triângulos estivesse desconectado. Isto porque, tipicamente, sistemas de computação gráfica realizam operações sobre os vértices de cada triângulo. Com triângulos individuais, o sistema tem de operar em três vértices de cada triângulo. Em uma grande malha, é comum existirem oito ou mais triângulos conectados a um único vértice - processando este vértice uma só vez, é possível realizar uma fração do trabalho e alcançar um efeito idêntico.

Muitos aplicativos gráficos lidam com malhas de triângulos. Malhas são compostas por vértices, arestas e triângulos. Aplicativos podem exigir conhecimento sobre como esses componentes estão conectados. Essas conexões podem ser gerenciadas independentemente das posições reais dos vértices.

Representação editar

Existem vários métodos para armazenar e trabalhar com malhas na memória do computador. Com as APIs OpenGL e DirectX existem duas maneiras principais de passar uma malha triangular para o hardware de gráficos: faixas de triângulos ou vetores de índices.

Faixa de triângulos editar

Uma maneira de compartilhar dados de vértices entre os triângulos são as faixas de triângulos. Com elas, cada triângulo compartilha uma aresta com um vizinho e outra aresta com o próximo vizinho. Outra forma é o leque de triângulos, que é um conjunto de triângulos conectados a um vértice central. Com estes métodos, vértices são tratados de forma eficiente, resultando no processamento de apenas N+2 vértices para desenhar N triângulos.

Vetor de índices editar

Com vetores de índices, uma malha é representada por dois vetores distintos, um vetor contendo os vértices, e outro vetor contendo grupos de três índices definindo quais vértices definem um triângulo. O sistema gráfico processa os vértices primeiro e depois os triângulos.

Com este método, qualquer conjunto de triângulos compartilhando um número arbitrário de vértices que pode ser armazenado, manipulado e passado para a API gráfica sem qualquer processamento intermediário.

Veja também editar

Referências