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

相关推荐
RReality1 天前
【Unity UGUI】Toggle / ToggleGroup 与 Dropdown
ui·unity·游戏引擎·图形渲染·材质
郝学胜-神的一滴1 天前
[简化版 Games 101] 计算机图形学 05:二维变换下
c++·unity·图形渲染·three.js·opengl·unreal
charlie1145141912 天前
通用GUI编程技术——图形渲染实战(三十三)——Direct2D与Win32/GDI互操作:渐进迁移实战
c++·图形渲染·gui·win32
RReality3 天前
【Unity Shader URP】Matcap 材质捕捉实战教程
java·ui·unity·游戏引擎·图形渲染·材质
RReality3 天前
【Unity Shader URP】简易卡通着色(Simple Toon)实战教程
ui·unity·游戏引擎·图形渲染·材质
梵尔纳多5 天前
OpenGL 骨骼动画
c++·图形渲染·opengl
charlie1145141915 天前
通用GUI编程技术——图形渲染实战(三十一)——Direct2D效果与图层:高斯模糊到毛玻璃
c++·图形渲染·gui·win32
郝学胜-神的一滴5 天前
中级OpenGL教程 001:从Main函数到相机操控的完整实现
c++·程序人生·unity·图形渲染·unreal engine·opengl
RReality5 天前
【Unity Shader URP】顶点波浪动画(Vertex Wave)实战教程
ui·unity·游戏引擎·图形渲染
RReality6 天前
【Unity Shader URP】色带渐变着色(Ramp Shading)实战教程
ui·unity·游戏引擎·图形渲染