当前位置: 首页 > news >正文

【C++游戏引擎开发】第21篇:基于物理渲染(PBR)——统计学解构材质与光影

引言

宏观现象:人眼观察到的材质表面特性(如金属的高光锐利、石膏的漫反射柔和),本质上是微观结构对光线的统计平均结果。

微观真相:任何看似平整的表面在放大后都呈现崎岖的微观几何。每个微表面(Microfacet)均为完美镜面,但大量微表面以不同朝向分布时,宏观上会表现出复杂的光学特性。

核心假设

  1. 微表面高度大于光波长(避免衍射效应)
  2. 微表面间存在自遮挡(Self-Shadowing)
  3. 法线分布具有统计规律性

一、法线分布函数(NDF)

1.1 NDF的物理意义

NDF D ( ω h ) D(\omega_h) D(ωh) 描述表面法线在宏观方向 ω h \omega_h ωh上的概率密度,满足归一化条件:
∫ Ω D ( ω h ) ( ω h ⋅ n )   d ω h = 1 \int_{\Omega} D(\omega_h)(\omega_h \cdot n) \, d\omega_h = 1 ΩD(ωh)(ωhn)dωh=1
其中 n n n为宏观法线, ( ω h ⋅ n ) (\omega_h \cdot n) (ωhn)项修正立体角投影。

1.2 GGX/Trowbridge-Reitz分布:长尾现象的胜利

相较于Beckmann模型,GGX在粗糙表面高光边缘呈现自然拖尾,其数学形式为:
D G G X ( ω h ) = α 2 π [ ( ω h ⋅ n ) 2 ( α 2 − 1 ) + 1 ] 2 D_{GGX}(\omega_h) = \frac{\alpha^2}{\pi [(\omega_h \cdot n)^2 (\alpha^2 - 1) + 1]^2} DGGX(ωh)=π[(ωhn)2(α21)+1]2α2
参数工程

  • 粗糙度 α = r o u g h n e s s 2 \alpha = roughness^2 α=roughness2
  • α →

相关文章:

  • 强化学习框架:OpenRLHF源码解读,模型处理
  • IOT项目——DIY Weather Station With ESP32
  • 几种Word转换PDF的常用方法
  • Linux学习笔记2
  • 【前端】【业务逻辑】 数据大屏自适应方案汇总
  • 如何在idea里创建注释模版
  • MIT6.S081 - Lab9 File Systems(文件系统)
  • 【音视频】音频解码实战
  • nodejs使用require导入npm包,开发依赖和生产依赖 ,全局安装
  • 01.浏览器自动化webdriver源码分析之启动函数
  • Uniapp:navigator(页面跳转)
  • qt调用deepseek的API开发(附带源码)
  • Android Studio开发 SharedPreferences 详解
  • 【MATLAB第115期】基于MATLAB的多元时间序列的ARIMAX的预测模型
  • js原型链prototype解释
  • Nature Communications 面向形状可编程磁性软材料的数据驱动设计方法—基于随机设计探索与神经网络的协同优化框架
  • Qt绘制可选择范围的日历
  • 未来教育风向标 | 教育学顶流985高校,华东师范大学《AIGC技术赋能教育数字化转型的机遇与挑战》,13所大学deepseek
  • 深度解析MQTT源码架构与AIGC场景融合实战
  • 三生原理与现有密码学的核心区别?
  • 欧盟就中欧有关世贸争端案件提起上诉仲裁,商务部回应
  • 举报人不服相关部门奖励“缺斤少两”,两地分别作出再认定
  • 民建吉林省委提案:当前生育政策集中鼓励多孩生育,应该转变思路
  • 九江市人大常委会原党组成员、副主任戴晓慧主动交代问题,正接受审查调查
  • 陕西一批干部任职公示:西安市未央、雁塔、阎良区委书记拟调整
  • 徐之凯评《突如其来的勇气》|早熟的抵抗