Está en la página 1de 3

1.1.3.

Forward Rendering | Jettelly Learn 16/12/21, 10:37

1.1.3. Forward Rendering


Forward es la ruta de rendering por defecto y soporta todas las
características típicas de un material (e.g. normal maps, iluminación por
cada píxel, sombras etc.). Este rendering path posee dos pases distintos
que podemos utilizar en nuestro shader escrito vía código. El primero
corresponde al pase base y el segundo al pase adicional.

En el pase base podemos definir el light mode ForwardBase y en el pase


adicional podemos definir el light mode ForwardAdd. Ambas son
funciones características de un shader con cálculo de iluminación. El pase
base puede procesar luz direccional per-pixel. Si hay múltiples luces
direccionales en la escena, entonces la luz más brillante será utilizada por
este último. Además el base pase tiene la capacidad de procesar light
probes, iluminación global e iluminación ambiental (sky light).

Como su nombre lo dice, en el pase adicional podemos procesar “luces


adicionales” per-pixel o también sombras que afecten al objeto, ¿qué
quiere decir esto? Si tenemos dos luces en la escena, nuestro objeto será
influenciado sólo por una de ellas, sin embargo, si tenemos definido un
pase adicional para esta configuración, entonces será influenciado por
ambas.

Un punto que debemos tomar en consideración es que cada pase


iluminado va a generar un draw call independiente, ¿qué significa esto? Un
draw call es un llamado gráfico que se realiza en la GPU cada vez que
deseamos dibujar un elemento en la pantalla de nuestro computador.
Estos llamados son procesos que requieren una gran cantidad de cálculo,
por lo que es necesario que se mantengan al mínimo posible, más aún si
estamos trabajando en proyectos para dispositivos móviles.

Para entender este concepto vamos a suponer que tenemos cuatro


esferas y una luz direccional en nuestra escena. Cada esfera, por su

https://learn.jettelly.com/es/curso/biblia-de-shader-en-unity/usb-capitulo-1/forward-rendering/ Page 1 of 3
1.1.3. Forward Rendering | Jettelly Learn 16/12/21, 10:37

naturaleza, genera un llamado a la GPU, esto quiere decir que cada una de
ellas va a generar un draw call independiente por defecto.

Así mismo, la luz direccional tiene influencia sobre todas las esferas que
se encuentran en la escena, por lo tanto, va a generar un draw call
adicional por cada esfera, esto se debe principalmente a que un segundo
pase ha sido incluido en el shader para calcular la proyección de sombras,
por lo tanto, cuatro esferas, más una luz direccional generarán ocho draw
calls en total.

(Fig. 014. En la imágen anterior podemos apreciar el aumento de draw calls cuando existen fuentes lumínicas.
En el cálculo se incluye el color de ambiente y la fuente de luz como objeto)

Habiendo determinado el pase base, si agregamos un pase adicional en


nuestro shader, entonces vamos a sumar un nuevo draw call por cada
objeto, y por consecuencia, la carga gráfica aumentará en relación a la
cantidad de los mismos.

Existen algunas maneras de optimizar este proceso del cual hablaremos


más adelante en este libro. Por ahora continuaremos detallando el
concepto de rendering path.

https://learn.jettelly.com/es/curso/biblia-de-shader-en-unity/usb-capitulo-1/forward-rendering/ Page 2 of 3
1.1.3. Forward Rendering | Jettelly Learn 16/12/21, 10:37

¿De cuánta utilidad te ha parecido este contenido?

https://learn.jettelly.com/es/curso/biblia-de-shader-en-unity/usb-capitulo-1/forward-rendering/ Page 3 of 3

También podría gustarte