AMD RDNA2 y NVIDIA RTX admitirán DirectX 12 Ultimate

GeForce RTX y la próxima arquitectura de gráficos de AMD que impulsará el futuro de los juegos de PC y consola, admitirán la nueva DirectX 12 Ultimate API que Microsoft anunció hoy. Básicamente, DX Ultimate significa compatibilidad con DirectX Raytracing, sombreado de velocidad variable, sombreadores de malla y retroalimentación de muestra.

DirectX 12 Ultimate impulsará la próxima generación de juegos y permitirá un nuevo nivel de realismo con cuatro características clave: DirectX Raytracing (DXR), Variable Rate Shading (VRS), Mesh Shaders y Sampler Feedback, y AMD trabajó estrechamente con Microsoft para ofrecer experiencias impresionantes con gráficos basados ​​en RDNA 2. AMD y NVIDIA colaboraron con Microsoft en el diseño de DXR 1.1, una actualización de DXR que puede ofrecer una mejor eficiencia y rendimiento en muchos efectos de trazado de rayos. Con DirectX 12 Ultimate, se espera que los efectos avanzados como el trazado de rayos lleguen a más juegos antes, y facilita la vida de los desarrolladores al permitirles crear juegos usando la misma API de gráficos y arquitectura de gráficos comunes para PC y consolas.

Game Stack de Microsoft existe para brindar a los desarrolladores las herramientas que necesitan para crear experiencias de juego audaces e inmersivas, y DX12 Ultimate es la herramienta ideal para amplificar gráficos de juegos. DX12 Ultimate es el resultado de una inversión continua en la plataforma DirectX 12 realizada durante los últimos cinco años para garantizar que Xbox y Windows 10 permanezcan en el pináculo de la tecnología gráfica. Para potenciar aún más a los desarrolladores de juegos para crear juegos con imágenes impresionantes, hemos mejorado las características que ya están comenzando a transformar los juegos, como DirectX Raytracing y Variable Rate Shading, y hemos agregado nuevas características importantes como Mesh Shaders y Sampler Feedback. Juntas, estas características representan muchos años de innovación de Microsoft y nuestros socios en la industria del hardware. DX12 Ultimate los reúne a todos en un paquete común, proporcionando a los desarrolladores una sola clave para desbloquear gráficos de próxima generación en PC y Xbox Series X. Por supuesto, incluso las funciones más potentes tienen un uso limitado sin las herramientas necesarias para explotarlas por completo, Por lo tanto, nos complace anunciar que nuestra herramienta de optimización de gráficos PIX líder en la industria y nuestro compilador HLSL de código abierto proporcionará a los desarrolladores de juegos la capacidad de exprimir hasta la última gota de rendimiento de todo un ecosistema de hardware DX12 Ultimate.

DirectX Raytracing 1.1

DirectX Raytracing (DXR) aporta un nuevo nivel de realismo gráfico a los videojuegos, que anteriormente solo se podía lograr en la industria del cine. Los efectos alcanzables por DXR se sienten más reales, porque en cierto sentido son más reales: DXR traza caminos de luz con cálculos físicos reales, que es una simulación mucho más precisa que los cálculos basados ​​en heurística utilizados anteriormente. Ya hemos visto un nivel de calidad visual sin precedentes en los títulos que usan DXR 1.0 desde que lo presentamos, y creamos DXR 1.1 en respuesta a los comentarios de los desarrolladores, dándoles aún más herramientas para utilizar DXR. DXR 1.1 es una adición incremental sobre la parte superior de DXR 1.0, que agrega tres nuevas capacidades principales:

• GPU Work Creation ahora permite Raytracing. Esto permite que los sombreadores en la GPU invoquen el trazado de rayos sin un viaje de ida y vuelta a la CPU. Esta capacidad es útil para escenarios de trazado de rayos adaptativos, como la selección / clasificación / refinamiento basado en sombreadores. Básicamente, los escenarios que preparan el trazado de rayos funcionan en la GPU y luego lo generan inmediatamente.
• Los motores de transmisión pueden cargar de manera más eficiente nuevos sombreadores de trazado de rayos según sea necesario cuando el jugador se mueve alrededor del mundo y se hacen visibles nuevos objetos.
• El trazado de rayos en línea es una forma alternativa de trazado de rayos que ofrece a los desarrolladores la opción de impulsar más el proceso de trazado de rayos, en lugar de manejar la programación del trabajo completamente en el sistema (sombreado dinámico). Está disponible en cualquier etapa de sombreado, incluidos sombreadores de cálculo, sombreadores de píxeles, etc. Tanto el sombreado dinámico como las formas en línea de trazado de rayos utilizan las mismas estructuras de aceleración opacas.

