介绍:

基于PostProcessMaterial实现镜头光晕(Lensflare)的效果。

不使用UE自带的Lensflare,在ShaderToy上发现一个好看的:
ShaderToy地址: ShaderToyLensflareSample

将其移植到UE4中,效果还行(去掉了巨亮的太阳光圈效果)↓


叠加天空盒子

纯黑背景

步骤:

1.场景摆后处理Volume,设置为Unbound

2.创建后处理材质,MaterialDomain选Post Process即可

3.这样连蓝图

红框是两个Cutom节点,里面写了Shader

要上代码了,点赞收藏一下不过分吧 =w=

4.SunPosUV节点将太阳位置转换为屏幕空间UV

// An highlighted blockhalf3 CameratoWorldVectorX = mul(half3(1.0, 0.0, 0.0), (half3x3)(View.CameraViewToTranslatedWorld));half3 CameratoWorldVectorY = mul(half3(0.0, 1.0, 0.0), (half3x3)(View.CameraViewToTranslatedWorld));half3 LocalCameraX = half3(1.0, 0.0, 0.0) * dot(SunLightVector, CameratoWorldVectorX);half3 LocalCameraY = half3(0.0, 1.0, 0.0) * dot(SunLightVector, CameratoWorldVectorY);//Divide xy to find perspective projectionhalf2 PerspectiveProjection = (LocalCameraX + LocalCameraY).rg; //unpack 0-1half2 ScreenUV = PerspectiveProjection * half2(0.5, -0.5) + half2(0.5, 0.5);return ScreenUV;

5.Lensflare节点程序计算绘制Lensflare,原ShaderToy里不需要的去掉了

float2 uv = fragCoord.xy - 0.5;
uv.x *= iResolution.x/iResolution.y; //fix aspect ratiofloat2 mouse = iMouse - 0.5;
mouse.x *= iResolution.x/iResolution.y; //fix aspect ratio
float2 pos = mouse.xy;float2 main = uv-pos;
float2 uvd = uv*(length(uv));// 太阳光晕,去掉
//float ang = atan(main.x/main.y);
// float dist=length(main); dist = pow(dist,.1);
// float n = Texturesample(View.PerlinNoiseGradientTexture, float2(ang*16.0,dist*32.0));// float f0 = 1.0/(length(uv-pos)*16.0+1.0);// f0 = f0 + f0*(sin(noise(sin(ang*2.+pos.x)*4.0 - cos(ang*3.+pos.y))*16.)*.1 + dist*.1 + .8);//float f1 = max(0.01-pow(length(uv+1.2*pos),1.9),.0)*7.0;float f2 = max(1.0/(1.0+32.0*pow(length(uvd+0.8*pos),2.0)),.0)*00.25;
float f22 = max(1.0/(1.0+32.0*pow(length(uvd+0.85*pos),2.0)),.0)*00.23;
float f23 = max(1.0/(1.0+32.0*pow(length(uvd+0.9*pos),2.0)),.0)*00.21;float2 uvx = lerp(uv,uvd,-0.5);float f4 = max(0.01-pow(length(uvx+0.4*pos),2.4),.0)*6.0;
float f42 = max(0.01-pow(length(uvx+0.45*pos),2.4),.0)*5.0;
float f43 = max(0.01-pow(length(uvx+0.5*pos),2.4),.0)*3.0;uvx = lerp(uv,uvd,-.4);float f5 = max(0.01-pow(length(uvx+0.2*pos),5.5),.0)*2.0;
float f52 = max(0.01-pow(length(uvx+0.4*pos),5.5),.0)*2.0;
float f53 = max(0.01-pow(length(uvx+0.6*pos),5.5),.0)*2.0;uvx = lerp(uv,uvd,-0.5);float f6 = max(0.01-pow(length(uvx-0.3*pos),1.6),.0)*6.0;
float f62 = max(0.01-pow(length(uvx-0.325*pos),1.6),.0)*3.0;
float f63 = max(0.01-pow(length(uvx-0.35*pos),1.6),.0)*5.0;float3 c = float3(0.0, 0.0, 0.0);c.r+=f2+f4+f5+f6; c.g+=f22+f42+f52+f62; c.b+=f23+f43+f53+f63;
c = c*1.3 - float3(length(uvd), length(uvd), length(uvd))*.05;
// c+=float3(f0, f0, f0);float3 color = float3(1.4,1.2,1.0)*c;
color -= Noise*.015;float w = color.x+color.y+color.z;
color =  lerp(color,float3(w, w, w)*0.5,w*0.1);
//color = cc(color,.5,.1);
float4 OutColor = float4(color,1.0);
return OutColor;

除0,越界还需要手动处理下,楼主偷懒了

可以自行修改参数和Noise贴图,调整表现效果~

需要判断遮挡的话,采一下SceneDepth就行~

