Como implemento LOD de geometria dinâmica baseada em GPU no OpenGL? [fechadas]


9

Estou tentando implementar o LOD para aumentar o desempenho do meu jogo. Eu encontrei um tutorial muito bom .

O conceito básico que eu acho que entendo é: Afaste a câmera do objeto, verifique o nível de nível de detalhe correto e, em seguida, renderize o objeto com a "quantidade certa de instâncias".

Como faço para implementar isso? O código de exemplo fornecido é um mistério para mim ...

Algumas perguntas:

  1. Esse é um bom método para implementar o LOD?
  2. Alguém pode me explicar detalhadamente, como eu tenho que implementá-lo, com as consultas e assim por diante ...
  3. Estou renderizando todos os meus objetos com

    GL11.glDrawElements(GL11.GL_TRIANGLES, model.getRawModel().getVertexCount(),
                        GL11.GL_UNSIGNED_INT, 0);

    O código de exemplo usa GL_POINTS. Posso implementá-lo também com GL_TRIANGLES?


Essa é uma boa maneira de implementar o LODS para grandes quantidades de instâncias (o Computes também é ótimo para isso). Você já possui um sistema LOD baseado em CPU? Aqui GL_POINTS é usado apenas para despachar algum número de GS, não para renderização real (este artigo tem 7 anos, uma implementação moderna provavelmente usaria shaders de computação).
gan_

Respostas:


0

Eu acho que depende de como você já configurou sua renderização, assumindo que você esteja usando uma matriz de indicadores para desenhar seus vértices em seu terreno, então você pode simplesmente criar mais matrizes de indicadores para desenhar, avançando mais verts com cada matriz.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.