|
楼主 |
发表于 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。 |
|