news 2026/5/8 16:47:49

2026年彩色阴影半影效果揭秘:编辑引擎着色器低成本实现,附对比截图与留言互动

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026年彩色阴影半影效果揭秘:编辑引擎着色器低成本实现,附对比截图与留言互动

彩色阴影半影效果揭秘:编辑引擎着色器轻松实现,附对比截图与留言互动

2026年5月2日,我在社交媒体帖子上看到Romain Durand实现的彩色半影或彩色阴影边界效果后,尝试实现并分享出来。Shahriar Shahrabi的Medium文章讲解了其中原理。

实现该效果有多种方法,我选择编辑引擎着色器,其优缺点如下:

  • 操作简单,无需像使用后期处理解决方案那样猜测光照或阴影对应值,在使用Lumen或昼夜循环时不会麻烦。
  • 适用于所有类型的灯光。
  • 实现成本极低。
  • 颜色饱和度只能全局配置,不能针对每个灯光或每个场景单独配置。
  • 该效果需要较宽的半影才能显现出来。
  • 此实现仅适用于动态灯光,不适用于烘焙灯光。

由于只是编辑引擎着色器,而不修改引擎本身,所以可以使用Launcher版本。我在之前关于编辑引擎着色器的帖子中详细介绍过,需阅读该帖子了解具体操作。

实现步骤

使用Substrate的情况

打开`Engine\Shaders\Private\Substrate\SubstrateDeferredLighting.ush`文件,在(UE 5.7版本中)第190行找到代码`float3 SpecularLuminance = BSDFEvaluate.IntegratedSpecularValue * LightData.SpecularScale;`,在其后面添加以下代码:

// 彩色阴影半影 - 开始 const float PenumbraSaturation = 4.0f; // 根据喜好配置(1.0表示无变化) float3 LuminanceFactors = float3(0.3f, 0.59f, 0.11f); // 用于去饱和的亮度因子 float3 PenumbraColor = dot(DiffuseLuminance, LuminanceFactors); // 去饱和 PenumbraColor = lerp(PenumbraColor, DiffuseLuminance, PenumbraSaturation); // 应用饱和度(反向去饱和) DiffuseLuminance = lerp(DiffuseLuminance, PenumbraColor, 1.0f - BSDFShadowTerms.SurfaceShadow); // 混合 // 彩色阴影半影 - 结束
不使用Substrate的情况

打开`Engine\Shaders\Private\DeferredLightPixelShaders.usf`文件,在(UE 5.7版本中)第397行找到代码`OutColor += Radiance;`,在其后面添加以下代码:

// 彩色阴影半影 - 开始 const float PenumbraSaturation = 4.0f; // 根据喜好配置(1.0表示无变化) float3 LuminanceFactors = float3(0.3f, 0.59f, 0.11f); // 用于去饱和的亮度因子 float3 PenumbraColor = dot(OutColor.xyz, LuminanceFactors); // 去饱和 PenumbraColor = lerp(PenumbraColor, OutColor.xyz, PenumbraSaturation); // 应用饱和度(反向去饱和) OutColor.xyz = lerp(OutColor.xyz, PenumbraColor, 1.0f - SurfaceShadow); // 混合 // 彩色阴影半影 - 结束

保存着色器文件,返回Unreal并按下`Ctrl` + `Shift` + `.`,然后在着色器重新编译时去喝杯咖啡。

以下是应用彩色半影效果和未应用效果的对比截图,展示了Quixel中的几个场景:

  1. 上一张 下一张
  2. 上一张 下一张

为展示效果,对比截图中的效果比较明显,可能需要将`PenumbraSaturation`的值调低。另外,此实现会改变表面颜色使其更饱和,灰色或完全饱和的表面不会有效果。

若有任何意见或问题,可在相关的Twitter帖子、Bluesky帖子、ArtStation帖子或LinkedIn帖子下留言。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 16:47:38

终极指南:如何在Windows上快速部署零依赖的Poppler PDF处理工具

终极指南:如何在Windows上快速部署零依赖的Poppler PDF处理工具 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 你是否厌倦了在Windows…

作者头像 李华
网站建设 2026/5/8 16:47:33

如何在任何设备上畅玩PC游戏:Sunshine自托管串流服务器完全指南

如何在任何设备上畅玩PC游戏:Sunshine自托管串流服务器完全指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾经想过,能在客厅的电视上玩电脑里的…

作者头像 李华
网站建设 2026/5/8 16:47:18

ComfyUI Manager:让AI绘画工作流管理从繁琐到智能的5个关键转变

ComfyUI Manager:让AI绘画工作流管理从繁琐到智能的5个关键转变 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable vari…

作者头像 李华
网站建设 2026/5/8 16:47:10

ZXPInstaller终极指南:Adobe扩展一键安装的简单解决方案

ZXPInstaller终极指南:Adobe扩展一键安装的简单解决方案 【免费下载链接】ZXPInstaller Open Source ZXP Installer for Adobe Extensions 项目地址: https://gitcode.com/gh_mirrors/zx/ZXPInstaller 作为设计师或创意工作者,你是否曾遇到过这样…

作者头像 李华