首页 > 其他分享 >UE4 光照技巧

UE4 光照技巧

时间:2023-10-27 20:33:58浏览次数:39  
标签:控制 技巧 Light 阴影 作用 UE4 Shadow 光照

前言

从UE5转到UE4,发现没有了Lumen,对于光照的把控方面我就是个FW。Google关于场景光照设置的技巧,总结了一些常用的

Light Type

  • Directional Light
  • Sky Light(模拟天空的环境光照)
  • Point Light
  • Spot Light
  • Rect Light

Light mobility & Baked Lighting

Static

  • 静态光的位置、光强等都不可改变,只对mobility为static的对象生成阴影
  • 虽然静态光不能为动态对象生成阴影,但依然可以为动态对象提供光照
  • Baked:静态光烘培的光照和阴影都存储于light map

Stationary

  • 固定光的运行时位置不可改变,但亮度和颜色可变(仅影响直接光)
  • Baked:固定光的间接光、间接阴影都存储于light map;直接阴影存储于shadow map
  • 可以使用距离场阴影贴图生成直接阴影(需要启用"Generate Mesh Distance Fields")
  • 因为固定光的直接阴影存储于shadow map,且每个固定光仅仅使用shadow map的一个通道,所以一个物体最多受到四个固定光的照射,否则多出的会以动态形式实现
  • 可以使用Cascaded Shadow Map和distance field shadow降低消耗

Movable

  • 移动光有最强的灵活性,但也有最高的性能消耗(不烘培,主要取决于光源影响的网格体数量及其三角形数量)
  • 不能产生间接光,因此一般使用全局照明生成间接光
  • 视觉效果差,阴影边缘锐利
  • 可以使用Cascaded Shadow Map和distance field shadow降低消耗

Baked 优缺点

  • 优点
    • 优秀的运行期性能
    • 高质量的间接照明
  • 缺点
    • 占用运行期内存
    • 需要提供Lightmass的UV
    • 阴影精度以Lightmass的分辨率决定
    • 不能用于动态对象

动态照明优缺点

  • 优点
    • 阴影精度不受贴图分辨率决定
  • 缺点
    • 性能开销大:主要取决于光源影响的网格体数量及其三角形数量
    • 阴影距离受限
    • 间接光照不够优秀,需要依靠烘培间接照明弥补

Indirect light

Post Process Global illumination

  • 作用:控制Indirect light效果
    image-20231027140611371

Indirect Lighting Intensity(Static)

  • 作用:控制光源对间接照明的贡献程度

Directional Light

Source Angle

  • 作用:控制光源大小距离场阴影的边缘软度

Source Soft Angle

  • 作用:控制光源的柔和程度

Atmosphere Sun Light

  • 作用:sky atmosphere默认该Directional Light为太阳光,会根据Directional Light的角度调整天空颜色和太阳位置,且会给太阳增添日轮效果
    image-20231027145155600

Light Shafts Occlusion(遮挡法)

  • 作用:根据物体的深度创建mask,模糊光线,并将其作用于雾气和大气的遮罩(光束由雾气阴影生成)

    未启用:
    image-20231027155904475
    启用后:
    image-20231027155928181

  • 光束的强度只能和雾气/大气相同

Light Shafts Bloom(光晕法)

  • 作用:控制丁达尔效应的光散射现象——在world space的光源范围捕捉场景颜色(包括半透明和雾气散射),且从光源进行放射性模糊
    image-20231027143929705
    image-20231027144001066

  • 不受雾气密度限制

Sky Light

Source Type

  • SLS Caputured Scene:捕获场景的光照信息作为照明贴图
  • SLS Specified Cubemap:以指定的照明贴图作为光照计算

Num Sky Lighting Bounces

  • 作用:控制Sky Light的反弹次数
    image-20231027163010561
  • 一般控制在3-5次,多了变化也不大

Shadow

