Tôi hiện đang lập trình một trình tải .obj trong OpenGL. Tôi lưu trữ dữ liệu đỉnh trong một VBO, sau đó liên kết nó với Vertex Attribs. Tương tự cho các tiêu chuẩn. Điều là, dữ liệu bình thường và dữ liệu đỉnh không được lưu trữ theo cùng một thứ tự.Sử dụng một mảng khác nhau cho các đỉnh và tiêu chuẩn trong glDrawElements (OpenGL/VBOs)
Các chỉ mục mà tôi cung cấp cho glDrawElements để hiển thị lưới được sử dụng, tôi giả sử, bằng OpenGL để lấy đỉnh trong VBO đỉnh và lấy các chỉ số trong các chuẩn VBO.
Có cách nào hiệu quả hơn, ngoài việc sử dụng glBegin/glVertex/glNormal/glEnd để báo cho glDrawElements sử dụng chỉ mục cho các đỉnh và một chỉ mục khác cho các tiêu chuẩn? Cảm ơn
Lưu ý rằng khi tôi nói "không được khuyến khích", tôi thực sự muốn nói. Không chỉ logic phức tạp hơn việc xây dựng một dòng đỉnh thích hợp một lần và tải nó lên, mà còn có nghĩa là ngẫu nhiên trái ngược với truy cập dữ liệu tuần tự, nghĩa là bạn có một bộ nhớ cache được bảo đảm nhiều hơn hoặc ít hơn trên mọi đỉnh. – Damon