Cuándo usar el trazado de rayos en línea? El trazado de rayos en línea puede ser útil por muchas razones:

• Quizás el desarrollador sabe que su escenario es lo suficientemente simple como para que la sobrecarga de la programación dinámica del sombreador no valga la pena. Por ejemplo, una forma bien restringida de calcular sombras.
• Podría ser conveniente / eficiente consultar una estructura de aceleración desde un sombreador que no admite rayos basados ​​en sombreadores dinámicos. Como un sombreador de cómputo o sombreador de píxeles.
• Puede ser útil combinar el trazado de rayos basado en sombreador dinámico con la forma en línea. Algunas etapas de sombreado de trazado de rayos, como los sombreadores de intersección y los sombreadores de impacto, ni siquiera admiten rayos de trazado a través del trazado de rayos basado en sombreadores dinámicos. Pero el formulario en línea está disponible en todas partes.
• Otra combinación es cambiar a la forma en línea para rayos recursivos simples. Esto permite que la aplicación declare que no hay recurrencia para la tubería de trazado de rayos subyacente, dado que el trazado de rayos en línea está manejando rayos recursivos. La carga de programación dinámica más simple en el sistema puede producir una mejor eficiencia.

Los escenarios con muchos sombreadores complejos funcionarán mejor con el trazado de rayos basado en sombreadores dinámicos, en lugar de utilizar súper sombreadores de trazado de rayos en línea masivos. Mientras tanto, los escenarios que tienen una complejidad de sombreado mínima y / o muy pocos sombreadores funcionarán mejor con el trazado de rayos en línea. Si todo lo anterior parece bastante complicado, bueno, ¡lo es! La conclusión de alto nivel es que tanto el nuevo trazado de rayos en línea como el trazado de rayos basado en sombreadores dinámicos originales son valiosos para diferentes propósitos. A partir de DXR 1.1, los desarrolladores no solo tienen la opción de cualquiera de los enfoques, sino que incluso pueden combinarlos en un solo procesador. Los enfoques híbridos se ven favorecidos por el hecho de que ambos sabores del trazado de rayos DXR comparten el mismo formato de estructura de aceleración y son impulsados ​​por la misma máquina de estado transversal subyacente. Lo mejor de todo es que los jugadores con hardware DX12 Ultimate pueden estar seguros de que, sin importar qué tipo de solución Raytracing elija el desarrollador, tendrán una gran experiencia.

Variable Rate Shading

El sombreado de velocidad variable (VRS) permite a los desarrolladores variar selectivamente la velocidad de sombreado de un juego. Esto les permite ‘aumentar’ la potencia de la GPU en partes más importantes del juego para obtener mejores imágenes y ‘recuperar’ la potencia de la GPU en áreas menos importantes de un juego para una mejor velocidad. El sombreado de tasa variable también tiene la ventaja de tener un costo relativamente bajo de implementación para los desarrolladores.

Sampler Feedback

Sampler Feedback permite una mejor calidad visual, menor tiempo de carga y menos tartamudeo al proporcionar información detallada para que los desarrolladores solo puedan cargar texturas cuando sea necesario. Supongamos que eres un desarrollador de juegos que sombrea una complicada escena 3D. La cámara se mueve rápidamente por toda la escena, lo que hace que algunos objetos se muevan a diferentes niveles de detalle. Dado que necesita optimizar agresivamente la memoria, vincula los recursos para hacer frente a la demanda de diferentes LOD. Quizás use un sistema de transmisión de texturas; tal vez use recursos en mosaico para mantener a esos gigantescos 4K mip 0s no residentes si no los necesita. De todos modos, tiene un sombreador que muestrea una textura comprimida utilizando un patrón de muestreo muy complicado.

