Tốt nhất là giữ mọi thứ đơn giản nhất có thể. Sao chép cùng một shader cho mọi đối tượng là không cần thiết và sẽ nhanh chóng bị đầy hơi. Bạn cũng không muốn có một shader khổng lồ bao gồm mọi trường hợp sử dụng có thể, vì điều này gây ra chi phí không cần thiết.
Có một số ý kiến về quản lý shader và không có cách "tối ưu" nào để tiếp cận điều này. Tôi thậm chí đã nhìn thấy một số triển khai shader trong đó mọi shader được tạo khi đang chạy đều dựa trên các tham số (ví dụ: trong Unreal engine ).
Đối với một người chỉ mới bắt đầu trong lĩnh vực này, có thể tốt để loại bỏ các shader cơ bản trước. Ví dụ: tôi có một trình tạo bóng cho các đối tượng không có họa tiết, trình tạo bóng có kết cấu cơ bản và hỗ trợ chiếu sáng theo pixel, v.v ... Sau đó, mỗi lần tôi muốn có một hiệu ứng khác nhau không thể thực hiện được bằng cách sử dụng trình tạo bóng trước đó, thì tôi sẽ Sẽ tạo một cái mới cho hiệu ứng mới.
Mục đích của một hệ thống như vậy là để giữ cho mọi thứ đơn giản. Chỉ. Giữ. Nó. Đơn giản.