烘焙光

35 篇文章 0 订阅

原文链接:烘焙光
烘培光是设置为烘培模式的光照组件
烘培光可以用来表示局部环境光,而不是功能齐全的光照。Unity在运行时之前预计算这些光照的照明,并在在任何运行时灯光计算中都不会考虑它们。这意味着烘培光没有运行时开销。
Unity将烘培光的直接和间接光烘培到光照贴图(照明静态GameObject)和光探测器(照亮动态GameObject)。即使在动态GameObject(参见Wikipedia: Specular highlight了解更多信息)上,烘培光也不能形成镜面光照效果。烘培光不会响应玩家的动作和场景中发生的事件。它们主要用来增加黑暗区域的亮度,而不用调整场景中所有光照。
烘培光也是唯一不能从动态GameObject向动态GameObject投射阴影的光照类型。

烘培光的优势

  • 将静态GameObject向静态GameObject投射的高质量阴影存储到光照贴图中,而不增加成本。
  • 提供间接照明
  • 静态GameObject的所有光照只形成一个可以从着色器的光照贴图中获取的纹理。

烘培光的缺点

  • 没有实时直接光(也就是说没有镜面光照效果)
  • 动态GameObject不能向静态GameObject投射阴影
  • 只能使用光探测器得到静态GameObject向动态GameObject投射的低分辨率阴影
  • 与实时光相比,光照贴图纹理会占用更多内存,因为光照贴图需要额外包含直接光照信息

技术细节

对于烘培光,Unity预处理除了从相机到表面这段光线以外的所有光线路径。查看文档光照模式了解更多关于光照路径的信息。
alt text
烘培模式:所有光照路径会被预处理
Unity会预处理直接烘培光,也就是说在运行时Unity不知道光照的方向信息。少量的纹理操作会处理场景区域烘培光的所有光照计算。没有方向信息,UnityUnity不能进行镜面反射的计算。如果要得到镜面反射,可以使用反射探测器或者混和光或者实时光。查看文档directional light maps了解更多内容。
烘培光无法在运行时照亮动态GameObject。动态物体从烘培光获取光照的唯一方法是通过光探测器。这是烘培光和任何Subtractive mode Mixed Lights的唯一区别(除了主要方向光),Subtractive模式的混和光会在运行时为动态GameObject计算光照。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值