Thực sự có một vài cách để tạo ra một lưới như vậy.
Cách hiệu quả nhất sẽ là inst instaging. Bằng cách này, bạn tạo hình lục giác của mình chỉ một lần trong VBO và hiển thị số này một trăm, một nghìn hoặc một triệu lần. Bạn có thể thực hiện thủ công bằng cách sử dụng trình tạo bóng với đồng phục như bạn đã nói ở điểm 1, nhưng cũng có chức năng OpenGL tích hợp cho nó. Đối với điều đó, hãy xem glDrawElementsInstified .
Lưu ý rằng instaging chỉ nhanh hơn các phương thức khác nếu bạn vẽ nhiều hơn một lượng đối tượng nhất định. Ví dụ, vẽ 300 có thể nhanh hơn khi sử dụng 1 VBO lớn, nhưng vẽ 2 triệu có thể nhanh hơn nếu bạn sử dụng kết xuất đồ họa.
Nếu bạn sử dụng kết xuất theo bản năng, bạn có thể gửi dữ liệu theo từng đối tượng bằng cách sử dụng Số chia thuộc tính . Trong trường hợp của bạn, bạn sẽ muốn gửi vị trí và màu sắc.
Một hướng dẫn tốt về kết xuất theo bản năng: nhấp vào
Cách thực sự tốt nhất là thử cả hai phương pháp và kiểm tra lượng mili giây cần thiết để vẽ 1 khung hình. Bằng cách này bạn cũng học được cả hai cách, luôn luôn tốt.
Cũng lưu ý rằng kết xuất theo bản năng là một chức năng OpenGL hiện đại và bạn sẽ phải sử dụng các trình đổ bóng để sử dụng nó. Nhưng tốt nhất là học nó ngay từ đầu.