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用嘞,好像挖了个坑,下次再说吧.
sp 导出unity哪个_SP与Unity的效果差异分析相关推荐
- Unity Shader - PBR 渲染 SP 导出的素材
文章目录 目的 环境 素材下载 效果 SP 中 Unity 中 SP 离线一张 SP 设置 SP 导出到 Unity SP 纹理导出 SP 环境贴图导出 Unity 资源整理 Unity MRA PB ...
- unity生成 html5,导出到html5时发生unity项目错误
当我在unity 5上创建一个空白项目并尝试将其导出到html5时,出现以下消息错误: 运行"C:\Program Files\Unity\Editor\Data\PlaybackEngin ...
- sp导出法线_SP导出贴图导Redshift渲染效果不同的问题
文中使用模型贴图来自网友 散仙 分享. 很长一段时间内一直有人问我,为什么从substance painter里导出的贴图在maya里渲效果差别挺大的. 我当时很纳闷,因为这套流程我搞得久,研究得透, ...
- Unity快速入门之四 - Unity模型动画相关
最近要给公司的小伙伴做Unity入门,针对几个常用的知识进行快速入门介绍. Unity快速入门之一 3D基础概念.Camera.Canvas RenderMode的几种方式对比_翕翕堂 Unity快速 ...
- Unity XCode交互(unity调用讯飞的AIUI技能ios的sdk)
最近要做ios的讯飞语音(aiui技能) 文章目录 前言 一.讯飞项目 二.XCode 1. 2.设置AIUI 2.创建AIUI 3.唤醒,录音,停止录音AIUI,文本写入 4.AIUI数据监听 5. ...
- 【100个 Unity小知识点】 | 启动unity应用时的 Unity Logo 删除/替换的三种方案
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...
- 【贪玩巴斯】Unity3D初学圣经(二)—— unity界面布局介绍 unity常用面板介绍 「1-5 到 1-7」—— 2022年1月20日
[贪玩巴斯]Unity3D初学圣经 二-- unity界面布局介绍 & unity常用面板介绍 「1-5 到 1-7」-- 2022年1月20日 本文对应视频P5 1-5 到P7 1-7 un ...
- C#开发Unity游戏教程之Unity中方法的参数
C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号"( )",有意义吗?看起来最 ...
- Unity的NGUI插件篇——入场效果
Unity的NGUI插件篇--入场效果 入场效果 入场效果需要借助于NGUI提供的TweenPosition类来完成,为了说明此类的使用方法,本节将使会讲解两个示例.本文选自 大学霸 <NGU ...
- 自定义Unity 容器的扩展 --- Unity Application Block Event Broker
Unity快速入门的例子中有一个Block Event Broker通过对容器功能的扩展来实现事件截获,其中扩展的代码在项目EventBrokerExtension.该项目允许在应用程序种使用自定义的 ...
最新文章
- 呵呵,哈哈,嘿嘿,从今天起就开始写博客文了
- 特斯拉炫技现场:电驴、行人、快递车,中国的小路难不倒Autopilot自动驾驶
- LeakDiag 微软一款检测memory leak的工具
- 【Obj-C】学习杂记-1
- http://www.himigame.com/mac-cocoa-application/893.html
- netty+mina 区别概要
- MySql中 delimiter 详解
- kettle大于0的转换成1_第一期实训周:基于Python+MySQL+Kettle+R的某网站数据采集分析...
- linux中postfix(基于源码)的邮件系统
- 判断是否包含大写字符_Python最常用的数据类型中字符串基础函数使用知识点讲解...
- javascript OOP(下)(九)
- 文件流对象 c# 1614525948
- 图的最小生成树(Prim算法)
- asp实现注册登录界面_Win7系统登陆界面修改小技巧--win7w.com
- 关于js的一切(updating...)
- 【React Native 实战】微信登录
- 【图像处理】MATLAB:表示与描述
- linux改用户密码chpasswd,Linux chpasswd (批量或单一修改用户密码)和passwd(直接修改用户密码)...
- mysql的多媒体类型_多媒体数据库技术及其发展方向
- 物业服务的品质、成本与四保一服的数字化方法