线性空间 android 变黑,Unity手游开发札记——Unity线性空间下移动设备上烘焙变暗问题处理笔记...

0. 写在之前

其实针对这个问题已经写了一篇很简单的填坑笔记了,但是UWA说希望那篇文章稍微扩充一下放到USpark系列中,于是有了此文。在整理本文的过程中,又想明白了一些之前没有想明白的技术问题,算是对线性空间下烘焙场景变暗的原因有了一个真正的理解,这也是整理和写博客的收益之一吧~

1. 问题确认

最近(临近测试之前……),美术同学反馈在移动设备上场景感觉比平常开发的PC上要暗很多。其实之前观察到过这个现象,当时场景的烘焙效果还没完全确定,以为是不同的烘焙版本,或者设备屏幕亮度不同、色差等问题,一直没有怎么关注。

知乎有句名言——“先问是不是,再问为什么”,那么解决问题之前第一步要做的事情就是确认问题。

其实方法很简单,就是排除前面提到的不同烘焙版本、设备色差等问题,使用同一烘焙版本的场景,在移动设备上进行截图操作,然后传输到手机上在同一块屏幕下进行对比,发现场景亮度差别的确很大。

lmdarker1.png

手机设备上的截图效果

lmdark2.png

PC设备上的场景截图效果

2. 原因排查

确认问题的确存在,而且很严重之后,我们先做一系列的排查实验来检查问题可能出现的原因。

首先在同一屏幕下对截图进行对比,观察是否是全屏变暗,发现使用实时光照的角色没有这个问题,因为对比的关系反而会觉得角色更亮(请忽略上面截图中的角色灰色问题,那个是因为在我的MX4 Pro上材质兼容性存在问题导致的。。。),排除可能是某些错误的后处理导致全屏变暗的可能,基本确认是场景lightmap相关的问题。

检查Unity Editor中切换到安卓平台,直接运行没有问题,但是如果加载AssetBundle包进行运行,就出现了和设备上一样的问题。推测可能和AssetBundle的打包相关,但是无法确认更多细节。

制作一个简单的Demo,使用非AssetBundle的方式进行打包,放置到手机上进行截图对比,发现也存在变暗的问题,排除单纯的AssetBundle打包导致的问题;

在Demo中,将我们自己的材质替换为Standard材质,进行打包对比测试,依然有变暗的问题,排除我们项目自身材质bug。

因为我们在移动设备上使用了线性空间,因此怀疑可能是线性空间导致的,切换颜色空间进行对比实验,发现伽马空间下烘焙效果也有色差,但是没有线性空间明显。

经过这一系列的实验对照之后,我有点怀疑这是一个Unity的“特性(bug)”了。。。顺便说句题外话,我们使用的是比较新的Unity 5.5.4f版本,之所以从之前较为稳定的5.3.6版本升级上来,很重要的原因之一是我们想要在移动设备上使用线性空间。

3. 资料检索

问题的矛头指向了烘焙,又是Standard材质也会存在的问题,那么猜测网络上应该有不少问题反馈和相关资料,于是照常进行一波相关资料的检索和收集。

3.1 Unity Issue Tracker

首先怀疑是否是Unity的官方“特性(bug)”,搜索了一下issuetracker,果然找到一个似乎相关的bug汇报BAKED LIGHTMAP IS DARKER ON ANDROID PLATFORM COMPARED TO PC PLATFORM说是Fixed in Unity 5.5.5,没提到线性空间的设置,我们7月份要测试也等不到5.5.5版本了,所以暂时先记录下,继续。

3.2 UWA问答

一般来讲,有两种情况可能会导致色偏和亮度差异。

1.Unity烘焙的Lightmap是32bit的HDR图,而移动设备通常不支持HDR图(32bit per channel),会按照LDR图

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值