El muestreo en este sombreador te hace hacer algunas preguntas. ¿Qué nivel de mipmap se probó finalmente? Parece una pregunta muy básica. En un mundo anterior a Sampler Feedback no hay una manera fácil de saberlo. Podrías improvisar una heurística. Puede pensar en el patrón de muestreo y hacer algunas conjeturas. Pero 1) no tienes tiempo para eso, y 2) no hay forma de que sea 100% confiable. ¿Dónde exactamente en el recurso se muestreó? Más específicamente, lo que realmente necesita saber es: ¿qué mosaicos? Podría estar en la esquina superior izquierda o justo en el medio de la textura. Su sistema de transmisión realmente se beneficiaría de esto para que sepa qué mips cargar a continuación.

La retroalimentación de muestra resuelve esto al permitir que un sombreador consulte eficientemente qué parte de una textura habría sido necesaria para satisfacer una solicitud de muestreo, sin llevar a cabo realmente la operación de muestra. Esta información puede luego retroalimentarse al sistema de transmisión de activos del juego, lo que le permite tomar decisiones más inteligentes y precisas sobre qué datos transmitir a continuación. Junto con la función de recursos en mosaico D3D12, esto permite que los juegos muestren texturas más grandes y detalladas mientras usan menos memoria de video. La retroalimentación de muestra también permite el sombreado del espacio de textura (TSS), una técnica de representación que desacopla el sombreado de un objeto en el espacio mundial desde la rasterización de la forma de ese objeto hasta el objetivo final.

TSS es una técnica que permite a los desarrolladores de juegos realizar costosos cálculos de iluminación en el espacio de objetos y escribirlos en una textura, por ejemplo, algo que parece un desenvolvimiento UVW del objeto. Dado que no se rasteriza nada, el sombreado se puede hacer usando cómputo, sin la tubería gráfica en absoluto. Luego, en un paso separado, une la textura y rasteriza al espacio de la pantalla, realizando una muestra simple muerta. Este enfoque reduce el alias y permite calcular la iluminación con menos frecuencia que la rasterización. Desacoplar estas dos velocidades permite el uso de técnicas de iluminación más sofisticadas a velocidades de cuadro más altas. Un obstáculo para que TSS funcione bien es descubrir qué hay en el espacio del objeto para sombrear para cada objeto. ¿Todo? Eso sería apenas eficiente. ¿Qué sucede si solo se ve el lado izquierdo de un objeto? Con el poder de la retroalimentación del muestreador, el paso de rasterización puede simplemente registrar qué texels se solicitan y solo realizar el costoso cálculo de iluminación de la aplicación en esos.

Mesh Shaders

Los sombreadores de malla ofrecen a los desarrolladores más capacidad de programación que nunca. Al llevar toda la potencia del cómputo de GPU generalizado a la tubería de geometría, los sombreadores de malla permiten a los desarrolladores construir mundos más detallados y dinámicos que nunca. Antes del sombreador de malla, la tubería de geometría de la GPU ocultaba la naturaleza paralela de la ejecución del hardware de la GPU detrás de una abstracción de programación simplificada que solo daba a los desarrolladores acceso a funciones de sombreador aparentemente lineales. Por ejemplo, el desarrollador escribe una función de sombreador de vértices que se llama una vez para cada vértice en un modelo, lo que implica la ejecución en serie. Sin embargo, detrás de escena, el hardware empaqueta vértices adyacentes para llenar una onda SIMD, luego ejecuta 32 o 64 funciones de sombreador de vértices en paralelo en un solo núcleo de sombreador. Este modelo ha funcionado extremadamente bien durante muchos años, pero deja el rendimiento y la flexibilidad sobre la mesa al ocultar los detalles de lo que el hardware realmente está haciendo de los desarrolladores.

Los sombreadores de malla cambian esto al hacer que el procesamiento de geometría se comporte más como sombreadores de cómputo. En lugar de una sola función que sombrea un vértice o una primitiva, los sombreadores de malla operan en todo un grupo de subprocesos de cómputo, con acceso a la memoria compartida del grupo y características de cómputo avanzadas como intrínsecas de onda transversal que proporcionan un control aún más preciso sobre el hardware real ejecución. Todos estos hilos trabajan juntos para sombrear una pequeña lista de triángulos indexados, llamada ‘meshlet’. Por lo general, habrá una fase del sombreador de malla donde cada subproceso está trabajando en un vértice separado, luego otra fase donde cada subproceso funciona en una primitiva separada, pero este modelo es completamente flexible y permite compartir datos entre subprocesos, nuevos vértices o primitivas creado según sea necesario, primitivas existentes recortadas o descartadas, etc. Junto con esta nueva flexibilidad de asignación de hilos viene una flexibilidad de formatos de datos de entrada.

