Projector Shadow, una solución de sombras en tiempo real para juegos móviles

Projector Shadow es una forma común de implementar sombras en tiempo real. Su principio básico es renderizar objetos que necesitan mostrar sombras en una RenderTexture (RT) a través de la cámara, registrar el valor de color del objeto (se puede configurar en un color personalizado ) y RT se asocia con el material del componente Projector; luego, el objeto que necesita recibir la sombra se renderiza nuevamente con el material del componente Projector a través del componente Projector para realizar la visualización de la sombra.

A continuación, mostraremos gradualmente algunos problemas encontrados en la implementación de Projector Shadow en Unity 2019.4.37 y su plan de optimización.

1. Suavizado

El efecto directo del proyector tendrá bordes de sombra irregulares evidentes. Para esta situación, puede aumentar el tamaño del mapa RT y reducir la profundidad de color de la sombra para reducir el grado aparente de aliasing; además, también puede difuminar el RT para lograr el efecto de reducción del aliasing. La siguiente imagen muestra el efecto suavizado logrado por Gaussian Blur y Percentage Closer Filtering (PCF). La diferencia se puede ver cuando la lente está de cerca en el teléfono móvil, pero el efecto es similar cuando la lente está alejada y la diferencia no es obvia.

2. Ajuste de sombra causado por la altura de descenso del modelo

Cuando el objeto que produce la sombra (el objeto proyectado) no está completamente sobre el objeto que recibe la sombra (el objeto proyectado), sino que se hunde parcialmente en el objeto proyectado, el tamaño de la sombra mostrada no cambia y sigue siendo el igual que el objeto proyectado está todo en el objeto proyectado al mismo tiempo.

 En este caso, puede agregar detección de profundidad después de que los vértices se conviertan en coordenadas de proyección en el sombreador del material del Proyector y eliminar las sombras que no están en el área de proyección.
 

3. Mezcla sombras estáticas

Cuando la sombra del proyector se proyecte sobre la sombra estática de la escena, habrá superposición.

 Para el fenómeno de superposición, la fusión de sombras se puede realizar a través del muestreo de sombreadores con la ayuda del mapa ShadowMask generado al hornear el mapa de luz. (Nota: después de unity2018, el tipo de textura del mapa de máscara de sombra se puede configurar en un solo canal y se puede seleccionar Rojo, de modo que se genera la textura en formato r8 y el costo de la memoria será 1/4 del anterior)

4. Rendimiento de la pantalla de lotes de sombra

Projector Shadow no tiene ninguna ventaja cuando se trata de situaciones en las que es necesario mostrar una gran cantidad de sombras en tiempo real. De acuerdo con las características del Proyector, los objetos que producen sombras se renderizarán una vez más. Si hay demasiados objetos, ejercerá presión sobre el rendimiento del renderizado.

 En la visualización de sombras de los juegos móviles, si se utiliza el método Projector shadow, generalmente se utiliza para la visualización de sombras del protagonista o escenas con solo unos pocos personajes (como PVP); para otras sombras de personajes sin importancia, se recomienda use el método de parche fijo (sombras falsas) para mostrar.

Supongo que te gusta

Origin blog.csdn.net/veimen/article/details/123968191
Recomendado
Clasificación