刚开始也不知道什么是pbr (Physically Based Rendering)后来才发现这是一种新的渲染方式

与之对应的是材质是pbs(Physically Based Shader)

unity中的pbs有两种,一种是金属度的,一种是反射的,

具体前者可以做金属泥土之类,后者用于其他非金属的,但是这不绝对,前者也能做布料木头之类

最终使用还是要看艺术效果

(unity中金属度pbr材质)

(unity中反射流程pbr材质)

PBR做法

albedo map 无光颜色贴图
normal map 法线贴图 
metallic map 金属度贴图 或者specular map 高光贴图

roughness 粗糙度贴图

3.19.2016内容纠正和更新

(unity中普通材质)

传统做法
diffuse mapping 颜色贴图
specular map 高光贴图
normal map 法线贴图

在PBR流程下,游戏中场景将更加符合自然,对于光照的计算也更符合现实。将在以后离线渲染和实时渲染中占据主流,单一材质能模拟出更多现实中的特性

当然在国内这种框架还不是很流行,大部分还是采用传统的方式进行制作。PBR流程和传统区别就是不再使用Specular Map
在PBR里是glossness(光泽 可以理解成高光粗糙度)和metallicity(金属),后面两张基本都是灰度图,需要在游戏引擎中调节效果,据其他网上说法“一般公司会根据项目发一张材质球的表,Albedo ,glossness,metallicity的值的范围都在上面,根据物品的物理属性来调整就行。”
贴图的流程有了新的变化,模型流程没有多少变化

当然这里要说的是unity5,默认材质其实就是使用的pbs,最明显特征是使用了Metallic,金属贴图(这个在unity里可以通过选择shader Standard Specular setup来使用反射版本pbr)也可以继续使用Legacy旧版非pbr材质

现在说下unity5贴图
http://docs.unity3d.com/Manual/StandardShaderMaterialParameters.html
albedo相对于diffuse map 但不相同
固有色贴图(Albedo map)不需要光照信息,看起来更平,没有高光点,大多也不需要叠加AO和那几张黑白边,只需要给出物体表面固有颜色和很浅的纹理而已,一张光泽度贴图(GLOSS map)来表现物体粗糙度(只和粗糙度有关),越粗糙越黑反之越白,一张SPECULAR map 来表现物体固有反光能力的,这个只和材质有关,不同的项目会给出不同的材质的高光色值范围

Metallic 灰度图,就是pbr中特殊的,可以说是金属的感觉吧
normal map 主体蓝色的,法线贴图
height map 是灰度图 这里指的是视差贴图( parallax mapping),当然也可以放凹凸贴图(bump map)或者置换贴图(displacement map)

http://docs.unity3d.com/Manual/StandardShaderMaterialParameterHeightMap.html
这个简单说就是能更好增加凹凸感,这个概念很想法线贴图,但是技术更加复杂,
Occlusion map是灰度图 这个用来保护高光和间接照片照到的地方,间接照明来自环境光和反射光,

Emission 彩色贴图 自发光贴图 控制表面光发射 这个选项也会影响到附近的物体,但是要设置lighting里面是realtime,如果是baked动态物体将不接受光照 其实要看到效果必须加light probe 然后发光的物体要static才能看到,否则只能靠脚本刷新或者其他方式才能看到了

Detail Mask 细节图片的遮罩
Secondary Maps
Detail Albedo 细节颜色贴图
Normal Map 细节的法线贴图
这三个其实是一组为了再放大物体时能看到物体的细节层次,比如做皮肤的毛孔贴图之类,放在这里贴图一般使用repeat并且重复很多次才能达到细节效果

有两种流程可以自己选择
反射流程

金属度流程

混用也没问题,当然金属度还是反射材质没有绝对的使用选择
具体看这里
http://blogs.unity3d.com/2015/02/18/working-with-physically-based-shading-a-practical-approach/
还有画贴图工具

substance

http://quixel.se/

既然说到了pbr那再结合下色彩空间

linear和srgb,HDR区别
人眼有光线自适应的特性,这样也是能让人在暗的场景里看到更多东西,在亮的场景里能分辨更多东西,这种效果一般从电影院这样昏暗的场所里走出来更能体会,眼睛会有一个慢慢适应的过程。现在摄像头一般也会自适应曝光度,但是工业需求的有些还是需要不自动的,三维渲染之中,如果把这种真实完全模拟的图像给人眼看到,会感觉比我们人眼看到灰暗的多,所以一般会在硬件方面做一个反曲线最后变成srgb的色彩空间让人看到。

游戏引擎里面最终效果给人看到,当然是这种强化过的适应人眼的色彩空间,但是我做光照计算和贴图就不行,因为会由于多次的色彩强化导致最终画面强烈失真,这时候就是需要linear的色彩空间,计算时候用真实色彩,直到输出这一步把色彩强化一遍以适合人眼。unity很早就是linear的色彩空间,但是由于后期最后一部的矫正方面很多从业人士的素养不足,或者完全没有这个意识,做出来的效果完全是不正确,或者缺乏调整弹性的。而unreal则在工作流上面几乎是整合和后期的色表,去解决这个问题。

