Load (DirectX HLSL テクスチャー オブジェクト)
フィルタリングやサンプリングを行わず、テクセル データを読み取ります。
ret Object.Load( int Location [, int Offset] [, int SampleIndex ] ); |
---|
パラメーター
Object
テクスチャー オブジェクト型 (TextureCube または TextureCubeArray を除く)。Location
[in] テクスチャー座標。最後の成分は、ミップマップ レベルを指定します。引数の型は、テクスチャー オブジェクトの型によって異なります。オブジェクトの種類 パラメーター型 Buffer、Texture1D、Texture2DMS int2 Texture1DArray、Texture 2D、Texture2DMSArray int3 Texture2DArray、Texture3D int4 たとえば、2D テクスチャーにアクセスするには、最初の 2 つの成分に UV 座標を指定し、3 つめの成分にミップマップ レベルを指定します。
Offset
[in] サンプリングの前にテクスチャー座標に対して適用されるオフセット (省略可能)。オフセットの型は、テクスチャー オブジェクトの型によって異なります。テクスチャーの型 パラメーター型 Texture1D、Texture1DArray int Texture2D、Texture2DArray、Texture2DMS、Texture2DMSArray int2 Texture3D、Texture2DArray int3 SampleIndex
[in] オプションのサンプリング インデックス。テクスチャーの型 パラメーター型 Texture1D、Texture1DArray、Texture2D、Texture2DArray、Texture3D、Texture2DArray、TextureCube、TextureCubeArray サポートなし Texture2DMS、Texture2DMSArray1 int
戻り値
戻り型は、Object 宣言内の型と一致します。このメソッドは、0.0-1.0 UV 系ではなく、0 から始まる座標系を使用します。そのため、返されるデータは、0 ~ 1 の範囲内に限定されることはありません。下記の例では、戻り型が float4 で、バッファー オブジェクト宣言と一致しています。
最低限必要なシェーダー モデル
この関数は、次のシェーダー モデルでサポートされています。
vs_4_0 | vs_4_11 | ps_4_0 | ps_4_11 | gs_4_0 | gs_4_11 |
---|---|---|---|---|---|
x | x | x | x | x | x |
- シェーダー モデル 4.1 は、Direct3D 10.1 以降に実装されています。
例
次のコード例は、「AdvancedParticles サンプル」の Paint.fx ファイルから抜粋したものです。
// Object Declarations Buffer<float4> g_ParticleBuffer; // Shader body calling the intrinsic function float4 PSPaint(PSQuadIn input) : SV_Target { ... for( int i=g_ParticleStart; i<g_NumParticles; i+=g_ParticleStep ) { ... // load the particle float4 particlePos = g_ParticleBuffer.Load( i*4 ); float4 particleColor = g_ParticleBuffer.Load( (i*4) + 2 ); ... } ... }