Compartir a través de


Recursos

Un recurso es un área en memoria a la que puede acceder la canalización de Direct3D. Para que la canalización pueda acceder a la memoria de forma eficiente, los datos que se proporcionan a la canalización (por ejemplo, geometría de entrada, recursos del sombreador y texturas) 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. Algunos ejemplos de recursos son: búferes de vértices, búfer de índice, búfer de constantes, texturas y recursos del sombreador. Hay varias opciones que determinan cómo se pueden usar los recursos. Puede crear recursos fuertemente tipados o con un tipo menor; 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 ambos. Naturalmente, habrá velocidad frente a la ventaja de la 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 tiene 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 textura como necesite.

Una vez que haya creado los recursos que usará la aplicación, se conectará o enlazará 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 tiene 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 (como texturas o búferes). Dado que puede usar una vista para indicar al runtime a 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 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 representar simultáneamente en varios segmentos de un volumen.

En esta sección

Tema Descripción

Tipos de recursos

Los distintos tipos de recursos tienen un diseño distinto (o superficie de memoria). Todos los recursos usados por la canalización de Direct3D derivan de dos tipos de recursos básicos: búferes y texturas. Un búfer es una colección de datos sin procesar (elementos); una textura es una colección de elementos de textura (elementos de textura).

Elección de un recurso

Un recurso es una colección de datos que usa la canalización 3D. La creación de recursos y la definición de su comportamiento es el primer paso para programar la aplicación. En esta guía se describen los temas básicos para elegir los recursos necesarios para la aplicación.

Copia y acceso a datos de recursos

Las marcas de uso indican cómo la aplicación pretende usar los datos de recursos para colocar los recursos en el área de memoria más eficaz posible. Los datos de recursos se copian entre recursos para que la CPU o la GPU puedan acceder a ellos sin afectar al rendimiento.

Vistas de textura

En Direct3D, se accede a los recursos de textura con una vista, que es un mecanismo para la interpretación de hardware de un recurso en memoria. Una vista permite que una fase de canalización determinada acceda solo a los subrecursos que necesita, en la representación deseada por la aplicación.

 

Sistemas de coordenadas

Guía de aprendizaje de gráficos de Direct3D

Reglas de punto flotante

Conversión de tipos de datos