El sombreador de malla ya no usa el bloque Ensamblador de entrada, que anteriormente era responsable de recuperar datos de índice y vértice de la memoria. En cambio, el código del sombreador es libre de leer cualquier información que se necesite desde cualquier formato que desee. Esto permite nuevas técnicas novedosas, como la compresión del búfer de índice o el uso de múltiples búferes de índice diferentes para diferentes canales de datos de vértices. Dichos enfoques pueden reducir el uso de memoria y también el ancho de banda de memoria utilizado durante el renderizado, lo que aumenta el rendimiento. Los sombreadores de amplificación son especialmente útiles para el sacrificio, ya que pueden determinar qué mallas son visibles, probando cada conjunto de entre 32-256 triángulos contra un volumen de delimitación geométrica, cono normal o técnicas más avanzadas como los planos de visibilidad del portal, antes de decidir si lanzar un grupo de hilos de sombreador de malla para esa malla. Anteriormente, el sacrificio se realizaba típicamente en un nivel más grueso por malla para decidir si dibujar un objeto, y también en un nivel más fino por triángulo al final de la tubería de geometría. Este nuevo nivel intermedio de eliminación mejora el rendimiento al dibujar modelos que están parcialmente ocluidos. Por ejemplo, si parte de un personaje está en la pantalla mientras que solo un brazo no lo está, un sombreador de amplificación puede eliminar ese brazo completo después de mucho menos cálculo del que hubiera requerido para sombrear todos los triángulos dentro de él.

Junto con esta nueva flexibilidad de asignación de hilos viene una flexibilidad de formatos de datos de entrada. El sombreador de malla ya no usa el bloque Ensamblador de entrada, que anteriormente era responsable de recuperar datos de índice y vértice de la memoria. En cambio, el código del sombreador es libre de leer cualquier información que se necesite desde cualquier formato que desee. Esto permite nuevas técnicas novedosas, como la compresión del búfer de índice o el uso de múltiples búferes de índice diferentes para diferentes canales de datos de vértices. Dichos enfoques pueden reducir el uso de memoria y también el ancho de banda de memoria utilizado durante el renderizado, lo que aumenta el rendimiento.

Aunque es más flexible que la tubería de geometría anterior, el modelo de sombreador de malla también es mucho más simple:

Junto con el sombreador de malla viene una nueva etapa opcional de sombreador llamada Amplificador de sombreado. Esto se ejecuta antes del sombreador de mallas, ejecuta algunos cálculos, determina cuántos grupos de hilos del sombreador de mallas se necesitan y luego inicia esa cantidad de sombreadores de mallas:

Los sombreadores de amplificación son especialmente útiles para el sacrificio, ya que pueden determinar qué mallas son visibles, probando cada conjunto de entre 32-256 triángulos contra un volumen de delimitación geométrica, cono normal o técnicas más avanzadas como los planos de visibilidad del portal, antes de decidir si lanzar un grupo de hilos de sombreador de malla para esa malla. Anteriormente, el sacrificio se realizaba típicamente en un nivel más grueso por malla para decidir si dibujar un objeto, y también en un nivel más fino por triángulo al final de la tubería de geometría. Este nuevo nivel intermedio de eliminación mejora el rendimiento al dibujar modelos que están parcialmente ocluidos. Por ejemplo, si parte de un personaje está en la pantalla mientras que solo un brazo no lo está, un sombreador de amplificación puede eliminar ese brazo completo después de mucho menos cálculo del que hubiera requerido para sombrear todos los triángulos dentro de él.

4 respuestas a «AMD RDNA2 y NVIDIA RTX admitirán DirectX 12 Ultimate»

    1. que sea un estandar que todos los AAA tengan que llevar en un futuro, si,
      pero que sea obligatorio tenerlo activo siempre na sera otra de las muchas opciones que hay en configuracion de video de los games y ya…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *