Gần đây tôi đã bắt đầu chuyển một số bản demo kết xuất cũ mà tôi đã làm sang OpenGL hiện đại. Tôi đã có một lớp vẽ gỡ lỗi trong mã cũ của mình, sử dụng chế độ ngay lập tức glBegin (), glEnd (), v.v. để hiển thị các đối tượng gỡ lỗi như hình tam giác, hình khối và hình cầu, v.v.
Ban đầu tôi đã thay thế mã trong các hàm này bằng mã để tạo VAO và VBO (cho vị trí và màu sắc), liên kết chúng, gán dữ liệu đỉnh, kết xuất, sau đó vô hiệu hóa và xóa VBO và VAO. Có gì không ổn với điều này?
Tôi đã suy nghĩ về việc sửa đổi lớp để mỗi khi nó nhận được một cuộc gọi nguyên thủy, nó sẽ tạo ra VAO và VBO và gán dữ liệu đỉnh nhưng thực tế không thực hiện kết xuất cho đến khi hoàn thành việc kết xuất khác. Sau đó, nó kết xuất lại tất cả các prims gỡ lỗi đã được lưu trữ cùng một lúc.
Tôi không chắc về lợi ích của một trong hai cách làm này và chỉ tự hỏi mọi người nghĩ gì.