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

参考这位大神的Shader
http://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 SceneTextureLookup(UV,14,false);

把Tiling作为倒数进行处理比较符合这个参数的意义,不过直接用可以提升性能。同时输入变量Raito并没有解决方形像素问题,所以我又写个版本

//input BaseUV 屏幕UV
//intput Tiling
//input Ratio
//input NotUse
float2 UV=BaseUV;

UV*=Tiling;
UV.y*=Ratio;
UV=ceil(UV);

UV/=Tiling;
UV.y/=Ratio;

return SceneTextureLookup(UV,14,false);

  

以上两端代码都可以使用,如果是正式版别忘接了把RenderTargetSize去掉,虽然效果一样,力求完美总是没错。

时间: 2024-07-30 15:48:13

在UnrealEngine中用Custom节点实现马赛克效果的相关文章

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

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

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

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

在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节点的一些小贴士

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

iOS 图片实现马赛克效果

/** *实现马赛克效果 */ // 导出CIImage图片 CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImageimageNamed:@"De.png"]]; // 1.创建Filter滤镜 CIFilter *filter = [CIFilter filterWithName:@"CIPixellate"]; [filter setValue:ciImage forKey:kCIInputImage

使用CANVAS实现交互性圆形马赛克效果

在看D3.js的时候,无意间看到了一个例子,觉得很有趣,像是会分裂的圆形马赛克.看了下代码,使用svg完成的,但是具体实现方式使得在手机端无法把玩,于是就自己实现了一个canvas版本的.代码很简单,canvas初学者可以自己试试当做练笔,还是挺有趣的一个效果. Online Demo online demo 在demo中任意从本地选择一张图片,然后通过鼠标移动或者移动端touchmove就能实现圆形分裂的效果. 使用 如果觉得用得着,你可以在自己的项目中安装使用这个效果.npm i circl

给图片添加马赛克效果

放大马赛克图片可以看到,可以看到一个个单色的小正方形.所以马赛克其实也就是把某一点的色值填充了它一定范围内的一个正方形,这样看起来就会模糊,但整体还是有一定原来的样子.如图,一张图片可以认为是9*9个色值组成的位图,进行马赛克转换就变成:          转换为            可知,就是把某一位的色值向右向下填充一个2*2的正方形. 1 + (UIImage *)transToMosaicImage:(UIImage*)orginImage blockLevel:(NSUInteger

马赛克效果

Color C; int r, g, b, rV, gV, bV, rT, gT, bT, y, z; Bitmap bmp = new Bitmap(pictureBox1.Image);//创建Bitmap对象 Bitmap tmp = (Bitmap)bmp.Clone(); //马赛克为5*5阵列 for (int i = 0; i < bmp.Width - 5; i += 5) for (int j = 0; j < bmp.Height - 5; j += 5) { rT = 0