这是之前的做法 https://blog.csdn.net/maxiaosheng521/article/details/121854323
比较简单粗暴,效果是所有的透明材质都不应用后期,这次是通过custom stencil 设置为111 过滤掉指定透明材质的后期渲染流程
代码和思路说明 https://github.com/HeartlessLD/UE4CustomtranslucencyNoPost-

实现对指定透明材质物体不应用后期效果 (在SceneCapture中捕捉的对象也不受效果)
说明 受限于目前对引擎的了解 这种修改方式绝对不是最优的方法

使用说明:
使用ue4.26源码版引擎 大概率4.27也可以 4.25应该是不行
引擎文件拷贝对应的文件进行覆盖

ComposeSeparateTranslucency.usf NoPostProcessCustomStencil.usf放到UnrealEngine\Engine\Shaders\Private中
ConsoleVariables.ini 调试shader 使用 如果不需要调试查看shader可以不用
NoPostProcessCustomStencil.h .cpp 放到UnrealEngine\Engine\Source\Runtime\Renderer\Private

项目设置
Custom Depth-Stencil Pass EnableWithStencil
Separate Translucency enable

将想要设置不受影响的物体 属性 RenderCustomDepthPass enable
customDepth Stencil Value 111 (这里设置111 是针对后期材质中 只针对111 进行处理 非111的透明材质 保持原样)
透明材质要开启 Allow Custom Depth Write

这里面说一下大概思路(可能有错误 仅供参考)
文件中所有///>nopost的地方都是修改的内容,具体的逻辑可以自己看
首先自定义一条Pass 放在后期的最后进行渲染,
这里参考 https://zhuanlan.zhihu.com/p/407093510
///>nopost
PassSequence.SetEnabled(EPass::NoPostProcess, true);
在Post之前对透明物体进行渲染处理时,在合成透明的shader中过滤掉111的透明,
ComposeSeparateTranslucency.usf

uint CustomStencil = CustomStencilTexture.Load(int3(SvPosition.xy, 0)) STENCIL_COMPONENT_SWIZZLE;if(CustomStencil == 111 && SeparateTranslucencySample.a != 1)OutColor.rgb = SceneColorSample.rgb;
elseOutColor.rgb = SceneColorSample.rgb * SeparateTranslucencySample.a * SeparateModulationSample.rgb + SeparateTranslucencySample.rgb;

在最后的自定义Pass中添加上111的透明图片

 ///>nopostif(PassSequence.IsEnabled(EPass::NoPostProcess)){FNoPostProcessInputs PassInputs;PassSequence.AcceptOverrideIfLastPass(EPass::NoPostProcess, PassInputs.OverrideOutput);PassInputs.SceneColor = SceneColor;PassInputs.SeparateTransluscency = SeparateTranslucency;SceneColor = AddNoPostProcessPass(GraphBuilder, View, PassInputs, SceneColor.Texture, *Inputs.SeparateTranslucencyTextures, (*Inputs.SceneTextures)->CustomStencilTexture);}
NoPostProcessCustomStencil.usf
 if(CustomStencil == 111 && SeparateTranslucencySample.a != 1)OutColor.rgb = SceneColorSample.rgb * SeparateTranslucencySample.a * SeparateModulationSample.rgb + SeparateTranslucencySample.rgb;elseOutColor.rgb = SceneColorSample.rgb;

这里提一嘴 SceneCapture2D默认是不会讲透明物体放在SeparateTranslucency单独的纹理中的,需要单独开启一下
SceneCaptureRendering.cpp
///>nopost
SceneRenderer->ViewFamily.EngineShowFlags.SeparateTranslucency = 1;

以上 大体思路就是这样

