关于 Unity 版本升级后可能会引起偶发光照图错乱的问题
近期项目遇到一个奇怪的问题,使用 Unity 2017 版本升级后,团队中某些人的机器光照图总是不正确,而有的人是正确的,一直不知道为什么。
为了查到这个奇怪问题的原因,首先查看了美术的在 Max 中的导出设置,虽然不是特别规范,但也没啥特别的问题,且声称以前也是这样导出,但是没有遇到过这样的问题;然后查看了美术使用的版本,美术果然没有升级,还是用旧版本的 Unity 生成光照图,然后把相关的场景资源全部到导出成 Package,然后再导入主干的工程并签入,那么这个过程就比较值得怀疑。
还有一点,如果两台机器的光照图不一致,那么他们的光照图 UV 肯定是不一样的,用肉眼也能看出来。但是有个问题是我的电脑得下来总是对的,想看错误的复现也不容易,好在美术找到了一个之前的 Package 我导入后如愿出错,然后其本机是正确的,出现了问题这样就比较好查了。于是拿出之前写的一个 光照图查看工具,在我本机和美术的机器上查看,果然出错模型的光照图的 UV 分布明显不一致。
后来终于确认原因并且可以复现:Unity 导入模型会做顶点优化,顶点数并不是和 Max 中一致,重点是不同 Unity 版本即使同一个模型优化过的顶点数也不一致(应该是算法不同的问题),顶点数不同自然光照图 UV 分布生成的也不同。所以比如在 Unity2017.3 中导入一个模型并生成光照图,导出成 Package 并导入到 Unity2017.4 或者其它版本,会发现光照图 UV 错乱,因为重新导入的模型顶点和光照图 UV 都不同了。所以同一个 Team 中的美术同学一定要和开发人员使用相同版本。
这里有一个更隐蔽的情况:大家都使用同一个 Unity 版本,但是不同的机器依然会出现某些人光照图错乱的问题。表现正常的机器是由于使用低版本的 Unity 烘焙完光照图或者更新了别人烘焙完的光照图后,然后直接用高版本的 Unity 打开这样是不存在问题的;如果同一个项目删掉 Library 后,再用高版本的 Unity 重新打开这时候就不对了。究其原因是因为不删除 Library 升级项目每个模型不会被重新导入,顶点数维持在老版本导入的结果,一旦删除 Unity 就会重新按照新版本来导入并生成顶点数,当然其实你在新版本中修改模型的设置,也会导致按照新版本来重新导入模型而发生光照图错乱。
以上就是所有原因,并可以轻松复现,结论就是:1.Team 中所有人必须要保证使用同版本的 Unity 开发;2.升级过程中需要删除本地的 Library 然后再用新版本 Unity 打开。
关于 Unity 版本升级后可能会引起偶发光照图错乱的问题的更多相关文章
- Unity 5.6中的混合光照(下)
https://mp.weixin.qq.com/s/DNQFsWpZm-ybIlF3DTAk2A 在<Unity 5.6中的混合光照(上)>中,我们介绍了混合模式,以及Subtracti ...
- Unity光照图UV显示
美术的同学觉得 Unity 光照图烘焙的不够美丽,需要在 ps 里修一修,但是不知道每个物体对应的光照图在哪个区域,UV 是如何分布的,于是要求写一个工具显示,于是有了下面这个: 打开场景自动读取当前 ...
- 《Unity預計算即時GI》笔记:二、光照图
说明 这篇文章是对<Unity預計算即時GI>这个系列文章的笔记. 光照图 什么是光照图 光照图在第三章中有如下的定义,读起来很是费解. 一個光照圖(Chart)是表示一個光照貼圖的區域, ...
- Unity 5.6中的混合光照(上)
https://mp.weixin.qq.com/s/AbWM21sihHw5pFdMzENDPg 在Unity 5中,光照得到了很大的改进.现在,创建高度逼真的游戏已成为可能.但是,出于对性能的考虑 ...
- node版本升级后,原有项目打不开
node版本升级后,原有项目出现以下问题 gulp[8272]: src\node_contextify.cc:628: Assertion `args[1]->IsString()' fail ...
- unity 3d 之合并网格和贴图(combine mesh and texture)
https://www.cnblogs.com/eangulee/p/3877824.html unity 3d 之合并网格和贴图(combine mesh and texture) 本人是个小白 ...
- 浅析Unity中的Enlighten与混合光照
0x00 前言 在Unity的5.6版本之前的5.x中,主要使用了Geomerics公司的Enlighten[1]来提供实时全局照明以及烘焙全局照明,在5.6之后Unity引入了新的Lightmapp ...
- 【Unity Shaders】Shader中的光照
写在前面 自己写过Vertex & Fragment Shader的童鞋,大概都会对Unity的光照痛恨不已.当然,我相信这是因为我们写得少...不过这也是由于官方文档对这方面介绍很少的缘故, ...
- 【Unity Shaders】Diffuse Shading——漫反射光照改善技巧
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
随机推荐
- LeetCode-Evaluate Reverse Polish Notation[AC源码]
package com.lw.leet2; /** * @ClassName:Solution * @Description: * Evaluate the value of an arithmeti ...
- css之display:inline-block布局--转
css之使用display:inline-block来布局 css之display:inline-block布局 1.解释一下display的几个常用的属性值,inline , block, in ...
- AngularJs附件上传下载
首先:angular-file-upload 是一款轻量级的 AngularJS 文件上传工具,为不支持浏览器的 FileAPI polyfill 设计,使用 HTML5 直接进行文件上传. 第一步: ...
- poi复杂excel的实现
一:前言 最近帮一个朋友做excel的导出功能,对于我来说还是挺头疼,我看了下表格样式,对于我来说还是挺头疼的,想当年耗子刚刚出社会的时候做的第一份工作,第一份任务就是把把word转换为html,在这 ...
- SMB MS17-010 利用(CVE-2017-0144 )
exploit-db : https://www.exploit-db.com/exploits/42315/ 该漏洞的影响版本很广泛:Microsoft Windows Windows 7/8.1/ ...
- 组合数+逆元 A - Chat Group Gym - 101775A
题目链接:https://cn.vjudge.net/contest/274151#problem/A 具体思路:我们可以先把所有的情况算出来,为2^n.然后不合法的情况减去就可以了.注意除法的时候要 ...
- vps建站教程 CentOS6如何安装配置FTP服务器
通过之前的几篇文章,我们都知道了如何配置PHP环境,也知道如何保护我们的vps以及如何绑定多个域名建设多个网站.有时候我们为了让我们的朋友也能用我们的vps建站又不想给他们太多权限,有时候我们想要当个 ...
- Codeforces 870E Points, Lines and Ready-made Titles 计数
题目链接 题意 给定二维坐标上的\(n\)个点,过每个点可以 画一条水平线 或 画一条竖直线 或 什么都不画,并且若干条重合的直线被看做同一条.问共可能得到多少幅不同的画面? 题解 官方题解 仆の瞎扯 ...
- linux内核数据结构之链表【转】
转自:http://www.cnblogs.com/Anker/p/3475643.html 1.前言 最近写代码需用到链表结构,正好公共库有关于链表的.第一眼看时,觉得有点新鲜,和我之前见到的链表结 ...
- 64_t5
texlive-mkpattern-svn15878.1.2-33.fc26.2.noarch..> 24-May-2017 15:54 38178 texlive-mkpic-bin-svn3 ...