首页 > 编程知识 正文

PBR 基础知识干货总结,c语言基础知识总结

时间:2023-05-05 03:54:46 阅读:241540 作者:3575

(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映射。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。