【UE4】PostProcessEffect屏幕后期特效& Chameleon
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【UE4】PostProcessEffect屏幕后期特效& Chameleon相关的知识,希望对你有一定的参考价值。
参考技术A 官方文档:
https://docs.unrealengine.com/en-US/Engine/Rendering/PostProcessEffects/index.html
PostProcessEffect影响游戏最终的视觉效果。正确地使用它,能使游戏增色不少。
UE默认的渲染方式为延迟渲染(deffered rendering)。在deffered rendering中,G-Buffers扮演着重要的角色。我们可以在view port的view mode中选择buffer visualization模式,来查看各个g-buffer。这些g-buffer作为输入,经过光照计算等步骤后,输出最终的显示结果。
在post process material中,有一个关键节点 SceneTexture :
Post process effect对于渲染的顺序比较敏感。当渲染出现问题时,可以尝试改变后期处理效果的顺序来解决问题。比如常见的屏幕抖动,是由于temporary AA造成的,你应该把渲染提前到Before Tonemapping。
应用post process effect,你需要 post process volume 或者是带有 post process component 的actor。
这是虚幻商城中的一个post process资源包,包含大量效果(有些效果引擎也有内置),在这里列出,供以后查询。【开开眼,有如此多的屏幕特效!!!】
https://www.unrealengine.com/marketplace/en-US/slug/chameleon
当然,如果有需求,我们可以修改里面的material,或者重新写新的material。即使不在实际工程中使用,作为学习资料也是很有用的。
说到学习资料,自然不能漏了大名鼎鼎的shader toy。只是入坑需谨慎,一般人还真看不懂。
https://www.shadertoy.com/
作者搭建了demo场景,目前共有7个房间。
UE4用蓝图在游戏内截图功能的多种方法
一、简单的截全屏
如,按下1键后截取当前的屏幕内容
如图所示
首先,右键空白的地方,输入exe后会出现一个默认选中的节点
选中后,在里面输入
Shot
这样就可以截取当前的屏幕内容(不包括UI),如下图所示
截图为PNG格式,保存在默认目录项目\\Saved\\Screenshots\\Windows里面
如果要截取更高分辨率的截图,可以输入
HighResShot 1
来进行更高分辨率的截图,不要忘记空格,后面的数字代表多少倍当前的分辨率,1是当前,2是当前的2倍,但数字越大,截图的时候就会越卡。
注:这些方法都不会截到UI,目录和上面的一样
后面的数字也可以直接换成需要的分辨率,如:
HighResShot 2048x2048
代表截取这个大小的图片,这种正方形的图片默认是屏幕的中间
二、更加自定义截图方法
除了上述内容外,还可以加入一些自定义内容,如保存的路径和文件名等内容
为了更方便一些自定义内容,这里建议使用append附加节点
如图所示,第一行的内容为
HighResShot filename=
第二行使用项目用户目录,如果在编辑器内会保存在当前目录下,如果打包后,生成的截图就会保存在c盘的项目名称的目录下,如果想和游戏路径一致,这里可以用启动目录
第三行新建一个字符串变量作为文件夹的名字,用来自定义文件夹命名
不要忘记在下一行加个 \\ 符号,否则会被识别为文件名
然后,就可以新建一个字符串变量作为文件的命名了
上图中的F行内容为一个空格,这个很重要,一定不能忘记
再下一行就想是要截取的分辨率
这种截图方式也不会截到UI,生成格式为PNG
更多的自定义内容:
下面我们加一行空格
然后在下一行可以输入想要截取的区域
如:
这四个数字分别为 X Y W H四个维度
X和Y就是图片的左上角的点,如果不知写什么,可以新建一个控件,鼠标指示的地方会有显示X和Y的值,用这个点就好
(屏幕的左上角为0 0点,即X=0 Y=0)
现在,把鼠标的位置放到了那个按钮的左上角(鼠标截不到)
这个位置就是X=235 Y=175
这里与DPI缩放什么的无关
使用自定义区域需要注意,如果输入的区域大于了屏幕的区域,将会导致程序崩溃。
后面,我们还可以添加更多的参数
下面的官网文档的描述
添加的时候不要忘记空格
如:
*关于自定义深度遮罩
官方的文档中是这样描述的,这里选择一些这里需要的步骤:
在开发过程中,可能需要捕获游戏世界中的特定物体制作宣传材料。 但是,这需要手动从背景中剔除物体,耗时且伤神。 为加快此进程,HRSST 拥有一个名为 使用自定义深度作为遮罩(Use custom depth as mask) 的选项,可将世界场景中的物体分开。 工具这部分的设置和使用可通过以下步骤进行。
1.选择需要捕获的对象,然后在 细节(Details) 中启用 渲染自定义深度(Render Custom Depth) 选项。
2.打开 HRSST 并选择需要捕获的区域。 确保尝试捕获的区域已包含启用 渲染自定义深度(Render Custom Depth) 的网格体。
3.启用 使用自定义深度作为遮罩(Use custom depth as mask) 选项。
参考官方文档:https://docs.unrealengine.com/zh-CN/WorkingWithMedia/TakingScreenshots/index.html
以上是关于【UE4】PostProcessEffect屏幕后期特效& Chameleon的主要内容,如果未能解决你的问题,请参考以下文章