PBR Physically-Based Rendering

  • 基于物理的渲染。


  1. 这是一个人类提出的概念。
    • 模仿真实世界物理规则并在计算机实现中的一个”公式“。(公式不管是长篇大论还是1+1=2都能认为是公式)。 100%
    • 基于这方面考虑。这个公式的准确率不可能是100%等同于物理真实世界,可以说是无限趋近真实世界。99%
    • 这里从计算机运行性能考虑,必然是需要在一定程度简化计算公式。98%
  2. 美术为画面弥补不足
    • 为了更加接近真实,经验丰富的美术人员通过对真实世界的观察。适当调整相关参数为98% 的渲染补充2% 的不足。已完成超写实的接近100% 的真实世界的。
  • 微表面理论

  1. 一单位。
    • 如在RGB中,将0-1.细分为0-255.共256份。
  2. 将物体表面的一单位和一单位的光束,单独研究。
    • 将一单位表面和光束细分为100份、得到以下画面。
    • 将每个细分后的表面反射简化为镜面反射。

材质流程

  • 传统材质流程

  • PBR材质流程

    1. 金属/粗糙度工作流 Metal/Roughness Workflow

      • 基础颜色 :: Albedo Map Diffuse Map Base Color=金属与非金属混合
      • 电介质漫反射颜色和金属反射率值

      • 粗糙度贴图 :: Roughness
      • 0-1是明智之举。

      • 金属度贴图 :: Metallic Map
      • 0-1,黑到白,无到有。

      也可以理解为脏到纯净,黑色在白色中是脏的。金属本身就不纯净了。表现为生锈等状态 Grayscale – Linear ![[CG英语#^cd019e]]

    2. 镜面反射/光泽度工作流 Specular/Glossiness Workflow

    3. 共用贴图

      • 环境光遮蔽 (AO) #AmbientOcclusion
      • 环境光遮蔽贴图是指表面某点能获得多少环境中的光;AO不应用于纹理贴图,仅是着色器的一个渠道。(颜色混合的通道)

      • 高度(Height) #Height #Displacement
      • 高度贴图可以用于视差映射贴图,增强法线贴图和凹凸贴图的透明度和现实感。

      • 法线贴图 (Normal) #Normal
      • 法线贴图用于模仿表面细节。RGB贴图中,每一部分都对应着表面法线的X,Y,Z坐标。RGB贴图用于存储高分率辨至低分辨率模型的投射细节。

[[BRDF]]

  • 线性空间渲染

  • 计算机语言
    • 0,1 无,有

    假定0代表无色,1代表纯蓝色。 通常计算器拾色器将 0-1 = 从无到有 分为256(0-255为256个数)份,即慢慢有...

  • 色深
    1. 计算机显示器色色深参数,单位:位(bit),色数,颜色数
      1. 16.7M 8bit色深,2^24=2^8x2^8x2^8=256x256x256=1677万
      2. 10.7亿 10bit色深,2^30=2^10x2^10x2^10=1024x1024x1024=10.7亿
      • 表示色彩的细腻程度。
    2. 图像色深
      • 当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位及以上,我们就叫做真彩色。
      1. 8位:2^8=2^2(B)x2^3(G)x2^3(R)=256(色);总共显示256种颜色;取值范围:0~255。
      2. 16位:2^16=2^5(B)x2^6(G)x2^5(R)=65536(色);总共显示65536种颜色;取值范围:0~65535
      3. 24位: 2^24=2^8(B)x2^8(G)x2^8(R)=16777216(色);总共显示16777216种颜色;取值范围:0~16777215
      4. 32位:Alpha透明度 8+24位
      • 图像存储
      1. 首先需要知道计算机中的数据都是使用0,1表示出来的。即计算机中1位只能取值0或者1。电脑磁盘空间 ,资源管理器内存占用都是B,以字节为单位,即分配内存块时以字节为单位进行分配。一个字节(Byte)占用8位(bit)。

      2. 计算机常见数据存储单位换算:1GB=1024MB1MB=1024KB1KB=1024Byte(字节)1Byte(字节)=8bit(位)

      3. 8bit 如果一个图片支持256种颜色(如GIF格式),那么就需要256=2^8 个不同的值来表示不同的颜色。也就是从0到255,用二进制表示就是从00000000到11111111,总共需要8位二进制数,所以颜色深度是8 Bit。

        • 存储一个像素值需要1B的内存。
      4. 24bit 如果是BMP格式,每个像素可以支持RGB各8bit,即R8,G8,B8,不同的红绿蓝组合可以构成25 6 3 256^3256 3 种颜色,就需要3个8位的2进制数,总共24位,所以颜色深度是24 Bit。

        • 存储一个像素值需要3B的内存。
      5. 32bit 还有PNG格式,这种格式除了支持24位的颜色外,还支持alpha通道(就是控制透明度用的),总共是32位,所以颜色深度是32 Bit。颜色深度越大,图片占的空间越大。

        • 存储一个像素值需要4B的内存。
      6. 16bit 较上面的比较复杂,每像素用16位表示,RGB分别为5bitR,6bitG,5bitB的组合。

        • 存储一个像素值需要2B的内存。
    3. 在严谨的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]]

理论:理论 - LearnOpenGL CN (learnopengl-cn.github.io)

判断一种PBR光照模型是否是基于物理的,必须满足以下三个条件

  1. 基于微平面(Microfacet)的表面模型。
  2. 能量守恒。
  3. 应用基于物理的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.

馈送基于物理的着色模型|塞巴斯蒂安·拉加德 (wordpress.com) #参照文献