sp 导出unity哪个_SP与Unity的效果差异分析

经常会听到3D美术小伙伴吐槽,说SP内做好效果后导入Unity里效果不一样了,然后就要根据Unity里的效果再调整一番,经常是来回调整好多次,十分难受,就不能做一个和SP内效果一样的Shader嘛?

按理说大家都是PBR基于物理的渲染,没道理效果不一样,但是我以前做美术的时候用SP的经验告诉我确实是存在这个差异,当时没有深入去想,现在是时候填上这个坑了.

首先我的第一想法就是两边的光照环境不一样,导致了效果上的偏差.PBR的材质属性大家是一样的,只是光不一样了.为了验证我的想法,我需要在Unity中创建一个和SP内一模一样的环境来对比两者的效果:

SubstancePainter内,我选的Enivronment Map是SP内置的Panorama这张HDRI图.

Enviroment Opacity调成100,完全显示.Environment Blur改成0,不要模糊.方便我观察周围环境.其他都是默认设置没有动过.模型效果如下:

Unity里,前段时间刚装了2019我就拿2019来看吧.把HDRI环境Panorama导入到Unity里作为环境光照,关掉场景里的所有灯光.也就是说让环境里的照明效果也都来自HDRI图.

补充一下我的Unity设置,Unity2019LWRP轻量级管线,线性颜色空间,PC平台下.

放上模型,贴上材质喽.就用Unity的标准Shader.Unity2019的LWRP下是Lit.和老版本的Standard是一样的,材质球面板也差不多.从SP里输出需要的贴图贴上,效果如下:

放一起大家对比方便一些,同角度下效果一毛一样嘛,我就说同样都是PBR,理论上不应该有差异的.

//2019.9.16 更新Unity5.6.6的效果

在Unity5.6.6里,使用Standard来还原的效果,如下:

对比Sp中的效果与Unity5.6.6的Standard的效果基本一致.Standard的金属暗部稍微更暗一些

那就回到原来的话题,美术经常吐槽的差异是啥呢?第一反应,Unity里的Directional Light平行光是不是产生差异的原因.Unity新建一个场景,默认的Default-Skybox是没有太阳的,场景里有一盏平行光来模拟太阳.unity默认的Default-Skybox

而SP环境内置的HDRI图中都是有太阳的,我们再看一眼Panorama:太阳那里亮度很高,HDRI图亮度是可以超过1的

顿时俺就明白了,两个软件构建环境的思路完全不一样.SP的环境光,全局光照都在HDRI里,因为SP是材质贴图制作软件,不需要美术去编辑和修改灯光.让HDRI来提供所有的光照,美术只需要专注于材质的调整.

而反观Unity,环境是项目创建的,灯光的位置,强度,类型,数量都是可以编辑的.Unity也是把全局光照的直接光和间接光分开了.我们新建一个默认场景就可以发现,环境光Default-Skybox是不包括直接光源(也就是太阳等自己发光的东西),Skybox只模拟蓝天和大地的反射间接光.直接光源由平行光Directional Light提供,同时平行光还负责产生投影.

如果Unity项目里用了一个本身自带太阳的HDRI,然后场景里又有一盏平行光,那这个环境肯定比SP亮很多,导致Unity内材质很白,很亮,很DUANG,质感不对.美术不得不对材质进行一番调整,导致越走越偏,Unity里换个光照环境不一样的场景,材质又变得奇奇怪怪.

最后说一下结论,两边光照环境不一样自然效果不一样,除非把项目的场景环境制作成HDRI提供给SP,然后再在SP中进行创作,不然就靠SP内置HDRI提供的光照肯定是无法去匹配项目中的游戏环境的,效果有差异是在所难免的.所以喽,要怎么把Unity里的光照输出成HDRI给SP用嘞,好像挖了个坑,下次再说吧.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ENABLE_UNITY_COLLECTIONS_CHECKS是Unity中的一个编译器宏定义,用于启用Unity Collections库中的线程和处置安全检查。这个宏定义可以确保在使用Unity Collections库时,对于线程安全和资源释放的问题进行检查,以避免潜在的错误。\[1\] Unity Collections库提供了一些关键的类数组类型,如NativeArray和NativeSlice,以及一些数据结构,如NativeList和NativeQueue,这些都受到ENABLE_UNITY_COLLECTIONS_CHECKS宏定义的影响。\[2\] 但是需要注意的是,ENABLE_UNITY_COLLECTIONS_CHECKS主要用于单元测试框架中的断言,而不是用于生产代码的测试。因此,在生产代码中使用这个宏定义可能会导致性能下降,因为它会增加额外的检查和开销。\[3\] #### 引用[.reference_title] - *1* *3* [unity断言_Unity断言库](https://blog.csdn.net/culiao6493/article/details/108642656)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [[Unity ECS] Unity Collections Package](https://blog.csdn.net/u013716859/article/details/122278432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值