Come posso implementare LOD con geometria dinamica basata su GPU in OpenGL? [chiuso]


9

Sto cercando di implementare LOD per migliorare le prestazioni del mio gioco. Ho trovato un tutorial molto carino .

Il concetto di base che penso di capire è: ottenere la distanza dalla videocamera all'oggetto, verificare il livello LOD corretto e quindi rendere l'oggetto con la "giusta quantità di istanze".

Come lo implemento? Il codice di esempio fornito è un mistero per me ...

Alcune domande:

  1. È un buon metodo per implementare LOD?
  2. Qualcuno può spiegarmi in dettaglio, come devo implementarlo, con le domande e così via ...
  3. Sto rendendo tutti i miei oggetti con

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

    Il codice di esempio utilizza GL_POINTS. Posso implementarlo anche con GL_TRIANGLES?


Questo è un buon modo per implementare LODS per enormi quantità di istanze (anche i calcoli sono ottimi per questo). Hai già un sistema LOD basato su CPU? Qui GL_POINTS viene utilizzato solo per inviare un certo numero di GS, non per il rendering effettivo (questo articolo ha 7 anni, un'implementazione moderna probabilmente utilizza invece shader di calcolo).
gan_

Risposte:


0

Immagino che dipenda da come hai già impostato il tuo rendering, supponendo che tu stia usando un array indicie per disegnare i tuoi vertici sul tuo terreno, quindi puoi semplicemente creare più array indicie con cui disegnare, avanzando di più verts con ogni array.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.