Bagaimana cara menerapkan LOD geometri dinamis berbasis GPU di OpenGL? [Tutup]

9

Saya mencoba menerapkan LOD untuk meningkatkan kinerja permainan saya. Saya menemukan tutorial yang sangat bagus .

Konsep dasar yang saya pikir saya mengerti adalah: Dapatkan jarak dari kamera ke objek, periksa tingkat LOD yang tepat dan kemudian render objek dengan "jumlah instance yang tepat".

Bagaimana saya menerapkannya? Kode contoh yang disediakan adalah misteri bagi saya ...

Beberapa pertanyaan:

  1. Apakah ini metode yang baik untuk menerapkan LOD?
  2. Dapatkah seseorang tolong jelaskan saya secara rinci, bagaimana saya harus menerapkannya, dengan pertanyaan dan sebagainya ...
  3. Saya merender semua objek saya dengan

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

    Kode contoh menggunakan GL_POINTS. Bisakah saya menerapkannya juga dengan GL_TRIANGLES?

Gykonik
sumber
Ini adalah cara yang baik untuk mengimplementasikan LODS untuk jumlah instance yang besar (Komputasi juga bagus untuk ini). Apakah Anda sudah memiliki sistem LOD berbasis CPU? Di sini GL_POINTS hanya digunakan untuk mengirim sejumlah GS, bukan untuk rendering aktual (Artikel ini berusia 7 tahun, implementasi modern mungkin akan menggunakan compute shaders sebagai gantinya).
gan_

Jawaban:

0

Saya kira itu tergantung bagaimana Anda telah mengatur rendering Anda, dengan asumsi Anda menggunakan array indicie untuk menggambar simpul Anda di medan Anda maka Anda hanya dapat membuat lebih banyak array indexie untuk menggambar, melangkah lebih banyak verts dengan setiap array.

galaban
sumber