Compartir a través de


Novedades de la versión preliminar técnica de Direct3D 11 de noviembre de 2008

Esta versión de Direct3D 11 contiene nuevas características, herramientas y documentación.

Elemento Descripción
Teselación
Direct3D 11 proporciona fases de canalización adicionales para admitir la teselación en tiempo real de primitivos de orden alto. Con funcionalidades programables extensamente, esta característica permite muchos métodos diferentes para evaluar superficies de orden alto, incluidas las superficies de subdivisión mediante técnicas de aproximación, parches Bezier, teselación adaptable y asignación de desplazamiento. Esta característica solo estará disponible en el hardware de clase 11 de Direct3D, por lo que para evaluar esta característica tendrás que usar el rasterizador de referencia. Para obtener una demostración de teselación en acción, consulte el ejemplo SubD11 disponible a través del Explorador de muestras.
Sombreador de proceso
El sombreador de proceso es una fase adicional independiente de la canalización de Direct3D 11 que permite la computación de uso general en la GPU. Además de todas las características de sombreador proporcionadas por el núcleo del sombreador unificado, el sombreador de proceso también admite lecturas y escrituras dispersas en recursos a través de vistas de acceso desordenado, un grupo de memoria compartida dentro de un grupo de subprocesos de ejecución, primitivos de sincronización, operadores atómicos y muchas otras características avanzadas de paralelo de datos. En esta versión se ha habilitado una variante del sombreador de proceso de Direct3D 11 que puede funcionar en hardware de clase Direct3D 10. Por lo tanto, es posible desarrollar sombreadores de proceso en hardware real, pero se requiere un controlador actualizado. La funcionalidad completa del sombreador de proceso de Direct3D 11 está pensada para ser compatible con el hardware de la clase Direct3D 11, por lo que para evaluar la funcionalidad completa tendrás que usar el rasterizador de referencia hasta que este hardware esté disponible. Para obtener una demostración del sombreador de proceso en acción, consulte el ejemplo HDRToneMappingCS11 disponible a través del Explorador de muestras.
Representación multiproceso
La diferencia de API clave de Direct3D 10 en Direct3D 11 es la adición de contextos diferidos, lo que permite la ejecución escalable de comandos de Direct3D distribuidos a través de varios núcleos. Un contexto diferido captura y ensambla acciones como cambios de estado y envíos de dibujo que se pueden ejecutar en el dispositivo real más adelante. Mediante el uso de contextos diferidos en varios subprocesos, una aplicación puede distribuir la sobrecarga de CPU necesaria en el tiempo de ejecución de Direct3D11 y el controlador en varios núcleos, lo que permite un mejor uso de la configuración de la máquina del usuario final. Esta característica está disponible para su uso en el hardware actual de Direct3D 10, así como en el rasterizador de referencia. Para obtener una demostración del uso de la API, consulte el ejemplo MultithreadedRendering11 disponible a través del Explorador de muestras.
Vinculación dinámica del sombreador
Para abordar el problema de explosión combinatoria detectado en sombreadores especializados para el rendimiento, Direct3D 11 presenta una forma limitada de vinculación del sombreador en tiempo de ejecución que permite una especialización de sombreador casi óptima durante la ejecución de una aplicación. Esto se logra especificando las implementaciones de funciones específicas en el código del sombreador cuando el sombreador se asigna a la canalización, lo que permite al controlador inline inline instrucciones del sombreador nativo rápidamente en lugar de forzar al controlador a volver a compilar el lenguaje intermedio en instrucciones nativas con la nueva configuración. El desarrollo del sombreador se expone a través de la introducción de clases e interfaces a HLSL. Para ver una demostración, consulte el ejemplo De vinculación dinámica del sombreador 11 disponible a través del Explorador de muestras.
Rasterizador avanzado de Windows (WARP)
Disponible en este SDK a través de Direct3D 11 y finalmente también a través de Direct3D 10.1, WARP es un rasterizador de escalado rápido y de varios núcleos que es totalmente compatible con Direct3D 10.1. El uso de esta tecnología es tan sencillo como pasar la marca D3D_DRIVER_TYPE_WARP en la creación del dispositivo.
Direct3D 10 y Direct3D 11 en hardware de Direct3D 9 (nivel 9 D3D10)
Disponible en este SDK a través de Direct3D 11 y finalmente también a través de Direct3D 10.1, la API de Direct3D puede tener como destino la mayoría del hardware de Direct3D 9, así como direct3D 10, Direct3D 10.1 y direct3D 11 hardware. Esto se logra proporcionando el mecanismo de nivel de característica, que agrupa el hardware en seis categorías según la funcionalidad: 9_1, 9_2, 9_3, 10_0, 10_1 y 11_0. Una tarjeta solo cumple un nivel de característica si es totalmente compatible con ese nivel y cada nivel es un superconjunto estricto de los que están debajo. La funcionalidad se emula mínimamente para garantizar que no se encuentren acantilados de rendimiento inesperados. Por lo tanto, las características como los sombreadores de geometría no están disponibles para los destinos de nivel de Direct3D 9.
Archivos binarios en tiempo de ejecución
Todos los archivos binarios en tiempo de ejecución proporcionados en la versión preliminar técnica de Direct3D 11 que estarán disponibles en Windows 7 y Windows Vista SP1 se instalan con el SDK y se etiquetan como componentes "Beta" (es decir, D3D11_beta.DLL). Todos los componentes con etiqueta beta están bombardeados por tiempo. Para crear proyectos para evaluar estos nuevos componentes, debe vincular a sus bibliotecas de importación con etiqueta beta equivalentes (es decir, D3D11_beta.lib). Si tiene una copia PDC de Windows 7, los encabezados, bibliotecas y archivos pdf proporcionados en Windows SDK con la compilación son adecuados para el desarrollo mediante los componentes de Direct3D 11 que proporcionan Windows 7. Reserve el uso de los encabezados, libs y pdbs de este SDK para los componentes beta que se proporcionan en este documento.
D3DX11
D3DX11 admite actualmente la carga de texturas, la compilación del sombreador, la carga de datos y las funciones de subproceso de trabajo para recursos de Direct3D 11. En el futuro, este componente proporcionará más tecnologías disponibles en D3DX10. La funcionalidad de compilación del sombreador también se proporciona directamente a través del componente del compilador de Direct3D, que se describe a continuación.
Compilador HLSL y Direct3D
El compilador HLSL tiene varias características nuevas para admitir las nuevas tecnologías disponibles en Direct3D 11. Esto incluye la programación orientada a objetos a través de interfaces y clases, una sintaxis de indexación directa para cargas de recursos y la palabra clave "precisa" para garantizar que todas las operaciones realizadas con una variable específica cumplan las reglas de punto flotante estrictas. Casi todas las nuevas características lingüísticas tienen una funcionalidad válida en los destinos de sombreador existentes. Además de admitir todos los sombreadores Direct3D 9, Direct3D 10, Direct3D 10.1 y Direct3D 11, el compilador HLSL también admite los destinos especiales necesarios para escribir sombreadores para destinos de Direct3D 10 Level 9. El compilador D3D ahora es accesible directamente fuera de D3DX10 y D3DX11 a D3DCompiler.H y D3DCompiler.lib. Con estos nuevos archivos, no es necesario que una aplicación se vincule a D3DX con el fin de realizar la compilación en tiempo de ejecución, y no es necesario que una aplicación incluya el compilador si solo se necesita la funcionalidad D3DX.
Rasterizador de referencia D3D11
El rasterizador de referencia proporciona una implementación de rasterización estándar de oro para la evaluación de las características de Direct3D 11 que aún no están disponibles en el hardware. El rasterizador de referencia también se proporciona como una manera de comprobar la precisión de una implementación de hardware específica con el estándar de rasterización. El rasterizador de referencia está diseñado para la corrección, no para el rendimiento. Para crear un dispositivo de referencia, simplemente pase la marca D3D_DRIVER_TYPE_REFERENCE en la creación del dispositivo.
Capas del SDK de D3D11
Las capas del SDK de Direct3D11 proporcionan un mecanismo para realizar el seguimiento del funcionamiento del entorno de ejecución de Direct3D 11 durante el desarrollo. Actualmente, se usa para proporcionar información útil de depuración, que no solo incluye errores en el uso incorrecto, sino también advertencias que recomiendan el uso recomendado del tiempo de ejecución y, a menudo, proporciona información útil detallada y útil para la depuración. Se recomienda encarecidamente que la salida de depuración de las capas del SDK de D3D11 esté activada en todo momento durante el desarrollo y una aplicación no genere ningún resultado de depuración durante la ejecución antes de que se libere o se use con PIX para Windows para la generación de perfiles. Habilitar la capa de depuración es tan sencillo como pasar la marca D3D11_CREATE_DEVICE_DEBUG en el momento de la creación del dispositivo. Se recomienda encarecidamente a los desarrolladores que usen capas en compilaciones de depuración. Las capas no se recomiendan para su uso en las compilaciones de perfil o versión.
Nuevos ejemplos
Esta versión tiene cuatro ejemplos nuevos.
  • En el ejemplo Vinculación dinámica del sombreador 11 se muestra el uso de interfaces de sombreador modelo 5 y compatibilidad con Direct3D 11 para vincular métodos de interfaz de sombreador en tiempo de ejecución.
  • El ejemplo HDRToneMappingCS11 muestra cómo configurar y ejecutar el sombreador de proceso (CS para más adelante), que es una de las nuevas características más interesantes de Direct3D 11. Aunque la muestra solo utiliza el CS para implementar la asignación de tono HDR, el concepto debe extenderse fácilmente a otros algoritmos posteriores al procesamiento, así como cálculos más generales.
  • En el ejemplo MultithreadedRendering11 se muestra cómo dividir la representación entre varios subprocesos, con una sobrecarga muy baja.
  • El nuevo ejemplo SubD11 es muy similar al ejemplo SubD10 del SDK de DirectX, salvo que se ha mejorado para aprovechar tres nuevas fases de canalización de Direct3D 11: el sombreador de casco, el teselador y el sombreador de dominio.

Características introducidas en versiones anteriores