HLSLにおけるTextureの操作関数
3189 ワード
最も一般的な関数はSample Sample(sampler_state S,float Location[,int Offset]);sampler_stateは外部のbufferからでもhlsl内定義でもよく、一般的には外部設定から共有することを選択します.Locationが挿入すべきものはuvデータであり,異なるピクチャタイプには異なるuvタイプがある.
offsetはオプションパラメータで、入力しないのはデフォルトの0,0です.
Texture-Object Type Parameter Type
Texture1D float
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4
offsetはオプションパラメータで、入力しないのはデフォルトの0,0です.
Texture-Object Type Parameter Type
Texture1D, Texture1DArray int
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray //not supported
// Object Declarations
Texture2D g_MeshTexture; // Color texture for mesh
SamplerState MeshTextureSampler
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Wrap;
AddressV = Wrap;
};
struct VS_OUTPUT
{
float4 Position : SV_POSITION; // vertex position
float4 Diffuse : COLOR0; // vertex diffuse color (note that COLOR0 is clamped from 0..1)
float2 TextureUV : TEXCOORD0; // vertex texture coords
};
VS_OUTPUT In;
// pixel shader
...
Output.RGBColor = g_MeshTexture.Sample(MeshTextureSampler, In.TextureUV) * In.Diffuse;