He estado haciendo pruebas con Ray Reconstruction. Para realizar las pruebas, he utilizado "Universal Unreal Unlocker", una herramienta que desbloquea ciertas funciones en juegos de Unreal Engine 4/5, entre ellos este Silent Hill 2. Si el desarrollador no ha habilitado la opción para activar o desactivar Ray Reconstruction en este juego es por un motivo, y voy a intentar explicarlo.
Silent Hill 2 tiene un ajuste llamado "Trazado de rayos" que permite escoger entre "No" y "Sí". Este ajuste no debería llamarse así, ya que en ambos modos el trazado de rayos está activo mediante "Lumen", solo que de maneras distintas:
El ajuste "No" utiliza la técnica de trazado de rayos por software que proporciona Unreal Engine 5 y no hace uso de la GPU.
El ajuste "Sí" utiliza la técnica de trazado de rayos acelerada por hardware, más exigente incluso librando a la CPU de esa carga, pero mucho más precisa. Ray Reconstruction solo funciona bajo este modo y con GPUs NVIDIA.
La precisión y estabilidad del trazado de rayos (ya sea por SW o por HW) se ve afectada por la resolución de renderizado, es decir, cuanto mayor sea la resolución de renderizado, los artefactos de imagen serán menos visibles (reflejos que parece que parpadean y no son estables, rayos de luz que parece que rebotan constantemente etc.). Al usar cualquier técnica de "Supermuestreo" para aumentar el rendimiento, la resolución de renderizado será menor, por lo que los artefactos producidos por el trazado de rayos serán mas evidentes. Esto es muy importante para la explicación posterior.
Los ajustes que afectan a Ray Reconstruction son los siguientes:
"r.NGX.DLSS.denoisermode".
"r.Lumen.Reflections.BilateralFilter".
"r.Lumen.Reflections.ScreenSpaceReconstruction".
"r.lumen.Reflections.Temporal".
"r.Shadow.Denoiser".
Estos ajustes tienen los siguientes valores por defecto con Ray Reconstruction desactivado:
"r.NGX.DLSS.denoisermode=0".
"r.Lumen.Reflections.BilateralFilter=1".
"r.Lumen.Reflections.ScreenSpaceReconstruction=1".
"r.lumen.Reflections.Temporal=1".
"r.Shadow.Denoiser=2".
Según el artículo de PC Gaming Wiki del juego, estos son los valores que deberían tener los ajustes para habilitar Ray Reconstruction, además de copiar el fichero "nvngx_dlssd.dll" ("dlssd" significa DLSS Denoiser, para los que no lo sepan, es un Denoiser potenciado por los núcleos Tensor de las GPUs NVIDIA):
"r.NGX.DLSS.denoisermode=1".
"r.Lumen.Reflections.BilateralFilter=0".
"r.Lumen.Reflections.ScreenSpaceReconstruction=0".
"r.lumen.Reflections.Temporal=0".
"r.Shadow.Denoiser=0".
Gracias a "Universal Unreal Unlocker" he conseguido habilitar el modo consola y el modo foto en este juego (lo segundo es mera curiosidad, pero algún easter egg seguro que existe).
Gracias a la consola que habilita "Universal Unreal Unlocker", se pueden aplicar estos ajustes al vuelo y ver inmediatamente los cambios que producen. La consola permite en una sola línea modificar varios ajustes simultáneamente mediante el símbolo "|", por lo que habría que escribir lo siguiente en la consola para activar o desactivar Ray Reconstruction:
"r.NGX.DLSS.denoisermode 1|r.Lumen.Reflections.BilateralFilter 0|r.Lumen.Reflections.ScreenSpaceReconstruction 0|r.lumen.Reflections.Temporal 0|r.Shadow.Denoiser 0".
"r.NGX.DLSS.denoisermode 0|r.Lumen.Reflections.BilateralFilter 1|r.Lumen.Reflections.ScreenSpaceReconstruction 1|r.lumen.Reflections.Temporal 1|r.Shadow.Denoiser 2".
Ray Reconstruction tiene un gran impacto en el rendimiento, tal como lo tiene aumentar la resolución de renderizado. Entonces, ¿tiene sentido bajar la resolución de renderizado mediante el ajuste "Supermuestreo" para conseguir aumentar el rendimiento y luego habilitar Ray Reconstruction e intentar minimizar los artefactos producidos por la bajada de resolución interna?
La respuesta es NO. Ray Reconstruction está siendo patrocinado por NVIDIA para juegos que utilizan Path Tracing, no el trazado de rayos común, que es lo que utiliza Silent Hill 2.
En este juego, Ray Reconstruction solo es apreciable en los reflejos, y según he podido observar, los reflejos a 1440p (4K con el ajuste "Supermuestreo" en "DLSS" y "Calidad") y sin Ray Reconstruction se ven igual que en 1080p (4K con el ajuste "Supermuestreo" en "DLSS" y "Rendimiento") con Ray Reconstruction. No solo eso, Ray Reconstruction produce una borrosidad tremenda en los reflejos cuando la cámara o el personaje se están moviendo y no ayuda a mejorar los artefactos mas allá de los reflejos estáticos, la iluminación global parece que no se ve afectada.
En cuanto pueda publicaré imágenes comparativas, pero no habilitéis Ray Reconstruction, simplemente aumentar la resolución de renderizado mediante al ajuste "Supermuestreo" y obtendréis mejores resultados con una penalización de rendimiento parecida o incluso menor.