SampleLevel (oggetto Texture DirectX HLSL)
Esempi di una trama usando un offset a livello di mipmap.
<Modello Type> Object.SampleLevel( sampler_state S, float Location, float LOD [, int Offset] );
Questa funzione è simile a Sample , ad eccezione del fatto che usa il livello LOD (nell'ultimo componente del parametro location) per scegliere il livello mipmap. Ad esempio, una trama 2D usa i primi due componenti per le coordinate uv e il terzo componente per il livello mipmap.
Parametri
Elemento | Descrizione | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Oggetto |
Qualsiasi tipo di oggetto trama (ad eccezione di Texture2DMS e Texture2DMSArray). |
||||||||||
S |
[in] Stato di Sampler. Si tratta di un oggetto dichiarato in un file di effetto che contiene assegnazioni di stato. |
||||||||||
Posizione |
[in] Coordinate della trama. Il tipo di argomento dipende dal tipo di oggetto trama.
Se l'oggetto trama è una matrice, l'ultimo componente è l'indice della matrice. |
||||||||||
LOD |
[in] Numero che specifica il livello mipmap. Se il valore è = 0, viene usato il valore zero'th (mappa più grande). Il valore frazionaria (se specificato) viene usato per interpolare tra due livelli di mipmap. |
||||||||||
Compensare |
[in] Offset di coordinate di trama facoltativo, che può essere usato per qualsiasi tipo di oggetto trama; l'offset viene applicato alla posizione prima del campionamento. Gli offset di trama devono essere statici. Il tipo di argomento dipende dal tipo di oggetto trama. Per altre informazioni, vedere Applicazione degli offset delle coordinate della trama.
|
Valore restituito
Tipo di modello della trama, che può essere un vettore a singolo componente o a più componenti. Il formato si basa sulla DXGI_FORMAT della trama.
Modello di shader minimo
Questa funzione è supportata nei modelli shader seguenti.
vs_4_0 | vs_4_1 | ps_4_0 | ps_4_1 | gs_4_0 | gs_4_1 |
---|---|---|---|---|---|
x | x | x | x | x | x |
- TextureCubeArray è disponibile in Shader Model 4.1 o versione successiva.
- Shader Model 4.1 è disponibile in Direct3D 10.1 o versione successiva.
Esempio
Questo esempio di codice parziale proviene dal file Instancing.fx nell'esempio Instancing10.
// Object Declarations
Texture1D g_txRandom;
SamplerState g_samPoint
{
Filter = MIN_MAG_MIP_POINT;
AddressU = Wrap;
AddressV = Wrap;
};
// Shader body calling the intrinsic function
float3 RandomDir(float fOffset)
{
float tCoord = (fOffset) / 300.0;
return g_txRandom.SampleLevel( g_samPoint, tCoord, 0 );
...