Polígonos de mosaico
O OpenGL pode exibir diretamente apenas polígonos convexos simples. Um polígono é simples se:
- As bordas se cruzam somente em vértices.
- Não há vértices duplicados.
- Exatamente duas bordas se encontram em qualquer vértice.
Para exibir polígonos simples não contíguos ou polígonos simples que contêm buracos, primeiro você deve triangular os polígonos (subdividi-los em polígonos convexos). Essa subdivisão é chamada de mosaico. O GLU fornece uma coleção de funções que executam mosaico. Observe que as funções de mosaico GLU não podem lidar com polígonos não simples; não há nenhum método OpenGL padrão para lidar com esses polígonos.
Como o mosaico geralmente é necessário e pode ser bastante complicado, esta seção descreve as funções de mosaico GLU em detalhes. Essas funções assumem como entrada polígonos simples arbitrários que podem incluir buracos e retornam alguma combinação de triângulos, malhas de triângulo e ventiladores de triângulo. Se você não quiser lidar com malhas ou ventiladores, poderá especificar que as funções de mosaico retornem apenas triângulos. No entanto, as informações de malha e ventilador melhoram o desempenho. As funções de mosaico de polígono triangulam um polígono côncavo com um ou mais contornos.
Para usar o mosaico de polígono
Crie um objeto de mosaico com gluNewTess.
Use gluTessCallBack para definir funções de retorno de chamada que você usará para processar os triângulos gerados pelo mosaico.
Com gluBeginPolygon, gluTessVertex, gluNextContour e gluEndPolygon, especifique o polígono com orifícios ou o polígono côncavo a ser mosaicado.
Quando a descrição do polígono é concluída, o recurso de mosaico invoca suas funções de retorno de chamada conforme necessário.
Você pode destruir objetos de mosaico desnecessários com gluDeleteTess.
Para obter mais informações sobre como salvar os dados de mosaico, consulte Usando funções de retorno de chamada.