Unity | 光照系统

对于一本指南的书,如果不给出足够的参考资源,而去空谈,会让读者产生很不好的感觉。

文 / 丁建雄
图 / Iurie Belegurschi

小白是单纯为兴趣而写作的独立创作人,如果您喜欢小白的文章,欢迎关注、交流、分享(引用请链接到本文)。

冰山一角

光源简介

  1. 四种光源类型:
    Directional Light: 平行光,被照物效果只与角度有关。
    Point Light:点光源,与相对位置有关(被照物与光源相对距离)。
    Spot Light:聚光灯,模拟手电筒、车灯(被照效果与角度和距离都有关)有方向限制的扇形点光源。
    Area Light:区域光,模拟室内光源效果,只能作用于烘焙模式下。
  2. 烘焙的背景、原理与方法:
    背景与原理:全局光照效果需要考虑到多光源组合的显示效果,如果实时更新,需要消耗大量的计算资源;而对于光源固定后,全局光照其实不需要实时更新,只需要预先烘焙好,效果数据存储到一张记录表之中,每次只需要查表就能更新光照效果,这种方案采用离线查表法代替了实时更新法,用存储空间换取了计算运行的时间,可以大大优化程序运行效率。
    方法:选取除main camera 和 Directional Light 之外的所有对象 -- 选择 Static -- Lightmap Static,这样就完成了需要烘焙的对象选取;接着,将所有需要固定效果的光源选中 -- Mode -- Baked,这样默认模式下会自动进行烘焙操作;烘焙过程中,大家可以看到光影会有细微的变化。
  3. 对于运动物体的实时渲染讨论:
    a. 运动物体随着物体的移动,其光照效果也会发生变化,因此,不能使用 baked 模式;而环境物体由于其相对于光源没有位置变化,因此可以采用 baked 模式。
    b. 对于需要完全采用烘焙模式的对象,可以统一烘焙,同时将光源属性设置为 Mixed。这种模式下,烘焙物体光照效果不变,而运动物体也能产生实时的光照效果。
    c. 对于Area Light的使用,由于其只能使用在烘焙模式下,因此不会对运动的物体产生影响;而如果需要其对进入其中的物体产生影响,则需要采用光照探头组(Light Probe Group),探头组会对处于范围之内的移动物体统一进行实时的光渲染,且能收集到该范围内所有光源光照效果(包括Area Light)。
    d. 对于物体之间的反射(次级反射效果),可以采用Reflection Probe(反射探头)进行渲染,这样可以使得光场分布看上去更真实。
    e. 只有静态物体才能参与烘焙,因此烘焙之前必须将物体设置为static。

结束语

光源是设置虚拟环境真实性的基础,以上只是设置光源属性的一些基本知识点。但是,对于熟练掌握光源设置技巧,还有很长的一段路要走,需要在实践中不断总结。
其实这部分知识应该属于光场分布研究的范畴,在真实世界中,室内装潢设计常常需要用到光场分布模拟,以达到不同要求的光场分布效果。学习unity的过程,就是一个不断接触新的知识领域的过程,虽然都只是看到了冰山一角,但足以让人耳目一新,对新的东西充满期待。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言:最近在做一个美术馆的场景,对于灯光的要求非常高,经过几天的调试和在网上查阅一些资料,总结一下。全局光照,简称...
    Tang7阅读 2,471评论 0 9
  • 这一篇比较偏重于功能介绍,具体的实例操作请参考其他文章:未完成 游戏场景中灯光照明的构成 现实生活中的光线是有反射...
    shimmery阅读 53,583评论 6 59
  • 0x00 前言 在Unity的5.6版本之前的5.x中,主要使用了Geomerics公司的Enlighten【1】...
    陈嘉栋阅读 1,484评论 0 3
  • 今天早上起的有点晚,所以脑袋也有点晕。等洗漱完就开始吃饭,但是因为状态还是很慵懒,所以吃的慢了点儿,等真吃完了,回...
    冯毓阅读 180评论 0 0
  • 我,不知道,按照。。。。。。突然不知道说啥。
    月下独歌阅读 135评论 0 0