Cascade Shadow Map(Dynamic)

  • 作用:控制物体与摄像机的距离对阴影分辨率的影响,越远分辨率越低。当超出设定的最大距离时,会将其重新混合到静态烘培阴影
    image-20231027153936454

Far Shadow(Dynamic)

  • 作用:Far Shadow可以突破CSM的阴影显示限制范围,用于显示远处的阴影
  • 启用
    1. 在定向光面板增大"Far Shadow Cascade Count"
    2. 在需要启用Far Shadow的对象上启用"Far Shadow"

Distance Field Shadow(Static)

  • 作用:相对于SCM性能更优,且Distance Field Shadow可以实现更便宜的软阴影。但因为距离场的数据是预计算的,所以不支持动态效果
  • 阴影的软硬程度通过"Source Angle"控制

Shadow Amount

  • 作用:控制光源投射阴影的强度

Shadow Resolution Scale(Dynamic)

  • 作用:改变动态阴影贴图的分辨率

Shadow Filter Sharpen

  • 作用:控制动态阴影边缘的锐化程度

Cast Static Shadow

  • 作用:控制是否从静态对象投射阴影

Cast Dynamic Shadow

  • 作用:控制是否从动态对象投射阴影

Cast Deep Shadow(Dynamic)

  • 作用:是否投射高质量的毛发阴影

Fog

Exponential Height Fog

  • 作用:为场景增添高度感指数感

  • Volumetric Fog:擅长实现中近距离的体积光

    • 启用

      先启用"volumetric fog"
      image-20231027190124783

      在需要添加体积雾的光源上开启"Cast Volumetric Shadow"
      image-20231027190246678

Volumetric Scattering Intensity(Dynamic)

  • 作用:控制光源在体积雾中的体积光散射程度

Cast Volumetric Shadow(Dynamic)

  • 作用:控制是否在体积雾中投射动态体积阴影

Scattering Distribution

  • 作用:控制光线在各个方向的散射量

Albedo

  • 作用:控制参与媒介的总体反光度
  • 云、雾及基于水粒子的水雾的反射率(Albedo)都接近1

Emissive

  • 作用:控制指数高度雾散射的光线密度

View Distance

  • 作用:设定一定距离,大于此距离开始计算体积雾

Extinction Scale

  • 作用:高度雾粒子消光量

Static Lighting Scattering

  • 作用:控制体积雾中静态光照的散射强度

DFAO

  • 作用:使用距离场得到可移动的天空光照的阴影,该有向距离场体积在各刚性网格体周围预计算,以产生环境光遮蔽
    image-20231027163442818

  • DFAO是实时动态的

  • 与SSAO不同,因为遮蔽在场景空间遮挡物中进行计算,所以出屏丢失数据不会导致瑕疵

Foliage

  • 在使用Foliage绘制Actor时,必须启用Affect Distance Field Lighting
    image-20231027164358251
  • 为了更好的效果,可以在Static Mesh Editor中启用Two-Sided Distance Field Generation
    image-20231027164812331

reference

https://www.bilibili.com/video/BV1sJ411B7oX/?vd_source=9421d881d6e2b0ef91b5e1db463db73f

https://www.youtube.com/watch?v=nLFTStnuPaI

https://zhuanlan.zhihu.com/p/377618016

https://zhuanlan.zhihu.com/p/365645774

https://zhuanlan.zhihu.com/p/377618016

https://zhuanlan.zhihu.com/p/447812762

标签:控制,技巧,Light,阴影,作用,UE4,Shadow,光照
From: https://www.cnblogs.com/chenglixue/p/17793083.html

