(1)什么是PBR?

基于物理的渲染过程。

PBR是一种着色和渲染技术,用于更精确的描述光如何与物体表面互动。

PBR的优势:

(1)方法论和算法基于精确的计算公式,免除创作表面的猜想过程。

(2)在任何光照环境都能表现出正确的结果

(3)为不同的艺术家,提供统一的工作流程

PBR有两种工作流,一种是基于金属的,一种是基于镜面反射的

对应的Unity引用Enlighten光照引擎之后,带来的两种新的Shader,Standard 和Standard(Specular Setup)

以及

(2)金属工作流:(不易出错,省内存,但是白边现象更明显)

(a)base color:(RGB-sRGB)

包含信息:绝缘体,反射颜色。金属,反射率。

最亮色不应超越240RGB。

最暗色应在30-50RBG之间。

base color不要包含其他光照信息,比如 amblient occlusion。

金属反射率应该在70%-100%之间。也就是RGB 180-255

油漆和氧化的部分应该按照绝缘体处理。

(b)matallic map:(Grayscale-Linear)

描述哪些区域是金属,那些是绝缘体。

1 表示纯金属。0表示绝缘体。

如果matalic map的灰度值低于235,那么对应的basecolor的反射率也应该降低一些。

(c)roughness map:(Grayscale-Linear)

描述表面引起光纤漫反射的不规则程度。这将改变光纤的方向,但是不会改变光线的强度。

光滑表面会有小而亮的高光,而粗糙表面将会出现大而暗淡的高光。

在这个灰度图里面,0代表光滑表面,而1代表粗糙表面。

roughness map是一个“有故事”的贴图,它会告诉你这个表面经历过那些严酷(或者平和)的环境。

而公用的贴图为环境光吸收,法线和高度贴图。

(3)Specular工作流:

为何镜面反射工作流容易出错呢,因为Specular包含了全部的绝缘体F0信息,1.0的Diffuse 和 1.0的Specular将会使得反射折射能量大于输入能量,这违背了能量守恒定律。也就是说在绘制贴图时,你无法预览结果。

diffuse:(RGB-sRGB)

包含albedo color,但是不包含任何反射率信息。

纯金属为黑色,因为纯金属没有颜色,油漆和锈迹是需要带有颜色的。

基础颜色应不包含光照信息,除了micro-occlusion

黑色不应低于30-50sRGB

亮色不应高于240sRGB

specular:(RGB-sRGB)

灰度值,表示非金属F0

RGB值,表示金属吸收的不同波长的光线

这种贴图允许使用不同的F0值来表现非金属。

glossiness:

与Roughness相反,0代表粗糙表面,而1代表光滑表面。

(4)Ambient Occlusion

表示有多少环境光,可以被表面上的一个点吸收。

AO应该只影响Diffuse部分,而不应该阻塞Specular部分。

(5)Height Map

用于视差映射,通过增加可见的深度感来提高渲染的真实性。

(6)Normal Map

不论PBR还是非PBR,NormalMap都是用来模拟表面细节,同时还会影响Roughness和Glossiness映射。

什么是PBR?pbr入门基础干货相关推荐

  1. 技术美术自学——PBR材质通道基础 常见贴图种类列举(求dalao轻喷)

    PBR材质通道基础 非共用部分 (金属/粗糙度流程 Metal / Roughness Workflow) 基础颜色贴图 Base Color Map 金属纤维贴图 Metallic (Graysca ...

  2. java入门基础教程(纯干货知识点+视频资源)

    本套Java视频教程是黑马程序员冯老师精心录制的Java基础班视频,该视频专门针对零基础的学员录制,授课讲究通俗易懂.干货.通过该套Java视频教程的学习,相信你能够轻轻松松地入门java语言. 完整 ...

  3. Three.js PBR渲染入门教程

    最近基于物理的渲染(PBR)已成为实时和电影3D场景渲染的行业标准方法.顾名思义,这种渲染技术基于现实世界物理定律,根据场景中的材料和照明设置来计算表面对光的反应方式.PBR是Disney公司为其动画 ...

  4. python编程语法大全-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...

  5. python编程语法-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...

  6. python编程语法-Python编程入门——基础语法详解(经典)

    今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...

  7. python笔记基础-Python入门基础知识学习笔记之一

    为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...

  8. 大数据入门基础系列之初步认识大数据生态系统圈(博主推荐)

    不多说,直接上干货! 之前在微信公众平台里写过 大数据入门基础系列之初步认识hadoop生态系统圈 http://mp.weixin.qq.com/s/KE09U5AbFnEdwht44FGrOA 大 ...

  9. python基础编程语法-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...

  10. python基础编程语法-Python编程入门——基础语法详解(经典)

    今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...

最新文章

  1. win10下使用python访问vmbox中的redis
  2. 【python】解析Excel中使用xlrd库、xlwt库操作,使用xluils库修改Excel文件详解(三)...
  3. Java多线程之volatile详解
  4. 如何在 ASP.NET Core 中使用 ActionFilter
  5. etf基金代码大全_银行ETF最新规模首超28亿元再创历史新高,近4个月资金净流入超12亿元...
  6. mybatis多产数_freeCodeCamp杰出贡献者–我们如何选择,认可和奖励多产的志愿者
  7. python元祖用法_Python序列(列表list和元组tuple)用法完全攻略
  8. office移动端_阿里云 Teambition 网盘产品快讯:移动端正式版即将上线,体验将大幅提升...
  9. python输入一个字符串、输出他的所以组合_Swift - 排列组合之全排列 (输入一个字符串,输出该字符串包含的字符的所有组合)...
  10. ASP.NET MVC3+EF4+Oracle入门实例(一)
  11. 【读书笔记】 —— 公平与正义
  12. 苹果手机解压缩软件_照片压缩软件哪款好用?推荐5款好用的图片压缩软件
  13. Modbus驱动库—libmodbus驱动库的使用
  14. 百练oj2816:红与黑
  15. 去掉图标后蓝色方块设置方法
  16. 国内主流短信验证码平台收费价格对比「二」:亿佰云、秒嘀科技、极光短信、华信云通信
  17. 【JSON数据】中国各省份省会城市经纬度 JSON
  18. golang语言 []interface{}和interface{}
  19. 什么是阿尔法(Alpha)收益、贝塔(Beta)收益
  20. 没想到,错误的单例写法,让 RabbitMQ 大量超时导致程序挂死!

热门文章

  1. vehicle架构的想法
  2. 计算机学习思维的培养
  3. c++::举例_举例说明:网络
  4. mysql 校验 身份证_MySql整理篇之身份证校验
  5. dhcp服务器不显示mac地址,利用MAC地址解决无法获得DHCP动态地址分配问题
  6. 搞Java的年薪 40W 是什么水平? 1
  7. 深度解析大快DKadoop大数据运维管理平台功能
  8. Win7蓝屏提示STOP: 0x0000008E (0xC0000005,0xA4E7B664,0X852E946C,0X00000000)的一种处理方法
  9. 华为智慧屏鸿蒙评测,华为智慧屏S Pro体验:告诉你鸿蒙OS有多优秀?
  10. bilibili有的视频没声音解决办法