Torrance–Sparrow BRDF Model公式推导
法线分布函数的理解
ωh方向的微分面积可以这样表示:
解释:D(ω)理解成ω方向的面积密度,那么单位面积下,dωh立体角在单位面积下对应的面积是A(ωh),此时D(ωh) = A(ωh)/dω,A(ωh)的数值可以看成单位面积的比例。
那么在微分面积dA下,ωh方向的面积就是了。
也可以用概率的思想理解:
那么有:
Torrance–Sparrow Model
在微表面下,反射模型是perfectly specular,所以微表面法线h符合下面公式:
为了后面推导,把ωh,n,ωo和ωi的关系用下图来表示清楚:
由于法线分布函数符合下面公式:
求ωh方向的flux
把代入上式中得到:
根据Fresnel's law,ωo的flux是:
由radiance的公式可得:
把代入上式分子:
有一个很重要的推导结论:推导参考https://blog.csdn.net/air_liang1212/article/details/106215259
最后L(ωo)写成:
根据双向函数fr的定义:
代入后得到:
参考:pbrbook 8.4
Torrance–Sparrow BRDF Model公式推导相关推荐
- 基于物理着色:BRDF
知乎上难得的好文章,来自大牛,循序渐进,而且全,收藏! 作者:Maple 链接:https://zhuanlan.zhihu.com/p/21376124 来源:知乎 著作权归作者所有.商业转载请联系 ...
- Physically Based Rendering——史上最容易理解的BRDF中D函数NDF的中文资料
粗糙度决定了D函数的分布,一般粗糙度是D函数的方差 本文假定读者已经对PBR即Physcially Based Rendering 基于物理的渲染有了初步的了解,对于PBR的入门有很多文章都介绍的不错 ...
- BRDF理论及shader实现(下)
接上篇: BRDF理论及shader实现(上) Specular BRDF 对于specular分量来说,fmf_mfm是一个遵循菲涅尔反射定律的镜面BRDF项,此时的fmf_mfm满足([3]和 ...
- 基于物理的渲染(PBR)白皮书 | 迪士尼原则的BRDF与BSDF相关总结
基于物理的渲染(Physically Based Rendering , PBR)技术,自迪士尼在SIGGRAPH 2012上提出了著名的"迪士尼原则的BRDF(Disney Princip ...
- Real-Time Rendering——Chapter 7 Advanced Shading
https://blog.csdn.net/yjr3426619/article/details/81098626 介绍brdf https://zhuanlan.zhihu.com/p/213761 ...
- ue4 离线渲染_[译]Real Shading in Unreal Engine 4(UE4中的真实渲染)(2)
利用假期接着把剩下的部分搞完吧,其实,纯粹的翻译应该还是比较简单的,但是,为了更好地理解,我一般都会多找一些资料来进行互相印证.在上面一部分Shader Model的改变过程中,我主要是参考了一些PB ...
- Real-Time Rendering 4th 译文《九 基于物理渲染(中)》
9.5.3 内部反射 虽然在渲染中经常遇到外部反射,但内部反射有时也很重要.n1>n2时发生内反射.换句话说,当光在透明对象的内部传播并"从内部"遇到对象的表面时,会发生内反 ...
- [引擎开发] PBR材质的原理
[本文大纲] 基础概念篇 引入 光线与介质的作用 光线的传播路径 体积散射和表面光照 光线和介质外观 微平面理论 概念介绍 中间向量 能量守恒定律 微平面理论的不足 光照计算 半球积分 单位光照 反射 ...
- 图形学理论 光照模型
光照模型 1. Lambert模型 理想漫反射模型,各个方向一样. 2.Phong(1975)[1] 经验模型,R和V的夹角决定镜面高光的强度. 3.Blinn-Phong(1977)[2] 引入了半 ...
最新文章
- 记录某段程序的运行时间
- Linux下用户管理
- linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例
- CASE_04 基于FPGA的电梯控制器
- Maven打包小技巧--持续更新
- B cannot be cast to java.sql.Blob
- NLP应该如何学、如何教?斯坦福大学大牛Dan Jurafsky教授专访
- 降维:用 PCA 压缩数据集
- mysql可扩展数据库_五大技巧提高MySQL可扩展性
- C#操作Sqlite快速入门及相关工具收集(连接串管用)
- redisdemo php,一个简单的用redis做秒杀支撑的demo (PHP版)
- pyqt5实现窗口跳转并关闭上一个窗口
- android 在图上绘制字符串,Android 使用Canvas在图片上绘制文字的方法
- Silverlight下载-Silverlight 1.1 Tools下载
- Lorenz混沌系统建模与电路仿真实现
- mixly 添加micropython_Mixly软件下载-Mixly(米思齐图形化编程工具)官方版下载v1.04 - 欧普软件园...
- 随机从map中获取key值
- PAT乙级 1068 万绿丛中一点红 (20 分) Java 实现
- 录制iPhone屏幕
- 为什么大家都愿意进入外企?
热门文章
- 学习python,北京尚学堂,第61课到第90课的个人的总结
- matplotlib命令与格式:标题(title),标注(annotate),文字说明(text)
- usaco 2.1.4 Subset Sums 【母函数】
- 小学三年级计算机上册课后反思,小学三年级的音乐上册课后反思(10页)-原创力文档...
- asp.net爱厨房美食菜谱系统
- 30岁、高中学历、零基础、能不能自学Python?要多久?学到什么程度可以找到工作?
- 如何理解「数字化是 IT 公司在给传统企业贩卖焦虑」?
- 1086 就不告诉你
- pip stall报错:Requirement already satisfied
- 【OKR工作方法】““Objectives Key Results目标与关键结果”,怎么学习OKR方法,OKR的优势是什么