UE4_如果快速做出毛玻璃效果_假景深

UE4_如果快速做出毛玻璃效果_假景深

2022-08-20 15:02

 一个SpiralBlur-SceneTexture材质节点完成效果,启用半透明材质
图片
通过修改BlurAmount数值大小调整效果
图片
spiralBlur-SceneTexture
图片

custom节点,HLSL语言
float3 CurColor = 0;
float2 BaseUV = MaterialFloat2(ScreenAlignedPosition(Parameters.ScreenPosition).xy);
float2 NewUV = BaseUV;
float StepSize = Distance / (int) DistanceSteps;
float CurDistance = 0;
float2 CurOffset = 0;
float TwoPi = 6.283185;
float Substep = 0;
float2 ScenePixels=View.BufferSizeAndInvSize.xy*BaseUV;
ScenePixels+=View.TemporalAAParams.r;
float2 RandomSamp = ((uint)(ScenePixels.x) + 2 * (uint)(ScenePixels.y)) % 5;
RandomSamp+=Texture2DSample(Tex,TexSampler,ScenePixels);
RandomSamp/=5;
RandomSamp-=0.5;
TempAARotation*=RandomSamp;
TempAADistance*=StepSize*RandomSamp;

int i=0;
if (DistanceSteps<1)
{ return DecodeSceneColorForMaterialNode(NewUV);
} else
{ //CurDistance += 0.5*StepSize;
while ( i < (int) DistanceSteps)
{

//CurDistance+=StepSize;
for (int j = 0; j < (int) RadialSteps; j++)
{ CurOffset.x = cos(TwoPi*((TempAARotation+Substep) / RadialSteps));
CurOffset.y = sin(TwoPi*((TempAARotation+Substep) / RadialSteps));
CurOffset *=DistanceMask;
NewUV.x = BaseUV.x + (CurOffset.x * (CurDistance+(RandomSamp*TempAADistance)));
NewUV.y = BaseUV.y + (CurOffset.y * (CurDistance+(RandomSamp*TempAADistance)));
CurColor += DecodeSceneColorForMaterialNode(NewUV);
//CurDistance+=(StepSize+(TempAADistance))/RadialSteps;
Substep++;
} CurDistance+=StepSize;
Substep+=RadialOffset;
i++;
} CurColor = CurColor / ((int)DistanceSteps*(int)RadialSteps);
return CurColor;
}
spiralBlur-Texture
图片
float3 CurColor=0;
float2 NewUV = UV;
int i=0;
float StepSize = Distance / (int) DistanceSteps;
float CurDistance=0;
float2 CurOffset=0;
float SubOffset = 0;
float TwoPi = 6.283185;
float accumdist=0;

if (DistanceSteps < 1)

{ return Texture2DSample(Tex,TexSampler,UV);       
} else
{ while ( i < (int) DistanceSteps)
{     CurDistance += StepSize;
    for (int j = 0; j < (int) RadialSteps; j++)
    {
SubOffset +=1;
CurOffset.x = cos(TwoPi*(SubOffset / RadialSteps));
CurOffset.y = sin(TwoPi*(SubOffset / RadialSteps));
        NewUV.x = UV.x + CurOffset.x * CurDistance;
        NewUV.y = UV.y + CurOffset.y * CurDistance;
        float distpow = pow(CurDistance, KernelPower);
        CurColor += Texture2DSample(Tex,TexSampler,NewUV)*distpow;       
        accumdist += distpow;
    }
SubOffset +=RadialOffset;
i++;
} CurColor = CurColor;
CurColor /=accumdist;
return CurColor;
}

