epelpad

Cascaded Shadow Maps de Unreal Engine 4

Cascaded Shadow Maps de Unreal Engine 4

Motor Grafico



epic games

Unreal Engine

ue4


Cascaded Shadow Maps


Los shadow maps son una técnica común para añadir sombras a los juegos. La idea básica es testear cuando un pixel es visible desde la fuente de luz, si no es visible, entonces hay sombra.

El algoritmo consiste en dos pasadas: la primera construye un mapa de profundidad (a veces llamado shadow depth map) en el espacio de luces; la segunda compara la profundidad de cada pixel (en espacio de luces) con la correspondiente profundidad en el mapa calculado en el paso uno. Si el pixel (x,y) tiene mayor profundidad (z) que el valor (x,y) en el shadow depth buffer significa que la luz está ocluida y por tanto hay que pintar sombra en dicho pixel.


Partiendo de esta escena de ejemplo:


Cascaded Shadow Maps de Unreal Engine 4


El algoritmo shadow map hace su primera pasada donde construye el shadow depth buffer (que es básicamente una textura) en light-space desde la fuente de luz. Piensa que es como si renderizaras la escena pero no desde la cámara, si no con la fuente de luz cómo la cámara y almacenaras el z-buffer resultante en una textura. Esa textura es el shadow depth buffer.

Motor Grafico


En su segunda pasada se comparan las profundidades del pixel (en lights pace) con el depth buffer previamente calculado para saber si dicho pixel recibe sombra o no. El depth buffer previo se usa, por lo tanto, para saber que pixel están ocluido de la luz. Si el pixel (x,y) cuya profundidad (z) en coordenadas lightspace es mayor que el valor (x,y) en el shadow depth map significa que la luz “no ve” ese pixel y por tanto en dicho pixel debe pintarse sombra.

epic games


Esta técnica es ampliamente usada en todos los motores de render en tiempo real.


Unreal Engine

Artefactos


Este algoritmo presenta varios artefactos muy comunes:


Perspective Aliasing:


Ocurre cuando al “mapear” los pixeles desde el viewspace a texels en el shadow buffer (que es una textura) no están en ratio 1 a 1. Esto es debido a que cerca de la cámara los pixeles son más cercanos los unos a los otros y requieren una resolución shadow depth map mayor.

ue4


En la siguiente imagen se ilustra la resolución del depth map junto al frustum de la cámara. Cuanto más cerca de la cámara necesitamos más resolución y cuanto más lejos necesitaremos menos resolución.

Cascaded Shadow Maps de Unreal Engine 4


La técnica más común para resolver este artefacto es usar Cascaded Shadow Maps (CSM). La idea es dividir el frustum de la cámara y usar para cada división un depth buffer de mayor resolución cuanto más cerca de la cámara esté.

Motor Grafico


Shadow Acne:


Ocurre cuando los valores en shadow depth buffer son muy cercanos al depth buffer de cada pixel y al comparar dichos valores tan cercanos se cometen errores (floating point).

epic games


Se resuelve ajustando un valor, comúnmente llamado ‘bias’ que añade como offset al depth buffer, de este modo se resuelve el error al comparar floats tan cercanos.

Unreal Engine


Peter Panning:


Este artefacto ocurre precisamente al intentar arreglar el artefacto anterior. Al usar un ‘bias’ demasiado alto se puede caer en una mala comparación.

ue4


Con el valor de ‘bias’ correcto se consigue evitar el Acne y el Peter Panning:


Cascaded Shadow Maps de Unreal Engine 4


Motor Grafico


Comunidad Unreal Engine 4 en Taringa!

epic games



Unreal Engine
ue4

Comentarios Destacados

_Juegos_ +14
amigo no vale la pena intentar mostrar algo asi en este sitio
ya lo intente y no hay mucha comunidad aca interesada en esto
te recomiendo otros foros donde podes crecer enseñando sobre estos temas
salu3
TheGuitarMartins +2
somos pocos casi nada ,pero almenos algo un buen lugar para intercambiar consultas cada ve mas gente se va sumando a unreal. almenos habria que dar chance, yo estoy en la comu de 3d y diseño en su tiempo estuvo genial hace 2 años q cayo pero cada tanto alguien le da vida.
Ganster1986 +1
Es verdad, si no es un culo , algo referente a la politica o algo que los niños ratas no puedan bardear no les interesa para nada.. te dejo 10+ porque estas cosas valen la pena!!

6 comentarios - Cascaded Shadow Maps de Unreal Engine 4

3-Dward +2
Leo apenas pueda.. una pregunta, se que puedo buscar en google pero que cuales son los requisitos mínimos del Unreal?
daxnix +2
Procesador Quad-core Intel o AMD, 2.5 GHz o mayor
RAM 8 GB de RAM en sistema
Video NVIDIA GeForce 470 GTX o AMD Radeon 6850 HD o mayor

puede que con menos puedas usarlo, eso son los recomendados para la creación de contenido
3-Dward +1
@daxnix uff me faltan algunos requisitos, pero próximamente estaré al día +10
daxnix +1
@3-Dward estoy ejecutando el visual estudio + el unreal con un proyector semi-pesado y consume 4 gb entre los 2 programas. los requisitos están en lo correcto. claramente no son los óptimos pero se puede utilizar .
angelosystem32 +4
Leí toda la info que subiste, estos posts son una luz entre tanta cagada que hay en esta pagina. + 0xA
VakkenX0t +2
Yo le sacaba las sombras a los juegos para ganar más FPS
Ek_22 +1
Excelente, va combo