@Ark0 Si tenías el juego en Steam eso que te llevas, ya que una gran cantidad de Mods se descargarán de forma automática cuando instales el juego, el resto como dices puedes tirar de mi lista que probablemente encuentres la mayoría
Under the Hood: Explicando SSAOHoy nos gustaría explicar una nueva característica gráfica que estamos presentando a nuestros juegos con la actualización 1.38. El artículo es muy técnico: hemos pedido ayuda a nuestros programadores y la explicación es bastante compleja. Sin embargo, consideramos que en realidad puede ser interesante que al menos algunas de las personas de nuestra audiencia estén expuestas a este material, para ver que lo que sucede bajo el capó de un motor de juego implica mucha investigación y trabajo duro de nuestro equipo de programación Además de los detalles técnicos, pensamos que proporcionar el contexto y explicar las compensaciones de rendimiento puede ser útil e importante para la mayoría de los jugadores.
Jaroslav akaCim
(uno de nuestros programadores valientes y hábiles que trabajan en mejoras gráficas)El resumen de TLDR del texto a continuación es que Screen Space Ambient Occlusion es una nueva técnica genial pero de alto rendimiento para enriquecer la representación de nuestro mundo de juego. No tiene que usarlo si siente que disminuye el rendimiento demasiado para su gusto, o puede que le guste y pueda darse el lujo de cambiar algunos fotogramas por segundo para mejorar la percepción de sombras y profundidad. El efecto puede ser sutil, funciona principalmente en el nivel de subconsciencia, pero una vez que te acostumbras, puede ser difícil regresar. Es otro hito en nuestro plan de mejoras de iluminación / sombreado que ahora estamos ejecutando, seguido de un nuevo procesamiento de luz HDR y la introducción de más superficies con mapas normales en las próximas actualizaciones.
La técnica tiene sus limitaciones y peculiaridades. Ha sido utilizado por varios juegos AAA en los últimos años, e incluso si no es perfecto, ayuda al sistema de percepción humana a comprender mejor la escena, y esperamos que sea beneficioso agregarlo a la combinación de tecnología de nuestros simuladores de camiones. Sin duda, querremos introducir formas adicionales de sombrear el cálculo que lo mejorará o incluso lo reemplazará.
Estamos bajo una presión constante para mejorar el aspecto de nuestro juego mediante un subconjunto vocal de nuestra base de fanáticos. Al mismo tiempo, siempre hay un deseo de hacer que los juegos se ejecuten más rápido. Además de estas solicitudes que a veces compiten entre la base de jugadores, nuestro propio departamento de arte siempre está ansioso por conseguir nuevos juguetes gráficos para hacer que nuestro juego sea más rico y mejor. Cada vez que introducimos una nueva característica gráfica en el juego, tratamos de hacerlo de una manera que no perjudique el rendimiento de los jugadores con computadoras más antiguas, no queremos que el juego sea incompatible para nuestros clientes existentes. Es por eso que hay una opción para apagar SSAO por completo, y varias configuraciones para su calidad / rendimiento.
El trabajo de nuestros programadores en las nuevas técnicas SSAO / HBAO también requirió cambios en nuestra línea de arte y creación de arte. Todos los modelos 3D en nuestros juegos tuvieron que ser revisados por el departamento de arte, y cualquier instancia, donde las sombras falsas y el oscurecimiento ya fueron aplicados a un modelo por un artista, fueron cambiados. Para algunos modelos de juegos más complejos, esta fue una simplificación que en realidad redujo el número de triángulos en ellos lo suficiente como para mejorar el rendimiento del renderizado. Hasta cierto punto, hemos intercambiado una parte del esfuerzo manual tentativo futuro que sería necesario para construir modelos 3D apuestos individuales para un pase de representación algorítmica que unifique el aspecto sombreado de toda la escena, ayudando a "enraizar" objetos como edificios, farolas y vegetación al terreno.
Qué significa SSAO y cómo funcionaAntes de comenzar, tenga en cuenta que SSAO es un acrónimo general de "oclusión ambiental del espacio de pantalla". El nombre abarca todas las diversas técnicas de oclusión ambiental (AO) y sus variantes que funcionan en el espacio de la pantalla (significa que obtienen toda la información en tiempo de ejecución de los datos que se muestran en la pantalla de la computadora y en los buffers de memoria relacionados). Hay SSAO (tecnología Crytech 2007 que básicamente dio un nombre general a todas las técnicas), MSSAO, HBAO, HDAO, GTAO, y muchas otras técnicas más, cada una con enfoques diferentes, cada uno con sus ventajas y desventajas. Hemos basado nuestro enfoque en una técnica basada en el horizonte llamada GTAO que fue presentada en un artículo de 2016 por Activision.
La parte del nombre de oclusión ambiental (AO) significa que evaluamos la cantidad de luz entrante (predominantemente luz del cielo, pero a veces la oclusión calculada se aplica también a otras luces) se ocluye en un lugar particular del mundo del juego. Imagine que está parado en un terreno plano: vería todo el cielo arriba, por lo que hay un 0% de oclusión, el suelo se ilumina completamente. Ahora imagine que está en el fondo de un pozo: solo vería un pequeño trozo de cielo, lo que significa que el cielo se ocluye casi al 100% y contribuye solo un poco a la iluminación ambiental de ese pozo, y naturalmente es bastante oscuro El fondo del pozo. Un nivel específico de oclusión ambiental en un lugar particular afecta los cálculos de iluminación y crea áreas sombreadas en pliegues, agujeros y otros lugares 'complejos'.
Calcular la oclusión con gran detalle y precisión requiere muchos recursos; básicamente, necesitaría disparar rayos desde cualquier posición evaluada en todas las direcciones y probar si golpean el cielo o no, y luego promediar el resultado. Cuantos más rayos dispare, mejor información obtendrá pero a un mayor costo de cómputo. Este proceso posiblemente podría procesarse fuera de línea, como cuando el diseñador guarda el mapa del juego. Algunos juegos y motores utilizan este enfoque. Pero de esa manera solo puede hornear información de oclusión ambiental sobre objetos estáticos sin movimiento porque no hay vehículos, no hay objetos animados presentes en ese momento.
Entonces, en lugar de hornear información estática (que también tomaría mucho tiempo y espacio de almacenamiento dada la escala de nuestro mapa mundial), queremos calcularla sobre la marcha, en tiempo de ejecución. De esa manera, también podemos calcularlo para la interacción con vehículos, abrir puentes, objetos animados, etc. Sin embargo, hay una trampa. Para un enfoque de cálculo de este tipo, solo tenemos datos que son visibles en la pantalla (recuerde "espacio de pantalla"), por lo que una vez que una parte del mundo del juego sale del marco visible, no se puede utilizar para la evaluación de la oclusión. Esta limitación crea varios artefactos, como la desaparición de la oclusión en una pared causada originalmente por un objeto que acaba de llegar detrás del borde de la pantalla y, por lo tanto, se vuelve invisible no solo para usted sino también para el algoritmo, por lo que dejó de contribuir al cálculo de la oclusión.
Ok, ahora sabemos qué evaluar (oclusión ambiental) y sabemos qué datos tenemos (lo que vemos en la pantalla). qué hacemos? Bueno, para cada píxel en la pantalla (¡eso es 2 millones de píxeles en resolución HD, cuatro veces (!) En una escala del 400%!) Nuestro código de sombreador necesita consultar el valor de z-buffer de sus píxeles circundantes tratando de obtener una noción de La forma geométrica del área que lo rodea. Solo podemos hacer un número limitado de estos "toques", ya que hay un costo de rendimiento cada vez mayor al aumentar el conteo de toques, esta es una operación que realmente está gravando el acelerador 3D. El límite en el número de tomas, a su vez, afecta la precisión de la oclusión ambiental (y en ciertas situaciones puede crear imprecisiones y bandas). Imagine que desea evaluar su entorno en una línea recta de 2 metros y está dispuesto a gastar 8 toques para aproximarlo. Usted consulta la línea cada 25 centímetros, y cualquier detalle más pequeño puede pasar desapercibido a menos que tenga suerte y le dé en el clavo (o desafortunado, porque puede pasarlo por alto el siguiente cuadro, por lo que el entorno parecería cambiar repentinamente entre ellos). marcos y causar parpadeo). Cuanto más sondas de su algoritmo, menos preciso será. Por lo tanto, debe limitar el tamaño de un área que analiza alrededor de cada píxel del juego, lo que a su vez limita qué tan lejos 've' el AO, es por eso que no es adecuado para calcular la oclusión en espacios grandes como debajo de los arcos de los puentes. porque puede pasarlo por alto el siguiente cuadro, por lo que el entorno parece cambiar repentinamente entre cuadros y causar parpadeo). Cuanto más sondas de su algoritmo, menos preciso será. Por lo tanto, debe limitar el tamaño de un área que analiza alrededor de cada píxel del juego, lo que a su vez limita qué tan lejos 've' el AO, es por eso que no es adecuado para calcular la oclusión en espacios grandes como debajo de los arcos de los puentes. porque puede pasarlo por alto el siguiente cuadro, por lo que el entorno parece cambiar repentinamente entre cuadros y causar parpadeo). Cuanto más sondas de su algoritmo, menos preciso será. Por lo tanto, debe limitar el tamaño de un área que analiza alrededor de cada píxel del juego, lo que a su vez limita qué tan lejos 've' el AO, es por eso que no es adecuado para calcular la oclusión en espacios grandes como debajo de los arcos de los puentes.
Hemos mencionado que la técnica de nuestra elección está basada en el horizonte. Esto significa que no estamos sondeando el entorno disparando rayos en el mundo 3D, sino que analizamos un hemisferio sobre / alrededor de cada píxel para ver qué tan lejos se abre hasta que se bloquea, cuánta luz deja entrar la geometría circundante usando el z-buffer como nuestro proxy. El hemisferio se aproxima en realidad por varias corridas a lo largo de una línea girada alrededor del píxel dado. Si podemos seguir todo este hemisferio, no hay oclusión. Si el algoritmo toca un valor en el búfer z que bloquearía la luz entrante, define el nivel de oclusión. El algoritmo está optimizado para el rendimiento, pero su limitación es que una vez que golpea algo, incluso posiblemente un objeto pequeño, deja de sondear más. Esto puede causar una "sobre oclusión" problema y puede verse como un artefacto visual cuando algún objeto relativamente delgado, como una señal de tráfico, causa una fuerte oclusión en una pared cercana. Puede intentar detectar objetos tan pequeños y omitirlos, lo que a su vez puede producir "bajo oclusión" en repisas finas. Hemos optado por lo primero.
También hay otra propiedad interesante y útil de las técnicas basadas en el horizonte. Dependiendo de cuánto está ocluido un hemisferio sobre un píxel dado, puede calcular la dirección que está menos ocluida. La cantidad de oclusión puede considerarse como un cono de helado con un ángulo de vértice variable orientado en esa dirección. Esta dirección se llama "doblado normal" y la usamos para varios cálculos de luz como para ocluir un reflejo en superficies brillantes. La idea es que si observa la superficie y la dirección reflejada en el espejo sale de este cono, consideramos que está ocluida (al menos parcialmente), reduciendo la intensidad de la reflexión. La mejor manera de ver ese efecto es mirar piezas de cromo más grandes y redondas, como los tanques de diesel, con SSAO encendido y apagado.
Como puede ver, la idea no es tan difícil, para un programador de gráficos experto de todos modos;), pero hay mucha computación involucrada, lo que ejerce bastante presión sobre el acelerador 3D. Por lo tanto, hemos creado varios perfiles de rendimiento, cada uno con una combinación de técnicas de optimización:
Usando menos toques por dirección: es más rápido pero permite que AO pierda objetos más grandes que con un muestreo más fino.
Reproyectar los resultados de AO del cuadro anterior: nos permite ocultar los artefactos del submuestreo, pero puede crear imágenes fantasma cuando falla la reproyección (cuando lo que ves entre cuadros cambia mucho).
Representación en media resolución: reduce el número de cálculos a 1/4 pero crea un AO menos fino; el resultado puede ser un sombreado ligeramente borroso
Esperamos que toda esta información sea interesante y útil para usted. Le enviaremos un alto virtual cinco si lee este artículo hasta este punto. ¡Te mereces una galleta y una gran taza de chocolate caliente! Si aún desea obtener más detalles sobre este tema, no dude en consultar, por ejemplo, este enlace .
Gracias por su tiempo y apoyo y nos veremos nuevamente en algunos de los próximos artículos de la sección "Under the Hood" que traemos para nuestro #BestCommunityEver de vez en cuando.
Link:
https://blog.scssoft.com/2020/07/under- ... -ssao.html