相关文章

  • 第 11 节 Python程序调试和异常处理技巧
    常见的错误语法错误:例如,不正确的缩进、未定义的变量、括号不匹配等。运行时错误:例如,尝试访问不存在的文件、内存溢出等。类型错误:例如,将字符串与整数相加等。逻辑错误:例如,程序没有按照预期的流程执行、条件判断不正确等。输入错误:例如,无效的输入、输入的数据类型不正确等。常见的......
  • DP技巧与DP杂题
    DP常用技巧增加维数交换答案与状态可行解转最优解删掉本质相同的状态对部分状态\(dp\)遇到转移顺序的困难,考虑记忆化搜索遇到转移细节过多的问题,考虑从\(i\rightarrowi+1\)而不是\(i-1\rightarrowi\)考虑状态时,先把需要记下来的都记一遍,再考虑优化DP杂题CF83......
  • 潮玩扭蛋兔有技巧的软件开发
      潮玩市场的火爆,扭蛋兔的模式加入,游戏的形象就瘦到了众多年轻人的喜好。为了迎合年轻人的想法,我们就开发一款针对潮玩扭蛋兔的游戏程序软件。  一、软件需求  在开发软件之前都是先确定软件的需求,软件的用户群体,使用场景,功能需求,为后续的开展明确方向。针对潮玩扭蛋......
  • https://www.modb.pro/db/1717179181560324096 --转载 Oracle 批量更新(BULK)优化技巧
    面对一个需要更新大量数据的任务,我平时的处理方法是通过循环,每N行提交来完成这个任务。这样做的两个主要原因:1、频繁地提交大量小事务比处理和提交一个大事务更快,也更高效2、没有足够的UNDO空间今天在学到了一种新的解决思路,在此记录一下方便后面使用。  假设我们有一个表T,......
  • 分享!10个使用Angular CLI的实战应用技巧
    如果您正在使用Angular,就知道AngularCLI有多有用。它简化了创建和管理Angular项目的过程,凭借其直观的命令行界面,它可以轻松处理复杂的任务,如生成组件、服务、管道、指令等。但是您知道如何有效地使用AngularCLI吗?在本文中,我们将分享10个超级棒的实战应用技巧,来帮助您掌握Angula......
  • 高效技巧揭秘:Java轻松批量插入或删除Excel行列操作
    摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言在职场生活中,对Excel工作表的行和列进行操作是非常普遍的需求。一般情况下在Excel中,可以通过右键菜单插入或者删除行与列。不过在软件开发......
  • Redis 7.0 源码环境搭建与阅读技巧
    天下武功,无坚不摧,唯快不破!我的名字叫Redis,全称是RemoteDictionaryServer。有人说,组CP,除了要了解她外,还要给机会让她了解你。那么,作为开发工程师的你,是否愿意认真阅读此心法抓住机会来了解我,运用到你的系统中提升性能。我遵守BSD协议,由意大利人SalvatoreSanfilippo......
  • Qt Creator常用快捷键及技巧提升编码效率
    转:https://blog.csdn.net/luoyayun361/article/details/105431913https://blog.csdn.net/u_topian/article/details/130366561https://blog.csdn.net/Zeek_0114/article/details/98938547代码编辑1.定义触发片段打开工具->选项->文本编辑器->片段,右侧点击添加2///三个斜杠......
  • 「实用技巧」后端如何使用 Eolink Apikit 快速调试接口?
    程序员最讨厌的两件事:写文档别人不写文档写文档、维护文档比较麻烦,而且费时,还会经常出现API更新了,但文档还是旧的,各种同步不一致的情况,从而耽搁彼此的时间,大多数开发人员不愿意写API文档。EolinkApikit为后端工程师提供API文档的创建与自动化生成、快速接口调试、以......
  • Total Commander使用技巧
    <1>常用的快捷键1.选中文件文件夹后拖放就是复制2.拖放的同时按住shift是移动3.shift+ctrl+拖放是建立快捷方式4.F4编辑文本文件5.shift+F4新建文本文件6.F7新建文件夹7.alt+↓历史文件列表,ctrl+D常用文件列表8.alt+Enter:查看文件属性9.支持多标签浏览ctrl+T新建标签......