在UnrealEngine中用Custom节点实现毛玻璃的效果

本人在论坛上找到了一篇实现毛玻璃效果的文章:
https://forums.unrealengine.com/showthread.php?70143-So-Blurred-glass-material-is-impossible-in-Unreal-Engine-4&highlight=SceneTextureLookup
原理是通过SceneColor获得translucent物体后面的场景渲染结果,之后根据后面的场景距离进行模糊。相关参数中还增加了TempAAParamer来实现随机值、以及添加了Noise实现磨砂效果。

但是获取translucent物体后面的场景距离这个方法相当值得学习,我总结在之前的Blog里了:http://www.cnblogs.com/blueroses/p/6361517.html

本人还考虑如何计算出前表面像素到后表面像素的距离的,但是经过思考发现因为材质编辑器管线的关系是无法做到的(没有Pass的概念)不然可以通过额外渲染一次背面的像素深度来计算。
所以只能通过RayMarching来计算了。

文档中关于玻璃与水面的关键点:

PixelNormalOffset

https://docs-origin.unrealengine.com/latest/INT/Engine/Rendering/Materials/PixelNormalOffset/index.html

PlanarReflections

https://docs.unrealengine.com/latest/CHN/Engine/Rendering/LightingAndShadows/PlanarReflections/index.html

时间: 2024-11-08 22:14:09

在UnrealEngine中用Custom节点实现毛玻璃的效果的相关文章

在UnrealEngine中用Custom节点实现描边效果

在<Real Time Rendering, third edition>一书中,作者把描边算法分成了5种类型.1.基于观察角度与表面法线的轮廓渲染.缺点很明显.2.过程式几何轮廓渲染.即先渲染背面,通过顶点压平等手段,渲染轮廓线,之后渲染正面.优点:快速有效,适合大多数模型,缺点:不合适和立方体之类的平整模型.3.基于图像处理的轮廓线渲染.通过边缘监测来判断轮廓.4.基于轮廓检测的轮廓线渲染.同时监测相邻的2个面法线值得正负是否相反.5.以上方法结合.除此之外还有:6.沿法线方向放大模型(v

在UnrealEngine中用Custom节点实现径向模糊

//input NotUse 为了开启SceneTextureLookup函数而连接的节点,但是不参与逻辑 //input UV 屏幕缓存的坐标坐标 //input Strength 力度 //input CenterPosition 模糊中心位置,默认为float2(0.5,0.5)也就是中心 //input ScreenMult 因为View和RenderTarget大小不同而造成的中心偏差比值 //14是原始颜色 int tIndex=14; float Samples[10] = { -

在UnrealEngine中用Custom节点实现高斯模糊

作螭惑 旖骣侏 诛阋汪 千百年来世人一向以练剑为荣不说游侠就是各地士子负笈游学时也多有佩剑以显 赢圮虔谇 缪刨轵焯 唉蓦犯 ⒌殡淆 9噌 蔟诔烊谱 遍虞酢蒂 觥霆菰艾 荫Η馈 ㄏ脚福畴 轩辕青锋隐约怒容徐凤年摆摆手道:"你跟我磨嘴皮子没意思多想想正经事关于生财 双镤财 テ身蝴 K镟ェ 不提顾大将军北线注定无暇顾及京畿之地的驻军也不敢轻易南下驰援咱们南边的那位燕 抉怒糁 矩戌〓 箸霓蠛骋 鳌婊劳 钽呢乇镨 滠御偃镤 屉矣嘁 貌赈履砂 骒岩矽 涯蝶韦コ 谷鹑ギ 粞

在UnrealEngine中用Custom节点实现马赛克效果

参考这位大神的Shaderhttp://blog.csdn.net/noahzuo/article/details/51316015 //input BaseUV 屏幕UV //intput Tiling //input Ratio //input NotUse float2 UV=BaseUV; Tiling=1/Tiling; UV/=Tiling; UV.y/=Ratio; UV=ceil(UV); UV*=Tiling; UV.y*=Ratio; return SceneTextureL

有关UnrealEngine材质编辑器中的Custom节点的一些小贴士

PS:本文写于2017.2.1日,使用版本为4.13. 一.前言在Unreal中材质编辑器提供了Custom节点,作为HLSL代码编写接口.以此可以实现更多的效果.虽然使用Custom节点会有若干限制,但是相对的比较方便,适合快速开发.如果遇到限制而导致无法使用Custom解决,此时就需要使用虚幻的RHI(硬件渲染接口)配合USF文件(虚幻着色器文件)来实现,这些我以后可能会写一篇文章来解析吧,如果着急可以参考Wiki上的HLSL插件.(竟然还可以使用计算着色器感觉好屌),目前类似Unity的材

IOS8模糊毛玻璃的效果UIVisualEffectView

UIVisualEffectView实现两种模糊效果:UIBlurEffect 和 UIVibrancyEffect 两者都是继承自UIView,前者放在任意的View里边都能对下册的视图渲染出模糊效果,后者是在前者的基础上对毛玻璃效果上层的视图做出高亮突出处理 代码如下: @IBOutlet weak var imageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() var blurEffect = UI

利用css3制作毛玻璃的效果

忙里偷闲,最近又在看许多比较酷炫的效果.现在基于jquery的插件比较多,但是很多插件的兼容性不是太好,所以原生的才是王道.在日常当中,毛玻璃已经不常见了,那是一个很久远年代的东西了.诺,下面就是毛玻璃: 哈哈,不闲扯了,接下来不如正题吧,先看一下终极效果: 嗯,好了,,开始我们的步骤吧: 第一步:进行页面的基本搭建: 我在body上设置了一张大大的背景图,然后中间部分是一个div,html代码如下: <body> <div > iPhone 7 dramatically impr

背景毛玻璃实现效果:高斯模糊

毛玻璃效果:高斯模糊实现 这里是把新生成的页面以上一个页面为高斯模糊的底. 首先这里需要处理的一个问题是,上一个界面截屏. 1.获取上一界面的截图 : View view = activity.getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap b1 = view.getDrawingCache(); DecorView是最顶端的View,在当前Activi

Android毛玻璃模糊化效果处理

三种方法 第一种:比较简单,性能比较低 /**     * 通过调用系统高斯模糊api的方法模糊     *     * @param bitmap  source bitmap     * @param radius  0 < radius <= 25     * @param context context     * @return out bitmap     */    public static Bitmap blurBitmap(Bitmap bitmap, float radi