UE5学习笔记(三)——光线知识相关 基础蓝图事件

先普及两个光线概念:

Bloom(有时被称为光华或glow)是一种用于视频游戏、演示和高动态范围渲染(HDRR)的计算机图像效果,用于再现真实世界相机的成像工件。这种效应产生的条纹(或羽毛)从明亮区域的边缘延伸到图像中,造成了一种强烈的光的错觉,使照相机或眼睛无法捕捉到场景。


高动态范围成像(英语:High Dynamic Range Imaging,简称HDRI或HDR),在计算机图形学与电影摄影术中,是用来实现比普通数位图像技术更大曝光动态范围(即更大的明暗差别)的一组技术。高动态范围成像的目的就是要正确地表示真实世界中从太阳光直射到最暗的阴影这样大的范围亮度。


顺便查了一下这两个效果的关系。

首先,这两种效果都是针对光源产生的效果,目的是在数码场景中模拟现实生活中的光源感受。简单地说就是让电脑上做出来的场景光线更真实。

然后通俗的解释一下两种效果。

bloom,针对有范围的光制造出来的效果,模拟的是光线模糊掉边界,出现向外扩散的感受。类似下图。

(转自CSDN@音视频开发进阶)

HDR,将光线亮度从原本的0-1的范围,扩大到32位,使其在光线变暗后出现更多细节。通俗说法就是黑的更黑,亮的更亮,而这个更亮的数值可以在与bloom同时使用时产生更加闪瞎眼的效果。类似下图。

(转自知乎@八尺)


三种光源比较:

聚光灯(SpotLight):从一个点向某个方向发出,可以照出一个锥型区域。模拟手电筒或者台灯效果时可以使用。

点光源(PointLight):从一个点向四周围发出光线,找出一整片区域。模拟灯泡或者自发光体的效果。

方向性光源(DirectionaLight):没有发光的具体位置,光线朝着某一个特定方向放射。模拟太阳光线。


灯光烘焙(light baking):将光影效果直接加在贴图上。烘培的效果依据光源设置的计算方式决定,如下图。

烘焙操作为:Build》Build lighting only


为物体添加物理效果的做法

1、双击物件

2、Collision》Add box simplified collision


学习的教程中大量的解释了光照的效果和参数,但是对于游戏来说,这块内容的优先级并没有很高,所以这里标记光照为一个专题攻克难点,目前不做深入整理


把旧工程改成应用lumen的设置方法:

1、Edit》ProjectSetting

2、侧边栏找到Rendering

3、右侧找到Global Illumination,然后把里面的Dynamic Global Illumination Method修改成Lumen

4、修改PostProcessVolume3(后期处理盒子)的lumen设置

5、edit》搜索allow static,将allow static lighting关闭

6、做完这些之后,会重新开启工程,这个时间会等很久。等到再次打开之后,会发现场景亮的吓人,这时候一定要记得,搜索light,把所有的光线的Mobility调成Movable,也就是即时演算,搞定!

nanite的开启也是非常简单,可以双击文件夹中的物体,在编辑栏里面找到nanite setting,将开关开启,就完成了。或者右键点击文件夹中的物体,将nanite改成enable

但是请注意:不要随便开这些设置!因为我开完之后卡成狗,我也不知道哪里出了问题,想尝试的同学可以在新工程里试试。


蓝图事件

由于蓝图后面会有专题整理,这里先介绍几个很基本的内容

移动物体涉及的节点

1、拖动控件到蓝图中,可以直接生成节点

2、物体拖出连线后搜索GetRelativeLocation,获得物体当前位置。物体拖出连线的行为猜测是类似于代码中的对象.属性的形式。

3、右键坐标值,可以值在三维值和3个1维值之间转换。

4、右键搜索添加MoveComponentTo节点,看名字就知道是用来移动的节点,连好移动对象和位置,并串在主流程上,就可以运行测试了。

5、延时是非常常用的功能,只需要在主流程上加一个节点Delay就可以,别忘了写时间。

6、打开一个默认的蓝图,一定会有三个默认的红色节点。目前接触的节点为Event BeginPlay,用法类似于unity里面的Start()方法,可以用它开启主流程

7、如果觉得从头连到尾枯燥乏味,可以点击右键添加CustomEvent,并取好名称。这里的用法类似于代码中的函数,是可以在其他地方快速调用的。调用的时候搜索取好的函数名就可以加入主流程。

8、在蓝图中添加方法,首先在左侧边栏的functions中点击加号,并为新建的方法取名

取好名之后,可以在右侧的details中给出input输入和out输入的内容。输入相当于代码函数中括号内的参数,相当于传入参与计算的内容。输出相当于代码函数中的返回值,表示使用了该方法之后,会得到什么值。

还可以根据需要修改参数名称,类型,数组等,还是比较直观。

完成方法创建之后,使用的时候直接拖入蓝图就可以用了。

9、如果我想要把一个写好的蓝图中的一个值设置成开放参数,我应该怎么做呢?首先在左侧的变量栏(VARIABLES)中点击加号,添加一个新变量。按老规矩,修改它的名称和类型,并且将眼睛打开,这样就可以在外部看到他,相当于将这个值public了。

随后将这个值拖入蓝图中,并选择get value,这样就可以在蓝图中使用这个变量。最后,在外部点击这个蓝图的时候,会在details的default里看到增加的这个变量,这样就可以直接更改蓝图中的值了。如果看不到的话记得回去检查一下可视的眼睛有没有开。

猜你喜欢

转载自blog.csdn.net/weixin_35106335/article/details/127000629