UE4 后处理材质 镜头光晕(Lensflare)效果相关推荐

  1. 【three.js:语法】光源使用详解2-3(聚光灯 SpotLight、平行光 DirectionLight 、环境光 HemisphereLight、镜头光晕 LensFlare)

    注意点:SpotLight.target 的使用. 1.SpotLight.target= object 或者是 THREE.Object3D()才行.不能只是一个position. 2.target ...

  2. UE4 描边材质制作 学习笔记

    原理:这个视频真是棒极了,一下就懂了 [UE4] [后处理] 模板描边_哔哩哔哩_bilibili 代码自取: Begin Object Class=/Script/UnrealEd.Material ...

  3. 【UE4】RTS建筑选中效果

    [UE4]RTS建筑选中效果 [[UE4]RTS建筑选中效果] 效果 打开ps制作一张放射性贴图 新建一个512*512的画布 填充一个黑色图层, 让黑白各占一半画布. 取消锁定 新建一个图层 填充黑 ...

  4. 在UE4中实现锥体下雨效果

    在UE4中实现锥体下雨效果 终于不懒,打起精神更新一下前段时间做过的一些东西.. 本文主要讲述一个特别的下雨效果在UE4中的制作过程.这个效果是模仿<天涯明月刀>手游的下雨效果做的,一开始 ...

  5. UE4 Sequence添加基础动画效果 (03-主序列的使用)

    在上一篇的基础上添加一些摄像头的跟拍效果 效果: 步骤: 1.鼠标右键新建 Animation->关卡序列 命名为主序列 2.双击打开主序列 3.点击 窗口->内容浏览器->内容浏览 ...

  6. UE4利用材质制作动态水面水波的效果

    作为一个新手来说,学习要循序渐进,所以我学习了制作水面材质,新手,大牛勿喷啊. 其实还是挺简单的,材质编辑器的截图如下: 但是新手一定要注意,新建的材质有些需要操作的节点是暗色的,就是未启用的意思,要 ...

  7. ue4玻璃材质_UE4-材质

    本文中,我们将首先讨论基于物理的渲染,什么是材质域,什么是材质,什么是材质实例,什么是主材质,我们将讨论材质的一些建议和禁忌.最后,我们将了解一些材质概念,你可以将其用于各类项目中的材质. 1.什么是 ...

  8. UE4 动态材质设置

    UE4的话,有3种材质: 1-材质(Material) 2-材质实例(Material Instance) 3-动态材质(Dynamic Material Instance ) (1)如何从材质创建材 ...

  9. UE4关于材质的几个小技巧

    相信很多程序出身的开发者对美术不是很了解 但是开发过程中又需要美术部分的一些技巧, 今天我就来安利一些UE4美术方面的技巧 希望能够帮助到大家 不用 PS 也可以制作法线 制作毛玻璃 次表面材质 Fr ...

  10. UE4带Alpha通道透明效果贴图的相关问题

    镂空效果(黑色部分透明):UE4中,一张贴图同时显示color与opacity, 问题一:最初贴图只呈现颜色,应该透明的区域是黑色的 修改步骤如下: ps中魔棒选中黑色区域-反选-右键存储选区-生成a ...

最新文章

  1. Java编程基础25——多线程上
  2. ftp服务器在线查看文件内容,ftp服务器PDF文件在线查看的实现方法
  3. F5设备中存在一个Ticketbleed漏洞,可被远程攻击者利用
  4. 【华为云技术分享】Python大神编程常用4大工具,你用过几个?
  5. 【Elasticsearch】 es primary shard 主分片 PrimaryOperationTransportHandler
  6. 跨境电商全球趋势与独立站布局的关键点
  7. 设计模式快速学习(五)原型模式
  8. Linux运维系统工程师与java基础学习系列-1
  9. php独立环境的安装:apache php mysql
  10. iScroll示例,下拉刷新,上拉刷新
  11. 一维 cnn matlab,1D-CNN 一维信号的深度学习算法和例子包括CNN - 下载 - 搜珍网
  12. 《华为研发》阅读 - 11 (中研部组织结构)
  13. 图标设计的意思是什么?资深UI设计师告诉你图标的含义!
  14. Ps中 不透明度和填充的区别
  15. 从达特茅斯会议到图灵奖---人工智能学习分享
  16. BigDecimal.ROUND_HALF_EVEN (银行家算法)
  17. YARN ACCEPTED: waiting for AM container to be allocated, launched and register with RM.
  18. 云计算基础与应用 第二章 云计算技术架构
  19. Python股票量化学习(1)——股票代码下载
  20. linux远程服务器环境_如何使用Linux为孩子设置远程学校环境

热门文章

  1. 如果写不出好的BUG就该在洒满阳光的屋里躺在床上边刷哔哩哔哩边吃旺仔QQ糖
  2. STM32——DAC数模转换实验
  3. 因果效应,典型模型及wasserstein距离, BNN,CFR,SITE,NetDeconf
  4. WebView打不开或者显示异常可能原因
  5. iPhoneX适配方案
  6. 计算机计算公式单组数据求乘法,excel怎么算乘法
  7. Mode Collapse 和 Mode Dropping的定义与不同
  8. 外汇期货市场的组织结构
  9. 计算机查看配置的快捷键,剪映电脑版快捷键在哪里设置? 剪映查看快捷键的技巧...
  10. 美国之行---领略真正的美国文化--牛排