Compartir a través de


Características de Direct3D 10.1

Direct3D 10.1 amplía el conjunto de características de Direct3D 10.0 con las siguientes características nuevas:

  • Modos de mezcla: modos de mezcla independientes por destino de representación mediante la nueva interfaz de estado de mezcla (vea Interfaz ID3D10BlendState1). Las operaciones de mezcla de origen dual están restringidas a representar la ranura de destino 0; es posible que no escriba en otras salidas o que tenga destinos de representación enlazados a ranuras distintas de la ranura 0.

  • Comportamiento de selección: las caras de área cero se seleccionan automáticamente; esto solo afecta a la representación de tramas de alambres.

  • Reglas de punto flotante: se han ajustado las mismas reglas IEEE-754 para las operaciones de punto flotante EXCEPT de 32 bits para generar un resultado dentro de 0,5 unidades del último puesto (0,5 ULP) del resultado infinito preciso. Esto se aplica a la suma, la resta y la multiplicación. (precisión de 0,5 ULP para multiplicar, 1,0 ULP para recíprocos).

  • Formatos: la precisión de la mezcla float16 ha aumentado a 0,5 ULP. La combinación también es necesaria para los formatos UNORM16/SNORM16/SNORM8.

  • Suavizado de contorno de la muestra múltiple: Las muestras múltiples se ha mejorado para generalizar la transparencia basada en la cobertura y hacer que el muestreo múltiple funcione de forma más eficaz con la representación de varios pasos. Para lograr esto, todas las semánticas de varias muestras se definen como si el sombreador de píxeles siempre se ejecutase una vez por muestra (frecuencia de ejemplo), calculando un color independiente por muestra. Si un sombreador de píxeles no usa ningún atributo por muestra, calculará el mismo valor para cada muestra cubierta en un píxel. En ese caso, es equivalente al hardware que ejecuta el sombreador una vez por píxel (frecuencia de píxel), replicando el resultado en todas las muestras cubiertas. Naturalmente, la ejecución con frecuencia de píxeles siempre produce los mismos resultados que ejecutar el mismo sombreador con frecuencia de muestra, cuando los atributos se muestren con una frecuencia de píxeles. La estadística de canalización PSInvocations se incrementa con frecuencia de muestra a menos que el sombreador se ejecute con frecuencia de píxeles.

  • Ancho de banda de fase de canalización: aumento de la cantidad de datos que se pueden pasar entre las fases del sombreador:

    Resource Límites
    Registros entre fases de sombreador 32 (32 bits x 4 componentes)
    Registros de entrada del sombreador de vértices 32
    Ranuras de entrada del ensamblador de entrada 32

     

  • Reglas de rasterización: las reglas de rasterización han cambiado para las líneas, además, se ha agregado una nueva funcionalidad.

    • MultisampleEnable solo afecta a la rasterización de líneas (los puntos y triángulos no se ven afectados) y se usa para elegir un algoritmo de dibujo de líneas. Esto significa que ya no se admite la rasterización de varios ejemplos de Direct3D 10.
    • Nueva ejecución del sombreador de píxeles de frecuencia de muestra con rasterización primitiva.
  • Recursos: CopyResource está habilitado en dos nuevos escenarios:

    • Las superficies MSAA de color y profundidad y galería de símbolos ahora se pueden usar con CopyResource como origen o destino.
    • Conversión de formato al copiar entre determinados recursos preestructurados de 32/64/128 bits, recursos tipados y representaciones comprimidas de los mismos anchos de bits.
  • Muestreo de texturas: las instrucciones sample_c y sample_c_lz se definen para que funcionen con Texture2DArrays y TextureCubeArrays, use el miembro Location (el componente alfa) para especificar un índice de matriz.

  • Vistas: TextureCube y TextureCubeArray (consulte D3D10_TEXCUBE_ARRAY_SRV1) no son recursos reales, pero son nuevas vistas en un recurso Texture2DArray. Cree una vista de recursos a partir de un recurso Texture2DArray con una nueva marca de uso (D3D10_RESOURCE_MISC_TEXTURECUBE), use la nueva interfaz ID3D10ShaderResourceView1 Interface para enlazar una vista de textura de cubo a la canalización.

Las nuevas características requieren un tipo de dispositivo 10.1 (vea ID3D10Device1 Interface) que se puede crear mediante una llamada aD3D10CreateDevice1, o bien puede crear el dispositivo y la cadena de intercambio al mismo tiempo llamando a D3D10CreateDeviceAndSwapChain1.

En Windows Vista Service Pack 1, los archivos DLL de Direct3D 10.0 y Direct3D 10.1 existen en paralelo en el sistema. Para acceder a las características 10.1, realice una de las siguientes acciones:

Acceso a las características 10.1 en Vista Gold y Vista Service Pack 1

Los desarrolladores que deseen admitir Vista Gold, así como SP1, tendrán que tener en cuenta la falta de las nuevas extensiones de API 10.1 en Vista Gold. DXUT y D3DX10 proporcionarán funciones útiles para crear el dispositivo adecuado, en función de los archivos DLL disponibles en el sistema y el hardware disponible (10.0 o 10.1). El dispositivo 10.1 es heredero del dispositivo 10.0 y se puede recuperar mediante QueryInterface(). Se recomienda que cada aplicación realice un seguimiento del tipo de dispositivo y mantenga un puntero al dispositivo 10.1 (si está disponible) para evitar llamadas frecuentes a QueryInterface cuando se desee la funcionalidad 10.1. Del mismo modo, donde las vistas de recursos 10.1 y los objetos de estado están asociados por la clase personalizada de una aplicación, se recomienda que la aplicación realice un seguimiento de si el objeto es un tipo 10.0 o 10.1 para evitar llamadas redundantes a QueryInterface(). D3DX10 incluye un conjunto de funciones de utilidad para simplificar este proceso (vea D3DX10CreateDevice y D3DX10CreateDeviceAndSwapChain).

Acceso exclusivo a las características de 10.1 en Vista Service Pack 1

Algunos desarrolladores pueden optar por requerir Vista Service Pack 1, que se distribuirá ampliamente a los usuarios finales e incluye una serie de mejoras fuera de Direct3D 10.1. Estos desarrolladores pueden usar exclusivamente los encabezados y las bibliotecas de Direct3D 10.1, dependiendo en exclusiva de los archivos DLL de Direct3D 10.1 que admiten hardware 10.0 y 10.1 (aunque algunas llamadas pueden producir errores en dispositivos 10.0 en los que no se admite la nueva funcionalidad).

Algunas notas adicionales:

  • Las API expuestas en D3DX10.dll aceptarán dispositivos 10.0 y 10.1 y aprovecharán la funcionalidad 10.1 cuando esté disponible.
  • D3D10SDKLayers.dll admite un dispositivo 10.1 y puede generar la depuración adecuada para las características 10.1.
  • D3D10Ref.dll implementa un dispositivo de software 10.0 y 10.1.
  • D3DX10 y FXC admiten el modelo de sombreador 10.1 actualizado con los siguientes destinos: vs_4_1, gs_4_1, ps_4_1 y fx_4_1 que se pueden enlazar a un dispositivo 10.1. Un dispositivo 10.1 admite los modelos de sombreadores 4.0 y 4.1.
  • El marco de efecto Direct3D 10.0 admite dispositivos 10.0 y 10.1, sin embargo, cualquier técnica que incluya sombreadores del modelo de sombreador 4.1 o las nuevas características 10.1 deben usar un dispositivo 10.1.

Guía de programación para Direct3D 10