O que é mosaico de triângulos
Mosaico de triângulos é uma tesselação geométrica onde triângulos se encaixam para cobrir uma superfície sem sobreposições ou lacunas. Pode ser feito com triângulos equiláteros, retângulos ou combinações irregulares. A diferença entre um resultado que parece artificial e um que funciona visualmente está nos ângulos de conexão e na forma como as bordas são tratadas.
Mosaico de triângulos: como construir do zero
A maioria dos tutoriais começa explicando a grade básica. Eu vou começar pelo problema real. Quando você tenta gerar um mosaico de triângulos usando coordenadas cartesianas simples, a coisa desanda rápido. O primeiro problema que eu encontrei foi com triangulação de Delaunay em pontos distribuídos aleatoriamente. O algoritmo gera triângulos válidos matematicamente, mas na prática os triângulos ficavam extremamente alongados perto das bordas da imagem, criando áreas visivelmente dissonantes que estragavam o padrão geral. A solução que eu uso atualmente é pré-filtrar os pontos antes de chamar o triangulador. Eu aplico um pequeno ruído pseudoaleatório controlado e depois removo pontos que ficam mais próximos do que o dobro do tamanho médio esperado do triângulo. Isso reduz significativamente os triângulos degenerados nas bordas. O processo inteiro leva cerca de 8 segundos para uma superfície de 1920x1080 pixels em uma máquina padrão.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Para quem quer algo mais simples, existe a abordagem de grade regular. Você divide o espaço em triângulos equiláteros usando matemática pura. Cada linha é deslocada pela metade da largura do triângulo e alternada verticalmente. O código é trivial, mas o resultado visual é previsível demais para a maioria dos projetos que exigem naturalidade. A menos que você intencionalmente queira esse aspecto geométrico rígido, isso limita muito a expressividade do trabalho. Terrain generation e texturas procedurais são onde o mosaico de triângulos realmente brilha. Jogos indie usam essa técnica há anos para gerar terrenos sem depender de assets pesados. O segredo não é a triangulação em si, mas como você mapeia a cor ou a altura em cada triângulo. Interpolação bariocêntrica funciona bem, mas exige cuidado com discontinuidades entre triângulos adjacentes que compartilham bordas com orientação diferente.
Uma armadilha comum que eu vejo gente cair repetidamente é confiar cegamente em bibliotecas prontas de triangulação sem verificar os limites do domínio. A biblioteca vai te dar triângulos, sim, mas se sua área de trabalho não for perfeitamente retangular, as peças nas extremidades vão sobrescrever ou deixar buracos. A correção é simple: clipe o resultado final contra um máscara que defina sua forma desejada, ou trabalhe sempre dentro de um polígono convexo até dominar o fluxo. Se o objetivo é apenas visualização estática, o caminho mais rápido é usar shader GLSL com noise simplex para gerar vértices dinâmicos. Isso roda na GPU e permite atualizações em tempo real sem travar a CPU. O custo é que você precisa de conhecimento básico de shaders, e a depuração fica mais chata porque o resultado não é determinístico frame a frame sem seed fixa.
A desvantagem principal que ninguém menciona é que mosaico de triângulos irregular tende a criar padrões repetitivos se você não variar os parâmetros de entrada. Triângulos do mesmo tamanho e mesma paleta de cores em toda a superfície parecem um papel de parede de Windows dos anos 2000. A variação espacial da escala e da saturação por região resolve isso, mas adiciona complexidade ao pipeline. Para quem está começando agora, recomendo testar com uma grade fixa primeiro. Entenda como os vértices se comportam antes de partir para triangulação procedural. O passo seguinte é introducir randomness controlado e observar onde as rupturas visuais aparecem. A partir daí, ajustar os parâmetros de filtragem e interpolação se torna uma questão de iteração rápida, não de adivinhação.