而HDR是模拟人眼的过程,能看到更广范围的光(就是亮的时候能更亮瞎),HDR图像的一般色域也超过普通的RGB色域(但也可以不超过)。HDR在unity中需要勾选摄像机上的HDR选项和使用延迟渲染deferred才能(否则会有滤镜提示The camera is not HDR enabled 这是没使用延迟渲染),要看出效果还要加个bloom之类的

(对照图 在延迟渲染模式和HDR下加Tonemapping(effects里面的))

关于unity里pbr技术和材质 unity5默认shader和传统的对比的更多相关文章

  1. Unity User Group 北京站:《Unity5.6新功能介绍以及HoloLens开发》

    ​时间一转眼从春天来到了初夏,Unity User Group(以下简称UUG)活动也迎来了第七期.我们面向Unity3D开发从业者以及未来想从事Unity3D开发的学生群体的UUG活动这次仍然在海淀 ...

  2. 【Unity Shaders】Unity里的雾效模拟

    写在前面 熟悉Unity的都知道,Unity可以进行基本的雾效模拟.所谓雾效,就是在远离我们视角的方向上,物体看起来像被蒙上了某种颜色(通常是灰色).这种技术的实现实际上非常简单,就是根据物体距离摄像 ...

  3. 关于Unity中的几何体,材质和FBX模型

    一.创建几何体的类型 1: 创建平面 Plane;2: 创建立方体 Cube;3: 创建球体 Sphere;4: 创建胶囊体 Capsule;5: 创建圆柱体 Cylinder;6: 3D文字 3D ...

  4. Unity光滑与粗糙的材质——相似于生锈的金属表面

    纹理是在Photoshop中制作的,终于效果则是在Unity里得到的.这样的类型的材质.在3D游戏中非经常见.

  5. Unity里的人物驱动/换装备/换武器/换衣服/卡通重定位(转)

    Unity里的人物驱动/换装备/换武器/换衣服/动画重定位 刚学的过程被这个问题困扰最多. 首先,基本的,大家都知道驱动人物需要骨架.绑骨的Mesh和动画(这三个要是不知道的话就得考虑看看计算机图形学 ...

  6. Unity内存优化技术测试案例

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...

  7. Unity游戏开发技术的最佳实践

    活动详情   作为全球规模最大的Unity开发者聚会,历年的Unite大会都成为开发者们获取Unity最新技术知识,交流开发经验,把握行业发展脉搏,体验全球前沿科技与高品质Made with Unit ...

  8. Unity5.x shader打包AssetBundle总结

    最近比较忙,好久没有更新博客了,新项目切换到unity5.x后使用了新的打包机制,在打包shader的时候遇到了一些问题,这里来记录一下吧. 在上一个项目中,我们使用unity4.7,对于shader ...

  9. 关于Unity中GrabPass截屏的使用和Shader的组织优化

    GrabPass截屏 可以用来截屏,截屏后把纹理传给下一个通道使用. 1:使用抓屏通道, GrabPass {} 或 GrabPass { “ 纹理名称”}; 使用GrabPass {}后,可以用_G ...

随机推荐

  1. VM workstation 与 VM vSphere的区别 [转载]

    在学完vSphere后,想起了VMware Workstation.这两个都是虚拟化的东西,这两者到底有什么本质的不同呢?顺着我的思路我开始将所学过的进行检索期望从中寻到一丝半点的线索.很快大脑中建立 ...

  2. DNS的服务器和客户端的配置

    内网环境Linux发行版本均采用centos为主,centos下DNS服务端的搭建步骤如下: DNS master节点搭建步骤: 安装组件: yum install bind;      yum in ...

  3. wpf 用户自定义事件传参

    //自定义传参 ,对外联系的参数 public class ImageZoomChangedEventArgs : RoutedEventArgs { /// <summary> /// ...

  4. eclipse调试的方法和技巧【转】

    原文:http://www.cnblogs.com/ycxyyzw/archive/2013/03/27/2983905.html eclipse调试图标所代表的含义: Step into 单步进入- ...

  5. 数学之美——HMM模型(一)介绍

    一直想写点关于数学方面的blog,这对于数据挖掘分析,NLP处理等都有着比较重要的作用,之前在CSDN上想写点HMM方面的文章,一直没写成,最近几天终于抽点时间完成了HMM的文章,加以整理,遂有这个系 ...

  6. 【AtCoder】ARC087

    C - Good Sequence 题解 用个map愉悦一下就好了 代码 #include <bits/stdc++.h> #define fi first #define se seco ...

  7. Sqoop的安装及简单使用

    SQOOP是用于对数据进行导入导出的. (1)把MySQL.Oracle等数据库中的数据导入到HDFS.Hive.HBase中   (2)把HDFS.Hive.HBase中的数据导出到MySQL.Or ...

  8. 005.iSCSI客户端配置示例-Windows

    一 环境 Linux作为iSCSI服务端,Windows2008R2作为iSCSI客户端 二 服务端配置过程 2.1 客户端配置 在Linux上参照之前的配置建立三个LUN卷作为共享盘,最终配置如下: ...

  9. Python3 k-邻近算法(KNN)

    # -*- coding: utf-8 -*- """ Created on Fri Dec 29 13:13:44 2017 @author: markli " ...

  10. rsync基础

    参考资料:骏马金龙的rsync系列.该博主的博文质量很好,推荐大家关注. 环境 操作系统:CentOS Linux release 7.5.1804 (Core) 软件:rsync  version ...