PBR 渲染基础与渲染方程

1、判断一个光照模型 是PBR的3个条件

  1. 基于微平面(Microfacet)的表面模型
  2. 能量守恒
  3. 应用基于物理的BRDF
名称 作用 关键概念
微平面模型 调整高光范围和亮度 半程向量;描述表面与半程向量趋近程度/百分比
能量守恒 反射部分 + 折射部分
BRDF

2、反射率方程



3、DFG:

D 法线分布函数: 估算在受到表面粗糙度的影响下,朝向方向与半程向量一致的微平面的数量。这是用来估算微平面的主要函数。
F 菲涅尔方程: 菲涅尔方程描述的是在不同的表面角下表面所反射的光线所占的比率。
G 几何函数: 描述了微平面自成阴影的属性。当一个平面相对比较粗糙的时候,平面表面上的微平面有可能挡住其他的微平面从而减少表面所反射的光线。

3.1、 法线分布函数


参数名 含义
α 表面粗糙度
n 表面法线
h 半程向量

3.2、 几何函数


参数名 含义
α 表面粗糙度
n 表面法线
v 观察(视线)方向
l 光线方向

3.3、 菲涅尔方程


参数名 含义
F0 基础反射率,由折射指数或者IOR计算得出
h 半程向量
v 观察(视线)方向

F0:

基础反射率数据库:

或者使用以下方式计算:

javascript 复制代码
vec3 F0 = vec3(0.04);
F0      = mix(F0, surfaceColor.rgb, metalness);

4、Cook-Torrance 反射率方程

相关推荐
郝学胜-神的一滴6 天前
中级OpenGL教程 020:巧用数组与循环实现多点点光源渲染,告别冗余代码重构方案
c++·unity·游戏引擎·godot·图形渲染·unreal
图扑软件6 天前
其域创新 × 图扑软件|3DGS 高斯泼溅智慧钢厂实景孪生
前端·低代码·3d·编辑器·图形渲染·可视化
ysu_03149 天前
07 | 全局缩放重构实录
c语言·重构·游戏程序·图形渲染
郝学胜-神的一滴10 天前
[简化版 GAMES 101] 计算机图形学 17:纹理技术从基础原理到多场景实战应用
c++·unity·游戏引擎·图形渲染·three.js·opengl·unreal
csdndenglu13 天前
Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据,无复杂要求时可替代VTK
开发语言·c++·图形渲染·3d渲染
郝学胜-神的一滴14 天前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
XX風15 天前
VTK 策略模式详解:InteractorStyle、Mapper、Picker 与可替换算法
图形渲染·策略模式
叩码以求索15 天前
实时渲染插件:Enscape保姆级安装教程与下载步骤分享
图形渲染
郝学胜-神的一滴17 天前
[简化版 GAMES 101] 计算机图形学 16:纹理走样、Mipmap、三线性插值、各向异性过滤原理全解
unity·游戏引擎·godot·图形渲染·three.js·opengl·unreal
ZJU_fish199618 天前
全局光照/阴影的几个常见问题
游戏引擎·图形渲染