Tôi đã sử dụng OpenGL trong một thời gian ngắn bây giờ - và tôi muốn làm rõ trên VBO . Theo tôi hiểu, VBO là một đối tượng được lưu trữ trên VRAM. Trong chế độ ngay lập tức, để áp dụng một kết cấu, chúng ta chỉ cần liên kết nó và chỉ định tọa độ kết cấu trước tọa độ đỉnh, tuy nhiên dường như không phải như vậy với VBO.
Câu hỏi 1: Tôi có thể chỉ định dữ liệu kết cấu trong VBO không? Phần nào của dữ liệu?
Thông thường khi tôi tạo một trò chơi trong 2d, tôi sẽ lưu trữ tất cả các đối tượng của mình trong các trường hợp của các lớp khác nhau, sau đó khi thói quen vẽ của tôi xuất hiện - chỉ cần vẽ các đối tượng trên màn hình. Với môi trường 3D, sẽ khó khăn hơn một chút khi chỉ vẽ các đối tượng trên màn hình nhưng với một số phép toán tôi chắc chắn điều đó là có thể.
Câu hỏi 2: Một khi chúng ta tìm ra những đối tượng nào cần được kết xuất, việc gửi các đối tượng tương ứng đó có yêu cầu "áp dụng" nhanh không và có thể tự áp dụng không? đây có phải là cách tốt hơn không?
Câu hỏi 3: Nếu tôi có một bản đồ hoàn toàn động, nhưng với các đối tượng sẽ không thay đổi thường xuyên, có hướng dẫn nào về sự khác biệt về hiệu suất giữa GL_STATIC_DRAW
và GL_DYNAMIC_DRAW
không?
Câu hỏi cuối cùng: Tôi thậm chí có nên xem xét sử dụng danh sách đỉnh không? Hay VBO chỉ là một lựa chọn tốt hơn?
glDrawElements
trong từng đối tượng - hay tôi nên lưu trữ mọi thứ dưới dạng hình tam giác và chỉ có một đối tượng glDrawElements
? Là một trong những cách khả thi?