Làm cách nào để triển khai LOD hình học động dựa trên GPU trong OpenGL? [đóng cửa]


9

Tôi đang cố gắng thực hiện LOD để tăng hiệu suất trò chơi của mình. Tôi tìm thấy một hướng dẫn rất tốt đẹp .

Khái niệm cơ bản mà tôi nghĩ tôi hiểu là: Lấy khoảng cách từ máy ảnh đến đối tượng, kiểm tra mức LOD phù hợp và sau đó kết xuất đối tượng với "số lượng phiên bản phù hợp".

Làm thế nào để tôi thực hiện điều đó? Mã ví dụ được cung cấp là một bí ẩn đối với tôi ...

Vài câu hỏi:

  1. Đây có phải là một phương pháp tốt để thực hiện LOD?
  2. Ai đó có thể vui lòng giải thích cho tôi chi tiết, làm thế nào tôi phải thực hiện nó, với các truy vấn và vv ...
  3. Tôi đang kết xuất tất cả các đối tượng của mình với

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

    Mã ví dụ sử dụng GL_POINTS. Tôi có thể thực hiện nó với GL_TRIANGLES?


Đây là một cách tốt để triển khai LODS cho số lượng lớn các trường hợp (Tính toán cũng rất tốt cho việc này). Bạn đã có hệ thống LOD dựa trên CPU chưa? Ở đây GL_POINTS chỉ được sử dụng để gửi một số GS, không phải để hiển thị thực tế (Bài viết này đã 7 năm tuổi, một triển khai hiện đại có thể sẽ sử dụng các shader tính toán thay thế).
gan_

Câu trả lời:


0

Tôi đoán nó phụ thuộc vào cách bạn đã thiết lập kết xuất của mình, giả sử bạn đang sử dụng một mảng chỉ định để vẽ các đỉnh của bạn trong địa hình của bạn, sau đó bạn có thể chỉ cần tạo thêm các mảng chỉ thị để vẽ, bước dọc theo nhiều câu hơn với mỗi mảng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.