软件
虚幻引擎 4.26
自定义节点采样纹理
当使用 HLSL 自定义节点 采样纹理时,
UE4 TextureObject
的输入名称,会自动生成一个采样对象,名为:
<您的 TextureObject
名称> sampler
例如,如果你将 TextureObject
输入命名为 tex_in
,那么可用的采样器将被命名为 tex_insampler
。
所以采样纹理的代码如下:
Texture2DSample(tex_in, tex_inSampler, coords);
示例
下面是一个简单的 u-blur 自定义节点代码示例,包含 4 个节点输入:
- tex_in –
TextureObject
- coords –
float2
- size –
float
- sample –
float
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)】。