UE4针对特殊的透明物体不应用后期效果相关推荐

  1. ue4透明折射无法扭曲背后透明物体问题

    主要问题如上面所示 透明物体开了折射后,背后的透明物体实际上不会扭曲,还是以前大小 这个存在很多玻璃的场景 有的时候可以通过勾选项目设置的Separate Translucency解决,但是会引起其他 ...

  2. 基于Transformer对透明物体进行分割

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家 ...

  3. 准确估计透明物体的 3D 姿态:机器人收集 + Keypose 算法

    文 / 软件工程师 Kurt Konolige,Google 机器人团队 计算机视觉应用领域的核心问题是 3D 物体的位置与方向的估计,这与对象感知有关(如增强现实和机器人操作).在这类应用中,需要知 ...

  4. 阿诺德给物体加描边_Arnold(C4DToA)阿诺德渲染教程(116):Arnold 如何抠透明通道?透明物体后期合成方案!...

    教程简介 左(渲染图) 右(透明分离) 过去在 Arnold 渲染的图像中,如果包含了透明对象,就非常尬,,,众所周知,被大家诟病的是,Arnold 在后期难以分离透明物体,也就是将透明对象与背景分离 ...

  5. Three.js 透明物体不能正常显示(闪烁)/渲染顺序的控制问题

    Three.js的渲染机制 three的渲染器是基于webGL的.它的渲染机制是根据物体离照相机的距离来控制和进行渲染的.对于透明的物体,则是按照从最远到最近的顺序进行渲染.也就是说,它根据物体的空间 ...

  6. UE4蓝图基础——蓝图实现物体移动和物体旋转

    UE4蓝图基础--蓝图实现物体移动和物体旋转 物体旋转组件 物体旋转蓝图实现 物体移动蓝图实现 actor物体移动或者旋转在游戏或者应用最常用的基本操作方式,在UE4中基础蓝图部分就来学习分享一下具体 ...

  7. ECCV 2022 | 面向高光和透明物体感知与抓取的域随机化增强的深度仿真与修复

    关键词:深度仿真 深度修复 高光透明物体 导  读 本文是计算机视觉顶级会议 ECCV 2022入选论文 Domain Randomization-Enhanced Depth Simulation ...

  8. 使用VMD中的Tachyon渲染出透明逼真的水盒子效果

    1.概述 在本教程中将重点向你展示如何通过VMD中的Tachyon制作一个高质量的可视化图像.本文假设你对vmd有一定了解(最基本的打开载入分子即可).关于vmd制作图像的快速入门中文教程,本例所使用 ...

  9. html5 mask,HTML5 Canvas渐进填充与透明实现图像的Mask效果

    HTML5 Canvas渐进填充与透明实现图像的Mask效果 2020-03-24 19:10:45 字体:大 中 小 来源:转载 供稿:网友 详细解释HTML5 Canvas中渐进填充的参数设置与使 ...

  10. unity 陀螺仪 物体旋转和移动效果

    unity 陀螺仪 物体旋转和移动效果 直接上码 带注释 public class SDKGyroController : MonoBehaviour {//陀螺仪是否存在class GyroGame ...

最新文章

  1. C++11 智能指针unique_ptr使用 -- 以排序二叉树为例
  2. HarmonyOS之深入解析编译构建的配置和代码混淆
  3. 【转载】java读取.properties配置文件的几种方法
  4. ARP、Tracert、Route 与 NBTStat命令详解
  5. VSCode 汉化、设置为 中文语言显示 、中文界面
  6. 共建公安标准体系 | 七牛云与锐安科技达成深度战略合作
  7. android achart教程,AChartEngine And Android Studio
  8. mybatis关联查询之一对多,多对一,以及多对多
  9. matlab练习程序(构造简单多边形)
  10. 全局系统性地把握客户感知-建立VOC
  11. 1.1介绍线程和运行(Introducing Thread and Runnable)
  12. ibatis的ibatorForEclipse的安装与配置和ibator的错误日志查看
  13. JDK 8 函数式编程入门
  14. 【LoRa点对点通信与控制】
  15. 仿支付宝头像外加一个边框的工具类
  16. javax.el.PropertyNotFoundException: 'newsLine' is an unknown bean property...
  17. 经典管理定理二十三条点评
  18. 解决Coursera的课程视频无法观看问题
  19. 2021级天梯赛 2.1-2.4
  20. carbondata与mysql_carbondata使用总结

热门文章

  1. nb物联网 bc95模块联网 bc95使用
  2. 国家统计局统计用区划代码和城乡划分代码---爬虫、详细分析
  3. PHP 高并发秒杀解决方案
  4. 跟着迪哥学python电子书pdf-跟着迪哥学Python数据分析与机器学习实战
  5. IDEA 强大文件对比功能
  6. python打包的exe反编译_反编译python打包的exe到源代码
  7. 氪8号积木机器人编程_编程机器人怎么选?
  8. 深度学习优化算法-AdaDelta算法
  9. SPSS 特征筛选、主成分回归
  10. MySQL grant 语法的详细解析