Tôi đã tự hỏi trạng thái nào được lưu trữ trong VGL OpenGL. Tôi đã hiểu rằng VAO chứa trạng thái liên quan đến thông số kỹ thuật đỉnh của các đỉnh được đệm (thuộc tính nào trong bộ đệm và bộ đệm nào bị ràng buộc, ...). Để hiểu rõ hơn về cách sử dụng chính xác của VAO, tôi muốn biết chính xác trạng thái họ nắm giữ.
Tôi nên sử dụng VAO như thế nào
Từ các ví dụ đơn giản, tôi đã hiểu rằng việc sử dụng VAO chính xác như sau:
Thiết lập
Generate VAO
BindVAO
---- Specify vertex attributes
---- Generate VBO's
---- BindVBO's
-------- Buffer vertex data in VBO's
---- Unbind VBO's
Unbind VAO
Kết xuất
Bind VAO
---- Draw
Unbind VAO
Từ điều này, tôi giả sử rằng ít nhất các ràng buộc bộ đệm đỉnh và các đặc tả thuộc tính đỉnh được lưu trữ trong VAO. Tuy nhiên, tôi không chắc chắn làm thế nào mô hình sử dụng này mở rộng đến các tình huống trong đó (nhiều) kết cấu và (nhiều) chương trình đổ bóng xuất hiện. Là chương trình shader hoạt động lưu trữ trong các VAO? Và các ràng buộc kết cấu (với các cài đặt lấy mẫu / gói của chúng ) có được lưu trong VAO không? Ditto cho đồng phục ?
Do đó, câu hỏi của tôi là:
- Trạng thái chính xác nào được lưu trữ trong VGL OpenGL ? (Liên kết VBO, thông số kỹ thuật thuộc tính, chương trình đổ bóng hoạt động, liên kết kết cấu, cài đặt gói / lấy mẫu kết cấu, đồng phục ...?)
- Làm cách nào để sử dụng chính xác VAO trong thiết lập kết xuất phức tạp hơn trong đó (nhiều) kết cấu với cài đặt lấy mẫu / gói liên quan, (nhiều) chương trình đổ bóng và đồng phục có liên quan?