Unity光照相关

1. 光源类型

Unity支持多种类型的光源,包括:

  1. 点光源(Point Light):从一个点向四周发射光线,适用于需要突出物体的光源。

  2. 平行光(Directional Light):从无限远处的一个方向照射,适用于需要模拟太阳或月亮等光源。

  3. 聚光灯(Spot Light):从一个点向一个方向发射光线,适用于需要集中光源来照亮某个区域。

  4. 区域光源(Area Light):将光源区域化,使得光源在某个区域内分布均匀,适用于需要模拟某种特定的照明效果。

重要属性

1.在Range属性上向右或向左拖动以增加或减少光在场景中的传播距离;

2.在Intensity属性上向右或向左拖动以增加或减少其设置范围内的灯光强度;将Intensity属性设置为200到600之间更实际

  1. Indirect Multiplier属性会影响 此光源提供的间接光的强度(被传感器接收前多次反弹的光);

如果你设置它:

低于1时,间接光每次从物体反弹时都会变暗。这是真实光照的行为方式,但您可能希望覆盖该行为以实现特定的光照效果。

高于1,间接光会随着每次反弹而变亮。这并不自然,但如果您试图照亮场景中的黑暗封闭空间,它会非常有用。

  1. 选择color属性框打开颜色选择器窗口并调整灯光的颜色

2. 光照模式

  1. realtime: 设置为realtime模式的光源,都会对所有能被它照射到的表面施加影响,那为啥叫realtime呢,其实所谓的realtime就是平时我们写shader的时候直接在shader里拿到并用于计算的光源,它是在shader里每帧更新的,所以叫realtime模式,

  2. baked: 对于这种光照模式的光源就要设计到光照烘焙了,所谓的光照烘焙,是利用的另外的程序获得unity中的场景数据,然后在场景中各种光源的相应方向上发射出很多束光线,这些光线经过反弹,就会形成所谓的间接光对场景施加更多的影响,然后经过几次反弹后,就完成了每个物体的光照计算,并把结果保存在每个物体各自的贴图中,下次在场景启动的时候,直接采样这些贴图就行了

  3. mixed: 在烘焙的时候烘焙间接光照信息,而运行时就是跟realtime模式一样贡献直接光就行了

3. 阴影

  • Light中Shadow Type
  • BlobShadowProjector
  • 平面网格制作阴影

常见的几种模式 (realtime非常耗费性能)

  1. realtime: 在这种模式下,无论是静态对象和动态对象都会在每帧实时的计算该光源对表面的影响,众所周知,一般动态光源的阴影都是利用阴影贴图计算的,而一个光源就需要一张阴影贴图,像是点光源的话更是需要六张阴影贴图,所以为了避免不必要的开销,unity中针对比较远的物体可以直接不渲染它的阴影贴图,这里究竟多远就不渲染呢?在quality setting里面有一个shadow distance参数就是控制究竟什么距离下才渲染阴影的。也就是收realtime模式的光源会对所有动态和静态的物体投射阴影,前提是它们距离摄像机的距离要小于阴影距离。

  2. baked: 这里因为是baked模式,所有对于设置为此模式的光照,它的所有光照信息都会被烘焙到所有静态物体上,包括光照探针,注意这里说的是静态物体,意思就是烘焙光照的时候相当于把动态物体直接完全忽略了,然后运行游戏的时候因为该光源所有的光照信息都已经存在相应的静态物体的光照贴图中了,所有运行时具有baked光照模式的光源就会直接"退休",如同没有存在过一样。

  3. mixed: 因为unity针对mixed模式的阴影表现有一些额外的设置,这些设置就是在light setting里面mixed lighting下的light mode设置,有三种,分别为baked indirect,shadowmask,subtractive,注意这些设置只对mixed光照模式有效果,而且是针对场景中所有的mixed光源的。先说说baked indirect设置,这是最符合直觉的设置,上面说过mixed光照模式实时计算直接光,烘焙间接光,所以这种设置下光源会把它的间接光直接烘焙到静态物体的光照贴图中的(记住这一点,烘焙光照永远只能烘焙进静态物体中,光照探针也算),注意间接光因为太弱了一般不会造成阴影,烘焙完以后你还能在editor模式中看见阴影那是因为mixed模式光源的直接光是实时的。所以运行的收mixed模式造成的阴影效果就更realtime模式一摸一样(使用阴影贴图的动态阴影)。

接下来是subtrative模式,这是三种模式里开销最低得一种模式,为什么呢,启用这种设置以后,场景中所有的mixed光源会在烘焙的时候烘焙间接光和直接光,前面说过baked indirect设置下尽管间接光被烘焙进光照贴图里去了,但是mixed光源的直接光部分会像realtime光照模式的光源一样既照射到静态物体上又照射在动态物体上

4. Post-Processing后期处理

触发器为摄像机本身,一般用于调整屏幕颜色和添加光晕效果,提升画质。

Unity学习之PostProcessing的使用_post processing_斗淇的博客-CSDN博客

几种常用的功能:

  1. Color Grading颜色分级:见下方

  2. Bloom 高斯模糊:再现真实世界相机的成像伪像的效果。该效果产生从图像中明亮区域的边界延伸的光的条纹。

  3. Vlgnette渐晕:渐晕是用于与中心相比朝向图像边缘变暗和/或去饱和

5. Global illumination全局照明

是一组可在 Unity 中用于提供逼真照明效果的技术。这些技术被称为全局照明,因为它们模拟直接光和间接光,而不仅仅是直接光。

  1. 烘焙全局照明系统:光照贴图、光照探针、反射探针

  2. 实时全局照明系统:Enlighten光照贴图、光探头

全局Light-Scene-New LightSetting配置全局烘焙模式

6. Light Probe光照探针

用于处理烘培的场景下,需要对动态物体进行正确的照亮。

使用Scene-shader-Contributors / Receivers 查看光照情况

7. Reflection Probe反射探针

默认情况下,场景内的对象直接从天空盒中获取反射并形成光照贴图,加入反射探针后,将从探针范围内取样并把结果写入到y一张立方体贴图中,让周围经过的物体获得反射影响。

  • 检查其Type是否设置为Baked
  • 启用Box Projection属性
相关推荐
_egg_4 小时前
Unity音频导入设置
unity·性能优化·音频设置·音频优化
tealcwu7 小时前
【Unity基础】Unity中碰撞及触发类物理交互应用场景说明
unity·游戏引擎·交互
_oP_i12 小时前
Web 与 Unity 之间的交互
前端·unity·交互
avi911113 小时前
Unity插件-Smart Inspector 免费的,接近虚幻引擎的蓝图Tab管理
游戏引擎·虚幻
Dr.long15 小时前
unity老猿随笔
unity·游戏引擎
虾球xz16 小时前
游戏引擎学习第11天
stm32·学习·游戏引擎
许许前进16 小时前
问题本记录(2):Unity+机器学习
unity·游戏引擎
虾球xz18 小时前
游戏引擎学习第10天
学习·游戏引擎
_乐无1 天前
Unity 性能优化方案
unity·性能优化·游戏引擎