Partilhar via


Polígonos Tessellating

OpenGL pode exibir diretamente apenas polígonos convexos simples. Um polígono é simples se:

  • As arestas cruzam-se apenas nos vértices.
  • Não há vértices duplicados.
  • Exatamente duas arestas se encontram em qualquer vértice.

Para exibir polígonos não convexos simples ou polígonos simples contendo buracos, você deve primeiro triangular os polígonos (subdividi-los em polígonos convexos). Tal subdivisão é chamada tesselação. GLU fornece uma coleção de funções que executam tesselação. Observe que as funções de tesselação GLU não podem lidar com polígonos não simples; não existe um método OpenGL padrão para lidar com tais polígonos.

Como a tesselação é frequentemente necessária e pode ser bastante complicada, esta seção descreve as funções de tesselação GLU em detalhes. Essas funções tomam como entrada polígonos simples arbitrários que podem incluir buracos, e eles retornam alguma combinação de triângulos, malhas de triângulos e ventiladores de triângulo. Se você não quiser lidar com malhas ou ventiladores, você pode especificar que as funções de tesselação retornem apenas triângulos. No entanto, as informações de malha e ventilador melhoram o desempenho. As funções de tesselação do polígono triangulam um polígono côncavo com um ou mais contornos.

Para usar a tesselação de polígonos

  1. Crie um objeto tessellation com gluNewTess.

  2. Use gluTessCallBack para definir funções de retorno de chamada que você usará para processar os triângulos gerados pelo tessellator.

  3. Com gluBeginPolygon, gluTessVertex, gluNextContoure gluEndPolygon, especifique o polígono com furos ou o polígono côncavo a ser tesselado.

    Quando a descrição do polígono estiver completa, o recurso de tesselação invocará suas funções de retorno de chamada conforme necessário.

    Você pode destruir objetos de tesselação desnecessários com gluDeleteTess.

Para obter mais informações sobre como salvar os dados de tesselação, consulte Usando funções de retorno de chamada.