UE4 —— HLSL 纹理采样小贴士

1,042 阅读1分钟

软件

虚幻引擎 4.26

自定义节点采样纹理

当使用 HLSL 自定义节点 采样纹理时, UE4 TextureObject 的输入名称,会自动生成一个采样对象,名为:

<您的 TextureObject 名称> sampler

例如,如果你将 TextureObject 输入命名为 tex_in ,那么可用的采样器将被命名为 tex_insampler

所以采样纹理的代码如下:

Texture2DSample(tex_in, tex_inSampler, coords);

示例

下面是一个简单的 u-blur 自定义节点代码示例,包含 4 个节点输入:

  1. tex_inTextureObject
  2. coordsfloat2
  3. sizefloat
  4. samplefloat
int blur_samples = int(samples * 0.5f);
float3 col = 0.0f;
float2 sample_coords = 0.0f;
for (int i = -blur_samples; i < blur_samples; i ++)
{	
	sample_coords.x = i * (size / blur_samples * 2);
	col += Texture2DSample(tex_in, tex_inSampler, coords + sample_coords ) / (blur_samples * 2);
}
return col;

上面的代码可以直接在 Custom 节点的 code 字段中输入 或者从外部 .usf 文件加载不是定义 Shader 插件,而是定义 Shader 模块(Module)】。

6b97f6e0320d4dedb59c202399d53c52_tplv-k3u1fbpfcp-watermark.png