评论(0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/520062.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

系统思考—领导者

“组织是船&#xff0c;领导者是什么角色&#xff1f;” 对于这个看似简单的问题&#xff0c;很多人可能会直观地想到船长或舵手。但学习型组织的倡导者彼得圣吉给出了另一种视角&#xff1a;如果组织是一艘船&#xff0c;那么领导者首先应该是这艘船的设计师。 在我近期与各个…

Linux:进程等待究竟是什么?如何解决子进程僵尸所带来的内存泄漏问题?

Linux&#xff1a;进程等待究竟是什么&#xff1f;如何解决子进程僵尸所带来的内存泄漏问题&#xff1f; 一、进程等待的概念二、进程等待存在的意义三、如何进行进程等待3.1 wait()是实现进程等待1、wait()原型2. 验证wait()能回收僵尸子进程的空间 3.2 waitpid()实现进程等待…

电子积木方案开发商

东莞市酷得智能科技有限公司电子积木方案开发商 提供消费电子解决方案、提供IC技术支持&#xff0c;全国线上线下服务 积木小车底层驱动开发过程主要涉及到以下几个方面&#xff1a; 首先&#xff0c;需要对小车底盘结构、硬件、模块等有深入的了解。底盘承载着机器人定位、导…

Kubernetes(k8s):Pod 的 Node Selector详解

Kubernetes&#xff08;k8s&#xff09;&#xff1a;Pod 的 Node Selector详解 1、什么是Node Selector&#xff1f;2、Node Selector的工作原理3、Node Selector的用法1、例如&#xff1a;给node01 、node02 分别打上标签2、使用标签调度Pod3、删除节点的标签 &#x1f496;Th…

java面试题(Redis)

事情干的差不多了&#xff0c;开刷面试题和算法&#xff0c;争取在短时间内快速成长&#xff0c;理解java面试的常见题型 一、redis使用场景&#xff1a; 缓存&#xff1a;穿透、击穿、雪崩 双写一致、持久化 数据过期、淘汰策略 分布式锁&#xff1a;setnx、redisson 计数…

武汉星起航推出亚马逊一站式孵化平台,助力合作伙伴快速成长

武汉星起航电子商务有限公司&#xff0c;自2020年正式成立以来&#xff0c;凭借其专业的运营团队和丰富的行业经验&#xff0c;在跨境电商领域取得了显著的成绩。为了进一步满足市场需求&#xff0c;武汉星起航决定推出亚马逊一站式孵化平台&#xff0c;旨在为合作伙伴提供更全…

网盘分享链接

点击打开下面这条链接&#xff0c;保存文件 https://pan.xunlei.com/s/VNuDMRtfBQvmfqqwjsBAIg2pA1?pwdhqd3 网盘里文件太多&#xff0c;找不到&#xff0c;怎么办&#xff1f; 进入我的B站主页【I泠霖I的个人空间-哔哩哔哩】 https://b23.tv/VYxaiJb&#xff0c;点击右上角的…

PC发送指令给单片机控制LED(与上一篇文章相反)

此时要重新配置寄存器 &#xff0c;实现电脑往单片机传输数据 1、配置SCON寄存器的REN 即 REN 1 2、有TI&#xff08;发送中断&#xff09;就有RI&#xff08;接收中断&#xff09; 3、优化 发现发送 o 时&#xff0c;D5亮灯会有延迟 下面就是做到真正的无延迟的全双工通信 …

JVM基础

初识JAM JVM就是JAVA虚拟机&#xff0c;本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行JAVA字节码文件. 下面是java代码执行过程 JVM的功能 1.解释和运行 对字节码文件中的指令实时的解释成机器码 2.内存管理 自动为对象&#xff0c;方法等分配内存自动的垃圾回…

27.WEB渗透测试-数据传输与加解密(上)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;26.WEB渗透测试-BurpSuite&#xff08;五&#xff09; BP抓包网站网址&#xff1a;http:…

IIC协议——OLED(128*64)外设

IIC协议&#xff08;Inter-Integrated Circuit Protocol&#xff09;&#xff0c;也被称为I2C&#xff08;Inter-Integrated Circuit&#xff09;&#xff0c;是一种串行通信协议&#xff0c;通常用于连接集成电路&#xff08;IC&#xff09;和外部设备&#xff0c;例如传感器、…

AWS入门实践-利用S3构建一个静态网站

使用Amazon S3托管静态网站是一个流行的选择&#xff0c;因为它简单、成本效益高&#xff0c;并且易于维护。静态网站由不含服务器端脚本的文件组成&#xff0c;如HTML、CSS和JavaScript文件。下面是使用S3托管静态网站的操作步骤&#xff1a; 如果大家没有AWS免费账号&#x…

STM32CubeIDE基础学习-舵机控制实验

STM32CubeIDE基础学习-舵机控制实验 文章目录 STM32CubeIDE基础学习-舵机控制实验前言第1章 硬件介绍第2章 工程配置2.1 基础工程配置部分2.2 生成工程代码部分 第3章 代码编写第4章 实验现象总结 前言 SG90、MG996舵机在机器人领域用得非常多&#xff0c;因为舵机有内置控制电…

【Java网络编程】OSI七层网络模型与TCP/IP协议簇

1.1、OSI七层网络模型 OSI七层网络模型中&#xff0c;每层的功能如下&#xff1a; 应用层&#xff1a;人与计算机网络交互的窗口。表示层&#xff1a;负责数据格式的封装&#xff0c;如加密、压缩、编解码等。会话层&#xff1a;建立、终止、管理不同端间的会话连接。传输层&a…

[技术闲聊]我对电路设计的理解(九)-如何与Layout工程师交互

一、“”电路设计“的理解 原理图设计完成&#xff0c;设计规则检测、netlist都通过后&#xff0c;就可以把原理图发送给Layout&#xff0c;是不是此刻意味着硬件工程师功成身退了呢&#xff1f; 远远没有&#xff0c;还有多件事情等待着&#xff0c;文章题目我对电路设计的理解…

【Node.js从基础到高级运用】二十一、使用child_process模块创建子进程

引言 在Node.js中&#xff0c;child_process模块是一个提供了创建和管理子进程的能力的核心模块。通过使用child_process模块&#xff0c;Node.js可以执行系统命令、运行其他脚本或应用程序&#xff0c;实现与Node.js进程的并行处理。 child_process模块提供了几种创建子进程的…

搭建电商独立站|适合做独立站的国家有哪些?该怎么布局?

在传统外贸和跨境电商行业&#xff0c;独立站是一种更专业并且获益空间相对会更高的方法&#xff0c;独立站可以让卖家拥有更多的自由控制权&#xff0c;卖家能更精准的定位用户人群&#xff0c;也可以自行流量推广&#xff0c;独立站不会被永远封店铺、不会对卖家进行罚款等等…

HTML - 你如何使H5页面禁止手动缩放

难度级别:初级及以上 提问概率:40% 我们知道,这道题其实是在考察meta标签的viewport属性,正常情况下设置viewport的代码为 <head><meta name="viewport" content="width=device-width,initial-scale=1.0" …

560.和为K的子数组

560.和为K的子数组 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a; 输入&#xf…

线程池参数该怎么配置才能充分压榨CPU?

&#x1f3c3;‍♂️ 微信公众号: 朕在debugger© 版权: 本文由【朕在debugger】原创、需要转载请联系博主&#x1f4d5; 如果文章对您有所帮助&#xff0c;欢迎关注、点赞、转发和订阅专栏&#xff01; 目标 配置好线程池参数&#xff0c;压榨CPU&#xff0c;资本家看了都…