Quanti shader sono solitamente attivi, contemporaneamente in una scena, nei giochi moderni? So che vengono utilizzati più shader, con i giochi che cambiano tra loro in ogni frame, ed è comune disegnare oggetti tramite lo shader:
- Disegna tutti gli oggetti con uno shader
- Passa dallo shader uno allo shader due
- Disegna tutti gli oggetti con lo shader due
Tuttavia, so che non è così semplice, specialmente con effetti come l'effetto bagliore per l'intera scena, il rendering alla trama, ecc., Ma immagino che possiamo supporre che funzioni in questo modo la maggior parte delle volte, giusto? L'approccio "raggruppa per shader" è buono, perché cambiare shader è un'operazione costosa.
Da un lato, non puoi avere troppi shader, perché vuoi rendere velocemente la scena. D'altra parte, hai bisogno di molti shader diversi (o uber-shader con rami - abbastanza simili) per pelle, metallo, acqua ecc.
Quanti (e quali) diversi shader userebbero il gioco teorico, moderno, di terza persona, 3D detective per PC (DirectX 11, se importante)? Sarebbe 5, 20 o più come 100 shader attivi, contando solo attivo, in qualche "frame X"? So che non è un numero, ma mi chiedo quale scala e fattori siano importanti, in considerazione di un gioco per PC.
Nel mio gioco di esempio, userei circa 9-11 per fotogramma (contandolo come diverso, piccoli shader o uno uber-shader - non importa ora):
- Pelle shader
- Eye shader (non troppo? Ma sono diversi)
- Shader di metallo
- Shader a terra
- Snow / rain shader (se richiesto)
- Water shader (se l'acqua esiste in scena)
- Glow shader (solo quando sono coinvolti alcuni effetti speciali)
- Shader emettitore di luce (lampioni ecc.)
- Shader standard (per tutti gli altri, solo ombreggiatura standard)
- Shader standard con mappe normali
- Shader 2D (per GUI ecc.)
È "molto" o "non molti"? Ho dimenticato alcuni shader importanti di cui avrei bisogno?