场景灯光设置
1)创建新关卡;
2)导入地图;
3)创建方向光,且将方向光改成可移动(太阳光);
4)创建天空大气(分类为视觉效果);
5)在太阳光中勾选大气太阳光(使太阳光关联天空大气);
6)创建天光,修改为可移动,打开实时捕获;
7)创建指数高度雾,遮挡水平线以下的黑色部;
8)勾选项目设置里的支持天空大气影响高度雾,将指数高度雾的雾内散射颜色和定向内散射颜色改成黑色(让雾的颜色随着太阳光的变化而变化);
9)创建体积云,启用体积插件,创建一个体积材质的材质实例;
将体积材质实例赋予体积云,调整体积云参数;
将体积云的父材质复制一份,并在上面增加云的运动效果,将体积云父材质实例重新指定到修改的父材质上;
PikaWindVector的R和G通道值用来控制云流动时在X和Y轴上的速度;
----------------------------------------------------------------------------------
改善虚拟阴影贴图下,植物背面发黑的情况;
取消植物的投身接触阴影选项;
---------------------------------------------------------------------------
程序化植物;
-------------------------------------------------------------------------------------
模拟真实光照:
-----------------------------------------------------------------------------------------
夜晚的星空
1)将天空球拖入场景;
2)新建一个天空球材质;
3)修改天空球材质属性;
1>混合模式必须是不透明;
2>着色模型为无光照;
3>勾选 为天空 选项;
星空贴图位置;
天空球材质;
关卡蓝图中的日月交替;
------------------------------------------------------------------------------------------------
World Partition
开启World Partition;
重新启动UE编辑器后,地形需要重新加载进地图;
世界分区预览,单元大小和加载范围设置;
游戏运行时,显示加载范围框;
wp.Runtime.ToggleDrawRuntimeHash3d
wp.Runtime.ToggleDrawRuntimeHash2D
世界分区-数据层
打开数据层窗口
新建数据层
选中场景中的Actor后,将Actor加入到数据层
Actor的细节面板里也可以添加,场景中的同一个Actor(包括其复制体)可以加入多个数据层,加入多个数据层后,如Layer1和Layer2,只有Layer1和Layer2同时隐藏后,Actor才会隐藏;
使用数据层来设置需要改变场景的任务;
WP的地图存储方式
HLOD层:
命令行开启和关闭HLOD:wp.Runtime.HLOD 0-wp.Runtime.HLOD 1
创建HLOD层;
官方开放世界示例:
HLOD为系统默认生成
修改HLOD生成规则,将其改成整个地形里,显示范围外的地形都显示为代理(也可以勾选已空间加载后,设置代理的加载范围);
未按HLOD生成代理前
生成代理后
HLOD生成代理需要在命令行下生成,生成后,需要重启UE5编辑器;
生成命令示例:
D:\UE4ENGINE\UE_5.0\Engine\Binaries\Win64\UnrealEditor.exe
E:\ue4_game\UE5-EA\PikaTest\PikaTest.uproject
PikaTestMap.umap -run=WorldPartitionBuilderCommandlet -AllowCommandletRendering -Builder=WorldPartitionHLODsBuilder
HLOD生成效果示例:
编辑器中的模型
测试模型处于加载范围之外,下图为运行效果;
场景全局HLOD参数:
1)实例化,参数如上图;
HLOD效果(树木的效果为LOD最低时的效果):
2)合并网格体:
3)简化网格体
4)近似网格体
-----------------------------------------------------------------------------------
Quixel Bridge插件
保存路径修改:
Nanite:虚幻引擎5的Bridge现在为3D资产提供Nanite全方位标准功能。这些资产可以下载为预先转换的Nanite网格体,能够在导入时加载到项目中。这些资产开箱即用,不需要提前配置任何项目设置。
每个资产每种分辨率都需要单独下载,Nanite为8K贴图,High Quality为4K;
导入UE5,点击Add或者直接将资产拖入到场景中;
-----------------------------------------------------------------------------------
雨雪参数:
Snow Percentage:0-雨 1-雪,0.5-雨雪各半;
Snow Flakes Alpha:雪的透明度;
Snow Flakes Scale:雪的大小;
Snow Flakes Stick:开启后,雪会在地面附着,直到粒子的生命周期结束;
Velocity Randomization:雨和雪的扰动值;
RainDrops Alpha:雨的透明度;
Rain Drops Scale:雨的大小;
Particle Collision Enabled:雨是否会在地面产生水花的效果;
Splash Percentage:雨在地面产生水花效果的百分比;
Max Spawn Distance:生成雨和雪的圆柱体的半径;
Spawn Box Height:生成雨和雪的圆柱体的高度;
Max Lifetime:粒子的生成时间;
Spawn Rate:粒子的生成速率;
General Velocity:粒子的整体下落的速度;
-----------------------------------------------------------------------------------
雨雪地面材质参数:
raining:水滴波纹强度,有效值范围0-1;
Texture Scale:贴图缩放;
wet:水坑面积占比,有效值范围0-1,1时,整个材质都会覆盖水坑;
Wetness_Tighten:控制局部水坑的面积大小;
wind:水坑的扰动强度,有效值范围0-1;
Puddles:是否显示水坑,为否时,不显示水坑,在水坑的地方显示材质湿漉漉的效果;
-----------------------------------------------------------------------------------
灌木参数:
WindBaseForce:摆动方向和强度(mesh整体摆);
BigMeshForceScale && SmallMeshForceScale:根据mesh的高度来控制风的强度;
Stretchable:根据风力的大小改变mesh的大小;
WindBushScale:控制mesh在三个方向上摆动的范围;
WindNoise:mesh的摆频率;
WindTimeScale:各个方向上mesh的摆动频率(mesh的波动,如树木各个枝条上的波动);
Mask Distance Divisor:控制树叶根部向上的强度渐变;
Wind Direction Mask Scale:树叶根部到顶部,整体的遮罩强度;
-----------------------------------------------------------------------------------
树叶参数:
Random per leaf anim offset over time:树叶摇摆的频率大小(单个树叶);
Leaf Anim Speed:树叶摇摆的频率大小(整体);
Random Anim Offset:树叶时间偏移;
LeafSwayDirection:树叶的偏移程序;
LeafSwayAmount && LeafSwayAmountWind:风力强度在这两个值之间取值,间接影响树叶的摇摆频率和幅度;
-----------------------------------------------------------------------------------
小地图:
后期处理体积本质上只是一种混合层类型,它和其它的混合层都有一个权重,所以可以很容易和其它层混合效果;
后期处理可以设置各种后期的所有属性,可以对它们进行控制或覆盖,这些属性在“UScene”类中声明;
后期处理体积包含一个“FPostProcessSettings”结构体,作为它的“Settings”属性,所以在后期处理中可以覆盖场景中其它设置;
Exposure-自动曝光
1)自动曝光计算过程就是首先要根据当前的场景推算出场景的平均亮度,再根据这个平均亮度选取一个合适的亮度域,再将当前场景用一个曝光系数,映射到这个亮度域,最后得到一个比较合适的场景亮度;
2)基本模式和直方图模式是用不同算法计算场景的平均亮度;
3)曝光补偿参数是对数调整;最低亮度为负数时,为无效数字;
4)查看场景中曝光信息;
5)取消游戏设置选项,则在UE编辑器中不会使用自动曝光设置,改用EV100里的曝光值;
Bloom-泛光
1)有泛光效果和没有泛光效果的灯管对比图;
2)Bloom营造视觉效果的技巧:
1>Bloom会把屏幕高亮部分向外溢出扩散;
2>Bloom对高亮部分进行模糊处理;
3)Bloom渲染泛光效果,主要分为三个步骤:
1>第一步需要我们根据某个阈值提取场景中所有明亮的颜色;
2>第二步对高亮部分进行模糊处理;
3>最后将结果添加到原始HDR场景上;
4)Bloom的方法,默认为标准,消耗较小,卷积效果相较标准要好,但性能开销要大,一般用于过场动画;
阈值设置为-1是,场景中所有的颜色都有泛光效果;
Tonemapping
1)Tonemapping就是在有限动态范围屏幕上近似显示高动态范围图像的技术;
2)Tonemapping需要将HDR图像的色度,亮度,动态,动态范围等,全部是映射到低动态图像的标准范围内;
3)Tonemapping是通过类似Gamma映射的方工,让有限的亮度空间都被合理利用,使亮部和暗部能够显示更多的细节;
4)Tonemapping算法具备两个基本的功能:
1>图像亮度压缩;
2>保持图像细节与颜色;
5)在渲染管线中Tonemapping是位于场景曝光和Bloom,光晕等效果之后,在整个渲染流程的最后进行;
6)目前常见的Tonemapping算法有两类:
1>一种是全局色调映射算法,存在算法:直方图均衡化、Gamma、对数校正、直方图规定化、分段灰度变换;
2>另一种是局部色调映射算法,存在算法:分块中值直方图,基于Retinex原理的算法等;
3>在不同的Tonemapping算法里揉合运用了全局或者局部算法,比如早期的Tonemapping算法里包含了自动曝光的计算;
7)虚幻引擎使用的Tonemapping算法:
. ACES是Academy Color Encoding System简称,这是一套颜色编码系统,ACES支持各种平台及设备间转换;不同设备间都可以互通数据;
. 我们只需要ACES里的一小部分;
8)虚幻引擎的ACES偏像于电影化效果,可以通过调整下图中的参数来定制ACES曲线,来改变场景明暗和对比度;黑色调和白色调一般使用默认参数,不做调节;
后期材质
1)后期材质可以访问比较多的数据,像Gbuffer里的很多信息,也跟这个延迟渲染是有非常大的关系的;后期材质对性能消耗相对较大,最好是使用后期框里的参数来进行调整;
Gbuffer查看:
2)后期材质设置,创建普通材质后设置参数;
下图为后期框的参数;
设置后期材质的混合时机,参数默认为色调映射后,此参数为最节省性能的方法;
参数色调映射之前,可以使用时间抗锯齿修复场景的锯齿问题;
3)引擎会将自定义深度的物体渲染到另一个深度缓冲区,也就是自定义深度缓冲区;
4)通过自定义深度缓冲区可以用来屏蔽它们,也可对它们做一些单独的后期处理;
UE5动画重定向
FK Forward Kinematics 正向动力学(单独移动某一个骨骼时,不影响其它的骨骼);
IK Inversed Kinematocs 反向动力学(移动手掌的骨骼时,上臂和下臂会随着手掌移动);
1)新建IK绑定;
2)新增形体移动器,将root设置为形体的根骨骼,并将pelvis设置为新的IK目标;
3)新增肢体IK,用来做手脚的解算;
左上臂upperarm选定为根骨骼,hand设置为新的IK目标;
左大腿thigh选定为根骨骼,foot设置为新的IK目标;
4)将pelvis设置为重定向根骨骼;
5)将全部spine新建为重定向链,spine后也可以选择到neck,PikaSpine为自己命名;
PikaArm_l重定向链;
PikaLeg_l重定向链;
手指重定向链;
6)创建IK重定向器,并选择重定向源的IKRig;
7)设置重定向的目标IKRig;
8)资产浏览器里可以预览源和目标之间,动画的转换效果;
9)动画重定向;
映射为自动映射,自动不对时,可以手动设置;
地形HLOD测试-地图大小为2017
性能查看命令行为stat rhi
编辑器中:
删除HLOD层后的帧数和三角形总数:
默认HLOD层设置-实例化:
合并网格体
简化网格体
可选
Mesh的HLOD测试
编辑器:
无HLOD
实例化:
合并网格体:
简化网格体: