Función Sample(S,float,int,float,uint) (referencia de HLSL)

Muestra un Texture2D con un valor opcional para fijar los valores de nivel de detalle (LOD) de ejemplo en y devuelve el estado de la operación.

Nota

Requiere el modelo de sombreador 5 o superior.

 

Sintaxis

DXGI_FORMAT Sample(
  in  SamplerState S,
  in  float Location,
  in  int Offset,
  in  float Clamp,
  out uint Status
);

Parámetros

S [in]

Un estado sampler. Se trata de un objeto declarado en un archivo de efectos que contiene asignaciones de estado.

Ubicación [in]

Las coordenadas de textura. El tipo de argumento depende del tipo de objeto de textura.

tipo de Texture-Object Tipo de parámetro
Texture1D FLOAT
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4

 

Desplazamiento [in]

Un desplazamiento de coordenadas de textura opcional, que se puede usar para cualquier tipo de objeto de textura; el desplazamiento se aplica a la ubicación antes del muestreo. Los desplazamientos de textura deben ser estáticos. El tipo de argumento depende del tipo de objeto de textura. Para obtener más información, consulta Aplicación de desplazamientos de coordenadas de textura.

tipo de Texture-Object Tipo de parámetro
Texture1D, Texture1DArray int
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray no admitido

 

Abrazadera [in]

Valor opcional al que se van a fijar los valores de LOD de ejemplo. Por ejemplo, si pasa 2.0f para el valor de abrazadera, asegúrese de que ninguna muestra individual tenga acceso a un nivel mip inferior a 2.0f.

Estado [out]

Estado de la operación. No se puede acceder al estado directamente; en su lugar, pase el estado a la función intrínseca CheckAccessFullyMapped . CheckAccessFullyMapped devuelve TRUE si todos los valores de la operación Sample, Gather o Load correspondiente a la que se ha accedido a los iconos asignados en un recurso en mosaico. Si se han tomado valores de un icono no asignado, CheckAccessFullyMapped devuelve FALSE.

Valor devuelto

Formato de textura, que es uno de los valores con tipo enumerados en DXGI_FORMAT.

Comentarios

El muestreo de textura usa la posición de textura para buscar un valor de textura. Se puede aplicar un desplazamiento a la posición antes de la búsqueda. El estado del muestreador contiene las opciones de muestreo y filtrado. Este método se puede invocar dentro de un sombreador de píxeles, pero no se admite en un sombreador de vértices ni en un sombreador de geometría.

Use un desplazamiento solo en un miplevel entero; de lo contrario, puede obtener resultados diferentes en función de la implementación de hardware o la configuración del controlador.

Cálculo de posiciones de elementos de textura

Las coordenadas de textura son valores de punto flotante que hacen referencia a datos de textura, lo que también se conoce como espacio de textura normalizado. Los modos de ajuste de direcciones se aplican en este orden (coordenadas de textura + desplazamientos + modo de ajuste) para modificar las coordenadas de textura fuera del intervalo [0...1].

En el caso de las matrices de texturas, un valor adicional en el parámetro location especifica un índice en una matriz de texturas. Este índice se trata como un valor float escalado (en lugar del espacio normalizado para las coordenadas de textura estándar). La conversión a un índice entero se realiza en el siguiente orden (float + round-to-nearest-even integer + clamp en el intervalo de matriz).

Aplicación de desplazamientos de coordenadas de textura

El parámetro offset modifica las coordenadas de textura, en el espacio de textura. Aunque las coordenadas de textura son números de punto flotante normalizados, el desplazamiento aplica un desplazamiento entero. Tenga en cuenta también que los desplazamientos de textura deben ser estáticos.

El formato de datos devuelto viene determinado por el formato de textura. Por ejemplo, si el recurso de textura se definió con el formato DXGI_FORMAT_A8B8G8R8_UNORM_SRGB, la operación de muestreo convierte los elementos de textura muestreados de gamma 2.0 a 1.0, filtro y escribe el resultado como un valor de punto flotante en el intervalo [0..1].

Consulte también

Métodos de ejemplo

Texture-Object