Nếu bạn chỉ cần quy tắc cho mỗi khuôn mặt và nếu texcoords của bạn cho khuôn mặt hoàn toàn 0/0, 0/1, 1/0, 1/1 (hoặc tương tự để phù hợp với bố cục của bạn) thì bạn có thể xây dựng một khối lập phương với 8 câu. và 30 (dải với khởi động lại) hoặc 36 (danh sách) chỉ mục. Tìm nạp các quy tắc và texcoords bằng cách sử dụng tra cứu mảng không đổi dựa trên SV_VertexID trong trình tạo bóng đỉnh của bạn.
Làm điều này có nghĩa là bạn thậm chí không cần đưa texcoords hoặc quy tắc vào bộ đệm đỉnh của mình, điều này sẽ giúp bạn tiết kiệm bộ nhớ nhiều hơn.
Đi xa hơn, bạn vẫn có thể đi hết 24 câu trên mỗi khối nhưng cũng có thể sử dụng tính năng. Mỗi khối sẽ là một kích thước cố định trong bộ đệm đỉnh của bạn (1x1x1) và bạn sẽ có một hệ số tỷ lệ và vị trí (giả sử các hình khối của bạn không xoay, một ma trận nếu chúng làm) như dữ liệu theo từng trường hợp. Trong trường hợp không quay, bạn có chi phí một lần là 24 câu, nhưng sau đó mỗi khối chỉ cần 6 phao để chỉ định đầy đủ. Trong trường hợp xoay, bạn đang nhìn vào 16 phao, nhưng thậm chí đó là một sự tiết kiệm đáng kể (bạn có nhiều khả năng làm tắc nghẽn phía CPU trong các biến đổi ma trận trong trường hợp này - đối với trường hợp không quay đang xây dựng ma trận khi đang bay shader đỉnh của bạn - ngay cả khi nó được thực hiện trên mỗi đỉnh, nhanh đến mức ngu ngốc đến mức bạn thậm chí không cần phải lo lắng về nó).
Đối với kết cấu trên mỗi mặt, chỉ cần sử dụng một mảng kết cấu. Tất nhiên, bạn cần đảm bảo rằng mỗi kết cấu như vậy trong mảng có cùng kích thước và bạn vẫn sẽ cần phải phá vỡ lô hiện tại của mình nếu mảng đó cần thay đổi, nhưng nếu không thì nó sẽ hoạt động tốt. Thêm một texcoord thứ ba vào định nghĩa đỉnh của bạn, định nghĩa lát mảng sẽ sử dụng cho mỗi mặt.
Bạn không cần một GS với cái này, và nó sẽ chạy nhanh hơn so với sử dụng một cái vì khi bật trình tạo bóng hình học sẽ áp đặt thêm chi phí cho chính nó.
Tôi đã mã điểm chuẩn trong công cụ của mình, chỉ cần vẽ một loạt các khối bằng phương pháp này và tôi có thể dễ dàng nhai hơn 300.000 khối trong khi vẫn xóa 60fps, trên GPU tương đối thấp và không phải làm gì khác để tối ưu hóa quy trình . Phải thừa nhận rằng tôi không chiếu sáng cũng không kết cấu chúng, nhưng tôi đã bật chức năng hòa trộn alpha, loại bỏ backface và nói chung nó cân bằng với phần "không làm gì khác để tối ưu hóa", vì vậy nó sẽ cho bạn ý tưởng hợp lý về loại sân bóng bạn có thể đánh bằng phương pháp này.