Khi áp dụng nhiều kết cấu cho một lưới, như đối với ánh xạ va chạm, tôi thường liên kết các kết cấu với một vài đơn vị kết cấu cố định đầu tiên, ví dụ: diffuse = unit 0, gập = đơn vị 1, specular = đơn vị 2, sau đó tiếp tục sử dụng chúng cho từng đơn vị lưới khác nhau với kết cấu khác nhau. Nhưng tôi đã luôn tự hỏi tại sao lại glActiveTexture
hỗ trợ rất nhiều đơn vị kết cấu (trong liên kết trước đó, nó nói ít nhất là 80).
Vì vậy, tôi nhận ra rằng một cách có thể để quản lý họa tiết là liên kết các kết cấu riêng biệt với từng đơn vị có sẵn và để chúng được bật, chỉ cần cập nhật chỉ số lấy mẫu thống nhất. Điều đó sẽ cải thiện kết xuất hoàn hảo bằng cách giảm số lượng chuyển mạch kết cấu. Nếu bạn có ít kết cấu hơn các đơn vị kết cấu tối đa, bạn không bao giờ phải hủy kết cấu.
Đây có phải là tiêu chuẩn thực hành trên các ứng dụng OpenGL thời gian thực (tôi tin rằng điều này cũng áp dụng cho D3D)? Và có bất kỳ ý nghĩa hiệu quả không rõ ràng của việc thực hiện phương pháp này? Bộ nhớ có lẽ?