昨天在 Unity 5 全局光照系统Enlighten问题的文章中,我们为大家解答了:“为什么场景烘焙出来的lightmap上有Realitime灯光的颜色?”和“为什么在Unity 5中动态更换lightmap没有作用?” 这两个问题。今天,我们将继续提供其他相关问题的解答。为什么烘焙的point灯光会有一圈圈的色阶变化?
大家在烘焙lightmap的时候可能会发现类似下图的奇怪效果。

图中我们使用了一盏Baked的point light,烘焙之后发现光照效果会出现一圈圈的色阶突变。
原因是我们使用的是压缩版本的lightmap。如下图Lighting窗口中选项所示:

这个压缩虽然可以帮助我们减少游戏最后的打包体积,但是对场景的光照效果也会产生影响,所以 对于要追求最好的光照效果的场景建议不要勾选此选项。
我们来看看去掉此选项后的效果,现在,色阶变化不存在了。

为什么在Realtime灯光下的效果和改为Baked烘焙的效果差别很大?
这个问题美术同学会经常遇见。美术一般在烘焙场景之前会先把灯光都设为Realtime, 来实时查看调整灯光参数后的效果。调整到较满意的效果之后,就把灯光类型改为Baked然后进行烘焙。   在Unity 4中这样做一般可以达到烘焙之后的效果与实时灯光的效果比较接近,但是在Unity 5中可能会发现差别很大。究其原因主要有两点:
1、在上面我们已经提到,新的灯光参数Bounce Intensity,这个参数的调整会影响最终烘焙效果中间接光分量的比例。
2、Unity 5中对Gamma和Linear颜色空间的实现做了调整以更符合真实情况,但这也导致实时灯光效果与烘焙效果在两种颜色空间中存在差异。
所以,建议美术在Linear颜色空间中进行Realtime灯光的调整。因为在Linear颜色空间下,实时灯光与烘焙效果最为接近。不过由于目前移动平台并不支持颜色空间切换,我们可以让项目在PC平台下切换为Linear颜色空间。该选项在Player Settings中的Other Settings里,如下图所示:
另外,为了让Bounce Intensity参数的调整也能反映在Realtime灯光中,建议美术在实时调整灯光参数的时候在Lighting窗口中勾选Precomputed Realtime GI,如下图所示:
当然Precomputed Realtime GI也是需要在场景静态物体的位置固定之后烘焙一次的,所以如果怕会忘记烘焙的话也可以勾选Build旁边的Auto选框。
最后,在调整好灯光效果之后我们把灯光类型改为Baked(或Mixed),取消勾选Precomputed Realtime GI,并勾选Baked GI,然后进行烘焙。
下面展示了两种颜色空间下Realtime灯光与烘焙效果的对比:

我们可以看到Linear颜色空间下两种光照方式的效果是最为接近的。
另外还有朋友曾经咨询:项目的场景在手机上的烘焙效果与Editor中看到的实时灯光的差异非常的大,已经远远比上面对比图中的差别要大了。
如果大家也有这样的问题,那么请注意: 不同的屏幕对于同一种颜色的表现都会有或多或少的差别,要对比手机与电脑上看到的颜色差别不能直接进行对比,而应该让两个效果在同一个屏幕中对比。一个简单的办法是在手机中截屏然后传到电脑中进行对比。感兴趣的同学可以尝试,保证你一定会为手机与电脑屏幕的颜色解析差异感到惊讶。
怎么让不同物体占用不同数量的lightmap像素?
这个问题经常会有开发者遇见。主要目的是为了最大限度缩减lightmap的大小,通过让场景中次要物体的lightmap效果粗糙一点来节省游戏的空间。
其实做法非常简单,我们可以通过lighting窗口中Object页面里的Scale In Lightmap来设定某个选定的Object在lightmap中占用像素的多少,默认是1对于重要的物体通过提高这个数值来增加此物体使用的lightmap像素,反之我们可以把这个值设为0到1之间来减少此物体所使用的lightmap像素。选项如下图所示:

有关Unity 5的Enlighten全局光照系统中的相关问题就介绍到这里,如果大家在开发过程中遇到类似问题,或有相应的解决方法,欢迎给我们留言或是在官方论坛:http://forum.china.unity3d.com 与我们交流!

