Esta página da detalles del Forward rendering path.
Forward Rendering path renderiza cada objeto en uno o más pases, dependiendo de las luces que afectan al objeto. Las luces también se tratan de manera diferente mediante Forward Rendering, dependiendo de su configuración e intensidad.
En Forward Rendering, un cierto número de luces más brillantes que afectan a cada objeto se renderizan en modo totalmente iluminado por pixel. Entonces, se calculan hasta 4 point lights por vértice. Las otras luces se calculan como armónicos esféricos (SH), que es mucho más rápido, pero es sólo una aproximación. Si una luz es una luz por píxel o no depende de esto:
La renderización de cada objeto sucede como sigue:
Por ejemplo, si hay algún objeto que está afectado por una cantidad de luces (como un círculo en una foto abajo, afectado por luces A a H):
Supongamos que las luces A a H tienen el mismo color y la misma intensidad y todas ellas tienen el modo de renderización Auto, por lo que se clasificarían exactamente en este orden para este objeto. Las luces más brillantes se renderizan en el modo de iluminación por pixel (A a D), luego hasta 4 luces en el modo de iluminación por vértice (D a G), y finalmente el resto de luces en SH (G a H):
Tenga en cuenta que los grupos de luz se superponen; Por ejemplo, la última luz por píxel se mezcla en el modo iluminado por vértice, por lo que hay menos “luces” cuando los objetos y las luces se mueven.
El paso base procesa el objeto con una directional light por píxel y todas las luces SH/vértice. Este pase también añade cualquier lightmaps, iluminación de ambiente y emisión del shader. La directional light emitida en este paso puede tener sombras. Tenga en cuenta que los objetos Lightmapped no obtienen la iluminación de las luces SH.
Tenga en cuenta que cuando se utiliza la pass flag “OnlyDirectional” en el shader, entonces el forward base pass sólo procesa la directional ligh principal, luz de ambiente/lightprobe y lightmaps (las luces SH y por vértice no se incluyen en los datos de pass).
Se producen pases adicionales para cada luz adicional por pixel que afecte a este objeto. Las luces en estos pases por defecto no tienen sombras (por lo que en el resultado, Forward Rendering admite una luz direccional con sombras), a menos que el atajo variant multi_compile_fwdadd_fullshadows se utilice.
Las luces armónicas esféricas son muy rápidas de renderizar. Tienen un costo muy bajo en la CPU y son actually free para que la GPU se aplique (es decir, el base pass siempre calcula la iluminación SH, pero debido a la forma en que funcionan las luces SH, el costo es exactamente igual sin importar cuántas luces SH están ahí).
Las desventajas de las luces SH son:
En resumen, las luces SH suelen ser lo suficientemente buenas para objetos dinámicos pequeños.