PBR Physically-Based Rendering
-
基于物理的渲染。
- 这是一个人类提出的概念。
- 模仿真实世界物理规则并在计算机实现中的一个”公式“。(公式不管是长篇大论还是1+1=2都能认为是公式)。 100%
- 基于这方面考虑。这个公式的准确率不可能是100%等同于物理真实世界,可以说是无限趋近真实世界。99%
- 这里从计算机运行性能考虑,必然是需要在一定程度简化计算公式。98%
- 美术为画面弥补不足
- 为了更加接近真实,经验丰富的美术人员通过对真实世界的观察。适当调整相关参数为98% 的渲染补充2% 的不足。已完成超写实的接近100% 的真实世界的。
-
微表面理论
- 一单位。
- 如在RGB中,将0-1.细分为0-255.共256份。
- 将物体表面的一单位和一单位的光束,单独研究。
- 将一单位表面和光束细分为100份、得到以下画面。
- 将每个细分后的表面反射简化为镜面反射。
材质流程
-
传统材质流程
-
PBR材质流程
-
金属/粗糙度工作流 Metal/Roughness Workflow
-
基础颜色 ::
Albedo Map
Diffuse Map
Base Color=金属与非金属混合
-
电介质漫反射颜色和金属反射率值
-
粗糙度贴图 ::
Roughness
-
0-1是明智之举。
-
金属度贴图 ::
Metallic Map
-
0-1,黑到白,无到有。
也可以理解为脏到纯净,黑色在白色中是脏的。金属本身就不纯净了。表现为生锈等状态。 Grayscale – Linear ![[CG英语#^cd019e]]
-
-
镜面反射/光泽度工作流 Specular/Glossiness Workflow
-
共用贴图
-
环境光遮蔽 (AO) #AmbientOcclusion
-
环境光遮蔽贴图是指表面某点能获得多少环境中的光;AO不应用于纹理贴图,仅是着色器的一个渠道。(颜色混合的通道)
-
高度(Height) #Height #Displacement
-
高度贴图可以用于视差映射贴图,增强法线贴图和凹凸贴图的透明度和现实感。
-
法线贴图 (Normal) #Normal
-
法线贴图用于模仿表面细节。RGB贴图中,每一部分都对应着表面法线的X,Y,Z坐标。RGB贴图用于存储高分率辨至低分辨率模型的投射细节。
-
-
[[BRDF]]
-
线性空间渲染
-
计算机语言
- 0,1 无,有
假定0代表无色,1代表纯蓝色。 通常计算器拾色器将 0-1 = 从无到有 分为256(0-255为256个数)份,即慢慢有...
-
色深
- 计算机显示器色色深参数,单位:位(bit),色数,颜色数
- 16.7M 8bit色深,2^24=2^8x2^8x2^8=256x256x256=1677万
- 10.7亿 10bit色深,2^30=2^10x2^10x2^10=1024x1024x1024=10.7亿
- 表示色彩的细腻程度。
- 图像色深
- 当8/16位深度时,单个原始颜色 (R/G/B)最大只能表示为(0−2^3)/(0−2^6 ),无法满足(0~0xff)的范围,所以显示的颜色范围有限。 当24位深度时,使用24bit显示一个像素点, 由8bit Red 8bit Green 8bit Blue组合颜色而成,每一个原始颜色(R/G/B)都可以完全显示(0~0xff),所以24位及以上,我们就叫做真彩色。
- 8位:2^8=2^2(B)x2^3(G)x2^3(R)=256(色);总共显示256种颜色;取值范围:0~255。
- 16位:2^16=2^5(B)x2^6(G)x2^5(R)=65536(色);总共显示65536种颜色;取值范围:0~65535
- 24位: 2^24=2^8(B)x2^8(G)x2^8(R)=16777216(色);总共显示16777216种颜色;取值范围:0~16777215
- 32位:Alpha透明度 8+24位
- 图像存储
-
首先需要知道计算机中的数据都是使用0,1表示出来的。即计算机中1位只能取值0或者1。电脑磁盘空间 ,资源管理器内存占用都是B,以字节为单位,即分配内存块时以字节为单位进行分配。一个字节(Byte)占用8位(bit)。
-
计算机常见数据存储单位换算:1GB=1024MB1MB=1024KB1KB=1024Byte(字节)1Byte(字节)=8bit(位)
-
8bit 如果一个图片支持256种颜色(如GIF格式),那么就需要256=2^8 个不同的值来表示不同的颜色。也就是从0到255,用二进制表示就是从00000000到11111111,总共需要8位二进制数,所以颜色深度是8 Bit。
- 存储一个像素值需要1B的内存。
-
24bit 如果是BMP格式,每个像素可以支持RGB各8bit,即R8,G8,B8,不同的红绿蓝组合可以构成25 6 3 256^3256 3 种颜色,就需要3个8位的2进制数,总共24位,所以颜色深度是24 Bit。
- 存储一个像素值需要3B的内存。
-
32bit 还有PNG格式,这种格式除了支持24位的颜色外,还支持alpha通道(就是控制透明度用的),总共是32位,所以颜色深度是32 Bit。颜色深度越大,图片占的空间越大。
- 存储一个像素值需要4B的内存。
-
16bit 较上面的比较复杂,每像素用16位表示,RGB分别为5bitR,6bitG,5bitB的组合。
- 存储一个像素值需要2B的内存。
- 在严谨的Photoshop中打开一张PNG,
- 在8位/16位模式下。颜色分为256份。 ![[Pasted image 20220713162645.png|200]]
- 在32位模式下。颜色变回了。0-1(无到有)的表达方式。 当然笔者认为也是可以用0-1023表示的; 这样会与0-255不表达RGB是混淆。 不过这样世界上的颜色系统又复杂了, 0-1是明智之举。 ![[Pasted image 20220713162532.png|200]]
- 计算机显示器色色深参数,单位:位(bit),色数,颜色数
理论:理论 - LearnOpenGL CN (learnopengl-cn.github.io)
判断一种PBR光照模型是否是基于物理的,必须满足以下三个条件
- 基于微平面(Microfacet)的表面模型。
- 能量守恒。
- 应用基于物理的BRDF。
- 因为当光线接触到一个表面的时候折射光是不会立即就被吸收的。
- 通过物理学我们可以得知,光线实际上可以被认为是一束没有耗尽就不停向前运动的能量,而光束是通过碰撞的方式来消耗能量。
- 不过在基于物理的渲染之中我们进行了简化,假设对平面上的每一点所有的折射光都会被完全吸收而不会散开。
- 对于金属(Metallic)表面,当讨论到反射与折射的时候还有一个细节需要注意。金属表面对光的反应与非金属材料(也被称为 介电质 (Dielectrics)材料)表面相比是不同的。它们遵从的反射与折射原理是相同的,但是所有的折射光都会被直接吸收而不会散开,只留下反射光或者说镜面反射光。亦即是说,金属表面不会显示出漫反射颜色。
- 3
概念:(物理学范畴)
- ![[@ BOK 介质#介质]]
- ![[@ BOK 介质#^32ba30]]
基础色(RGB-SRGB)
>基础色贴图是包含两种数据类型的RGB贴图: ***电介质漫反射颜色`Albedo Map`*** 和 ***金属反射率值 `Diffuse Map `*** ,如图22所示.电介质颜色表示反射的波长,第一部分已经谈到。如果金属纤维贴图亮调中的区域为金属,就会有反射率值。
>
>###### 金属反射率值的数值应在真实世界中实际测量获得。
> 颜色代表非金属材质反射率和金属材质反射率值。
>除微观吸留外,基础色没有布光信息。
>暗调最低值不低于30 sRGB,严格讲应该为50 sRGB。
> 亮调值应该不高于240 sRGB.原材质反射率会高一些,范围是高光反射70-100%,我们可以将其映射到180-255sRGB.