详解Unity 5 全局光照系统Enlighten问题(下)相关推荐

  1. 详解Unity 5 全局光照系统Enlighten问题(上)

    Unity 5正式版面世已经一段时间,许多开发者都已经在使用Unity 5进行开发.大家在使用Unity 5时或多或少都会碰到一些问题,今天我们Unity的官方技术工程师,柳振东将在本文中针对Unit ...

  2. 详解Unity中的Nav Mesh新特性|导航寻路系统 (二)

    前言 第一篇我们简要概述了新版NavMesh的一些新增功能,以及旧版的对比.本篇我们来讲一讲NavMeshSurface.NavMeshLink这两个组件的参数以及如何应用,接下来就进入正题吧. 本系 ...

  3. 详解Unity中的粒子系统Particle System (六)

    前言 今天写粒子系统的第六篇文章,讲到这,一些主要模块其实已经讲完了,剩下的就是一些无关紧要或者更加高级的模块了,比如涉及到物理碰撞模块的,涉及到光照系统模块的等等.今天先把剩余无关紧要的模块给讲了, ...

  4. 详解Unity中的粒子系统Particle System (二)

    前言 上一篇我们简要讲述了粒子系统是什么,如何添加,以及基本模块的介绍,以及对于曲线和颜色编辑器的讲解.从本篇开始,我们将按照模块结构讲解下去,本篇主要讲粒子系统的主模块,该模块主要是控制粒子的初始状 ...

  5. 详解Unity中的粒子系统Particle System (四)

    前言 上一篇我们主要讲解了Shape形状模块,以及Emission发射模块,这是粒子系统中最为重要的两个模块,学会了它们我们足以做出惊艳的效果,比如霰弹枪的发射,蘑菇蛋的冲击波等等.本篇讲的内容依旧重 ...

  6. 详解Unity中的粒子系统Particle System (七)

    前言 本篇来讲一讲Collision和Triggers模块,这两个模块主要用于粒子系统与物理世界的交互,一个是碰撞器,另一个是触发器.有了这两个模块我们又可以做出更炫酷的粒子效果啦! 目录 前言 本系 ...

  7. 详解Unity中的粒子系统Particle System (十)

    前言 第十篇,我们讲Light模块和Trails模块,这两个模块不像前几篇所讲的模块一样基本都是对粒子的运行逻辑变化产生影响的,而是对粒子的呈现效果产生影响.比如爆炸粒子不能只有爆炸,还要有光亮,被炸 ...

  8. 详解Unity中的粒子系统Particle System (九)

    前言 今天讲Texture Sheet Animation模块,先前我们已经讲了很多很多模块,通过上述模块可以实现很酷的效果,但是缺了一点真实感.比如说爆炸特效,仅指望单独的粒子来模拟真实的爆炸效果是 ...

  9. 详解Unity中的角色控制器

    前言 如何让玩家所操纵的角色动起来,这在Unity中很容易实现,但是如何确保玩家所操作的角色不会产生一些非常违反物理常识的情况?而这就需要进行大量的检测,已确保玩家所操纵的角色正常.所幸Unity为我 ...

最新文章

  1. osi 模型 tcpip网络模型
  2. 菜鸟requireJS教程---1、初识requirejs
  3. ASP.NET中防止页面多次加载的IsPostBack属性
  4. php开源项目博客,F2blog - 博客Blog - PHP开源项目 - 开源吧
  5. Fabricjs在Canvas上插入照片并设置缩小和翻转属性
  6. mysql事务实战_MySQL - 实战 (2) - 事务隔离
  7. 智能支付稳定性测试实战
  8. python中的编码问题
  9. 全网首发:解决办法:shmget()一直失败,errno=-22
  10. ipad一直卡在白苹果_近万字多图带你玩转iPad——iPad指南
  11. mysql创建视图并加注释_在mysql中为视图创建注释
  12. 教学向|比较难的人体构造建模,用zbrush构建脸部与肌肉形状
  13. 大话GraphQL新手上车
  14. 在网易做游戏美术设计师是种什么体验?
  15. 基于SSM框架的杰森摄影工作室选片系统的设计和开发论文
  16. Shiro反序列化漏洞【详细解析】
  17. Hadoop流程---从tpch到hive
  18. 第五章 留数及其应用
  19. AMBA 系列之 AXI 总线协议
  20. NC6自助开发文件存放路径及一些总结以及修改自助登录界面的样式、图片、添加文字提示等文件

热门文章

  1. 【原】PHP从入门到精通2小时【图文并茂】
  2. 喜欢奉承的人,往往能力配不上“人脉” | 架构师之路读书会(第四期)
  3. Reflect的用法赶紧学起来
  4. 史上最全的Java进阶书籍推荐,你看了几本?
  5. SAP JCO 配置
  6. 微信小程序 input 输入框控件 bindinput 没有响应
  7. java 皮肤包_Java swing图书管理系统无注释美化皮肤包版1:含SQL部分和效果图
  8. BeeconX为东钱湖湖墅搭建千兆别墅组网方案
  9. 数字电路-逻辑代数基础
  10. jstree插件对树操作增删改查的使用