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 反射率方程

相关推荐
郝学胜-神的一滴20 小时前
Qt OpenGL 生成Mipmap技术详解
开发语言·c++·qt·系统架构·游戏引擎·图形渲染·unreal engine
颜早早2 天前
Unreal Engine MobileFSR插件实现机制分析
图形渲染·gpu·unreal engine 5·graphic
郝学胜-神的一滴2 天前
图形学中的纹理映射问题:摩尔纹与毛刺的深度解析
c++·程序人生·unity·游戏引擎·图形渲染·unreal engine
明洞日记4 天前
【VTK手册034】 vtkGeometryFilter 深度解析:高性能几何提取与转换专家
c++·图像处理·算法·ai·vtk·图形渲染
BoBoZz194 天前
BillboardTextActor3D 3D字体随镜头旋转
python·vtk·图形渲染·图形处理
BoBoZz194 天前
Tutorial_Step6 vtkBoxWidget的交互与控制
python·vtk·图形渲染·图形处理
郝学胜-神的一滴4 天前
深入理解Mipmap:原理、实现与应用
c++·程序人生·unity·游戏程序·图形渲染·unreal engine
BoBoZz194 天前
AnatomicalOrientation 3D人体模型及三个人体标准解剖学平面展示
python·vtk·图形渲染·图形处理
BoBoZz195 天前
TextureCutQuadric 利用3D隐式函数(Quadrics)来生成2D纹理坐标
python·vtk·图形渲染·图形处理
明洞日记6 天前
【ITK手册001】ITK 架构核心:itk::Object 基类解析与应用指南
c++·图像处理·架构·图形渲染·itk