Có bao nhiêu shader thường hoạt động, cùng một lúc trong một cảnh, trong các trò chơi hiện đại? Tôi biết rằng nhiều shader đang được sử dụng, với các trò chơi chuyển đổi giữa chúng trong mỗi khung hình và việc vẽ các đối tượng thông qua shader là điều phổ biến:
- Vẽ tất cả các đối tượng với một shader một
- Thay đổi từ shader một thành shader hai
- Vẽ tất cả các đối tượng với shader hai
Tuy nhiên, tôi biết nó không đơn giản, đặc biệt là với các hiệu ứng như hiệu ứng phát sáng cho toàn cảnh, kết xuất thành kết cấu, v.v., nhưng tôi đoán chúng ta có thể cho rằng nó hoạt động theo cách đó hầu hết thời gian, phải không? Cách tiếp cận "nhóm theo shader" là tốt, bởi vì chuyển đổi shader là một hoạt động tốn kém.
Từ một phía, bạn không thể có quá nhiều shader, vì bạn muốn kết xuất cảnh nhanh. Mặt khác, bạn cần nhiều shader khác nhau (hoặc uber-shader với các nhánh - khá giống nhau) cho da, kim loại, nước, v.v.
Có bao nhiêu (và cái) shader khác nhau mà trò chơi thám tử 3D lý thuyết, hiện đại, người thứ ba, 3D cho PC (DirectX 11, nếu có vấn đề) sử dụng? Nó sẽ là 5, 20 hoặc nhiều hơn như 100 shader hoạt động, chỉ tính hoạt động, tại một số "khung X"? Tôi biết đó không phải là một con số, nhưng tôi tự hỏi quy mô và các yếu tố nào là quan trọng, khi xem xét cho một trò chơi trên PC.
Trong trò chơi mẫu của tôi, tôi sẽ sử dụng khoảng 9-11 cho mỗi khung hình (tính nó là các shader nhỏ khác nhau hoặc một uber-shader - không quan trọng bây giờ):
- Da bóng
- Shader mắt (không quá nhiều? Nhưng chúng khác nhau)
- Kim loại shader
- Shader mặt đất
- Shader tuyết / mưa (nếu cần)
- Shader nước (nếu nước tồn tại trong cảnh)
- Glow shader (chỉ khi có một số hiệu ứng đặc biệt)
- Shader ánh sáng emiter (đèn đường, vv)
- Shader tiêu chuẩn (đối với tất cả các loại khác, chỉ cần tạo bóng tiêu chuẩn)
- Shader chuẩn với bản đồ bình thường
- Trình tạo bóng 2D (cho GUI, v.v.)
Là "nhiều" hay "không nhiều"? Tôi đã quên một số shader quan trọng mà tôi sẽ cần?