Malha triangular
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/Dolphin_triangle_mesh.png/250px-Dolphin_triangle_mesh.png)
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]
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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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.