Renderize polígonos complexos preenchidos com grande número de vértices com o OpenGL
Eu uso o OpenGL para renderizar o mapa 2D e, no processo, eu preciso renderizar polígonos preenchidos com grande número de vértices (100,000+
) Para fazer isso, classifiquei os polígonos em triângulos usando o glu tessellator e renderizei os triângulos com VBO.
Os polígonos são renderizados com sucesso.O problema é que o processo de mosaico acaba sendo extremamente lento. Para alguns gráficos com500,000
vértices, levará quase2 min no meu laptop (i5-3230M 2.6GHz, 8G RAM). Isso é inaceitável para o meu aplicativo.
Existe algum outro algoritmo de mosaico mais rápido que o glu tessellator?
Ou eu fiz errado?
As duas imagens a seguir são os resultados da renderização com
glPolygonMode(GL_FRONT, GL_LINE)
EDIT: Os dados do mapa são estáticos e os dados originais do polígono estão no formato latitude-longitude. Eu já salvei os dados do polígono em mosaico (esses triângulos) em um arquivo separado.
Para ser mais claro (não diretamente relacionado ao problema), para renderização na tela, é necessária uma projeção para transformar o formato LL em coordenadas da tela.
O problema é que o usuário pode ter milhares de gráficos para instalar (nos quais o mosaico será feito). Embora o mosaico seja executado apenas uma vez, ainda leva muito tempo.