Share via


Recursos (Direct3D 10)

Un recurso es un área en memoria a la que puede acceder la canalización de Direct3D. Para que la canalización tenga acceso a la memoria de forma eficaz, los datos que se proporcionan a la canalización (como geometría de entrada, recursos de sombreador, texturas, etc.) deben almacenarse en un recurso. Hay dos tipos de recursos de los que derivan todos los recursos de Direct3D: un búfer o una textura. Se pueden activar hasta 128 recursos para cada fase de la canalización.

Normalmente, cada aplicación creará muchos recursos. Entre los ejemplos de recursos se incluyen los búferes de vértices, el búfer de índice, el búfer de constantes, las texturas y los recursos del sombreador. Hay varias opciones que determinan cómo se pueden usar los recursos. Puede crear recursos fuertemente tipados o con menos tipos; Puede controlar si los recursos tienen acceso de lectura y escritura; Puede hacer que los recursos sean accesibles solo para la CPU, la GPU o ambas. Naturalmente, habrá velocidad frente a equilibrio de funcionalidad: cuanto más funcionalidad permita que un recurso tenga, menos rendimiento debería esperar.

Dado que una aplicación suele usar muchas texturas, Direct3D también presenta el concepto de una matriz de texturas para simplificar la administración de texturas. Una matriz de texturas contiene una o varias texturas (todo el mismo tipo y dimensiones) que se pueden indexar desde dentro de una aplicación o mediante sombreadores. Las matrices de texturas permiten usar una sola interfaz con varios índices para acceder a muchas texturas. Puede crear tantas matrices de texturas para administrar diferentes tipos de texturas como necesite.

Una vez que haya creado los recursos que usará la aplicación, conecte o enlace cada recurso a las fases de canalización que las usarán. Esto se logra mediante una llamada a una API de enlace, que toma un puntero al recurso. Dado que más de una fase de canalización puede necesitar acceso al mismo recurso, Direct3D 10 presenta el concepto de una vista de recursos. Una vista identifica la parte de un recurso al que se puede acceder. Puede crear vistas m o un recurso y enlazarlas a n fases de canalización, suponiendo que siga las reglas de enlace para el recurso compartido (el tiempo de ejecución generará errores en tiempo de compilación si no lo hace).

Una vista de recursos proporciona un modelo general para el acceso a un recurso (texturas, búferes, etc.). Dado que puede usar una vista para indicar al entorno de ejecución qué datos acceder y cómo acceder a ellos, las vistas de recursos permiten crear menos recursos de tipo. Es decir, puede crear recursos para un tamaño determinado en tiempo de compilación y, a continuación, declarar el tipo de datos dentro del recurso cuando el recurso se enlaza a la canalización. Las vistas exponen muchas funcionalidades nuevas para usar recursos, como la capacidad de leer superficies de profundidad y galería de símbolos en el sombreador, generar mapas de cubo dinámicos en un solo paso y representarse simultáneamente en varios segmentos de un volumen.

Para obtener más información sobre los tipos de recursos básicos, las matrices de texturas y cómo crear y usar recursos, consulte estos otros temas:

Guía de programación para Direct3D 10