法线分布函数的理解

ω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公式推导相关推荐

  1. 基于物理着色:BRDF

    知乎上难得的好文章,来自大牛,循序渐进,而且全,收藏! 作者:Maple 链接:https://zhuanlan.zhihu.com/p/21376124 来源:知乎 著作权归作者所有.商业转载请联系 ...

  2. Physically Based Rendering——史上最容易理解的BRDF中D函数NDF的中文资料

    粗糙度决定了D函数的分布,一般粗糙度是D函数的方差 本文假定读者已经对PBR即Physcially Based Rendering 基于物理的渲染有了初步的了解,对于PBR的入门有很多文章都介绍的不错 ...

  3. BRDF理论及shader实现(下)

    接上篇: BRDF理论及shader实现(上) Specular BRDF 对于specular分量来说,fmf_mfm​是一个遵循菲涅尔反射定律的镜面BRDF项,此时的fmf_mfm​满足([3]和 ...

  4. 基于物理的渲染(PBR)白皮书 | 迪士尼原则的BRDF与BSDF相关总结

    基于物理的渲染(Physically Based Rendering , PBR)技术,自迪士尼在SIGGRAPH 2012上提出了著名的"迪士尼原则的BRDF(Disney Princip ...

  5. Real-Time Rendering——Chapter 7 Advanced Shading

    https://blog.csdn.net/yjr3426619/article/details/81098626 介绍brdf https://zhuanlan.zhihu.com/p/213761 ...

  6. ue4 离线渲染_[译]Real Shading in Unreal Engine 4(UE4中的真实渲染)(2)

    利用假期接着把剩下的部分搞完吧,其实,纯粹的翻译应该还是比较简单的,但是,为了更好地理解,我一般都会多找一些资料来进行互相印证.在上面一部分Shader Model的改变过程中,我主要是参考了一些PB ...

  7. Real-Time Rendering 4th 译文《九 基于物理渲染(中)》

    9.5.3 内部反射 虽然在渲染中经常遇到外部反射,但内部反射有时也很重要.n1>n2时发生内反射.换句话说,当光在透明对象的内部传播并"从内部"遇到对象的表面时,会发生内反 ...

  8. [引擎开发] PBR材质的原理

    [本文大纲] 基础概念篇 引入 光线与介质的作用 光线的传播路径 体积散射和表面光照 光线和介质外观 微平面理论 概念介绍 中间向量 能量守恒定律 微平面理论的不足 光照计算 半球积分 单位光照 反射 ...

  9. 图形学理论 光照模型

    光照模型 1. Lambert模型 理想漫反射模型,各个方向一样. 2.Phong(1975)[1] 经验模型,R和V的夹角决定镜面高光的强度. 3.Blinn-Phong(1977)[2] 引入了半 ...

最新文章

  1. 记录某段程序的运行时间
  2. Linux下用户管理
  3. linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例
  4. CASE_04 基于FPGA的电梯控制器
  5. Maven打包小技巧--持续更新
  6. B cannot be cast to java.sql.Blob
  7. NLP应该如何学、如何教?斯坦福大学大牛Dan Jurafsky教授专访
  8. 降维:用 PCA 压缩数据集
  9. mysql可扩展数据库_五大技巧提高MySQL可扩展性
  10. C#操作Sqlite快速入门及相关工具收集(连接串管用)
  11. redisdemo php,一个简单的用redis做秒杀支撑的demo (PHP版)
  12. pyqt5实现窗口跳转并关闭上一个窗口
  13. android 在图上绘制字符串,Android 使用Canvas在图片上绘制文字的方法
  14. Silverlight下载-Silverlight 1.1 Tools下载
  15. Lorenz混沌系统建模与电路仿真实现
  16. mixly 添加micropython_Mixly软件下载-Mixly(米思齐图形化编程工具)官方版下载v1.04 - 欧普软件园...
  17. 随机从map中获取key值
  18. PAT乙级 1068 万绿丛中一点红 (20 分) Java 实现
  19. 录制iPhone屏幕
  20. 为什么大家都愿意进入外企?

热门文章

  1. 学习python,北京尚学堂,第61课到第90课的个人的总结
  2. matplotlib命令与格式:标题(title),标注(annotate),文字说明(text)
  3. usaco 2.1.4 Subset Sums 【母函数】
  4. 小学三年级计算机上册课后反思,小学三年级的音乐上册课后反思(10页)-原创力文档...
  5. asp.net爱厨房美食菜谱系统
  6. 30岁、高中学历、零基础、能不能自学Python?要多久?学到什么程度可以找到工作?
  7. 如何理解「数字化是 IT 公司在给传统企业贩卖焦虑」?
  8. 1086 就不告诉你
  9. pip stall报错:Requirement already satisfied
  10. 【OKR工作方法】““Objectives Key Results目标与关键结果”,怎么学习OKR方法,OKR的优势是什么