星鸿阁

 找回密码
 立即注册
搜索
热搜: 活动 交友 动画
查看: 1002|回复: 2

虚幻引擎 4 自定义着色器教程 高斯模糊

[复制链接]

2250

主题

2760

帖子

9610

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9610
发表于 2022-7-7 11:16:08 | 显示全部楼层 |阅读模式
回复

使用道具 举报

2250

主题

2760

帖子

9610

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9610
 楼主| 发表于 2022-7-7 19:55:32 | 显示全部楼层
使用 SceneTextureLookup 函数
首先,参数有什么作用?这是签名SceneTextureLookup():

float4 SceneTextureLookup (float2 UV, int SceneTextureIndex, bool Filtered)

以下是每个参数的作用:

UV:要从中采样的 UV 位置。例如,(0.5, 0.5)的 UV将对中间像素进行采样。
SceneTextureIndex:这将确定要从哪个场景纹理中采样。您可以在下面找到每个场景纹理及其索引的表格。例如,要对Post Process Input 0进行采样,您将使用14作为索引。
Filtered:场景纹理是否应该使用双线性过滤。通常设置为false。
虚幻引擎着色器

要进行测试,您将输出 World Normal。转到材质编辑器并创建一个名为Gaussian Blur的自定义节点。然后,在代码字段中输入以下内容:

返回 SceneTextureLookup ( GetDefaultSceneTextureUV (Parameters, 8 ), 8 , false );

这将输出当前像素的世界法线。GetDefaultSceneTextureUV()将获得当前像素的 UV。

注意:在 4.19 之前,您可以通过提供TextureCoordinate节点作为输入来获取 UV。在 4.19 中,正确的方法是使用GetDefaultSceneTextureUV()和提供您想要的索引。
这是自定义 HLSL 如何在 Unreal 版本之间中断的示例。

接下来,断开SceneTexture节点。然后,将Gaussian Blur连接到Emissive Color并单击Apply。
回复

使用道具 举报

2250

主题

2760

帖子

9610

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9610
 楼主| 发表于 2022-7-10 13:07:09 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|starfluidga

GMT+8, 2025-1-2 07:01 , Processed in 0.015881 second(s), 21 queries .

Made by Liga 星鸿阁

Copyright © 2020-2048, LigaStudio.

快速回复 返回顶部 返回列表