Version: 5.6
Deferred shading rendering path
Deferred Lighting Rendering Path Obsoleto (Legacy)

Detalles del Forward Rendering Path

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.

Detalles de Implementación

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:

  • Las luces que tienen su modo de Render configurado en Not Important son siempre por vértice o SH.
  • La directional light más brillante es siempre por píxel.
  • Las luces que tienen su modo de renderizado establecido en Important siempre son por píxel.
  • Si los resultados anteriores resultan en menos luces que la Pixel Light Count Quality Setting actual, entonces se renderizan más luces por píxel, en orden de disminución de brillo.

La renderización de cada objeto sucede como sigue:

  • Base Pass aplica una directional light por-pixel y todas las luces por-vértice/SH.
  • Otras luces por-pixel se renderizan en passes adicionales, un pase para cada luz.

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.

Base Pass

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).

Pases adicionales

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.

Consideraciones de Rendimiento

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:

  • Se calculan en los vértices del objeto, no en píxeles. Esto significa que no admiten cookies ligeras o mapas normales.
  • La iluminación SH es de muy baja frecuencia. No puede tener transiciones de iluminación aguda con luces SH. También sólo afectan a la iluminación difusa (frecuencia demasiado baja para reflejos especulares).
  • La iluminación SH no es local; Las luces SH punto o punto cerca de alguna superficie “se verán mal”.

En resumen, las luces SH suelen ser lo suficientemente buenas para objetos dinámicos pequeños.

Deferred shading rendering path
Deferred Lighting Rendering Path Obsoleto (Legacy)