zoukankan      html  css  js  c++  java
  • 关于反射率(reflectance)

    首先,BRDF的内容因为见的多,用的多,所以比较容易理解。但是由BRDF引申出来的反射率,跟BRDF比不太常见,有些东西反而不易理解。尤其是组里的某大牛都不甚清楚(说明这个问题不太容易或者太过冷门),更加激发了我搞清楚并写篇博的欲望。另外,有些观点纯粹是推导公式得出,未做进一步考证,欢迎拍砖。
    BRDF讲的最清楚的是PBRT这本书,而关于反射率(reflectance),只用了不到一页的篇幅去讲。我大体翻译一下:
    描述BRDF或者BTDR的聚合行为是很有意义的,聚合行为就是定义为关于很多对方向的函数、关于单个方向的二维函数或者是反映整体散射性质的常量值。Ps,下面描述的只是后两种,目前我也没见过第一种。

    反射率分两种,第一种是半球-方向反射(hemispherical-directional reflectance),它可以描述各个方向相同的入射情形下,在某个方向上的总反射,公式如下:

    显然,从各个方向入射的都是单位1个radiance,指定方向的反射率就等于该方向反射的radiance。
    但接下来的一句话用公式描述就不那么显然了,"or, equivalently, total reflection over the hemisphere due to light from a given direction",也就是说,我们可以用这个公式描述从指定方向入射,然后在各个方向反射的总反射率(我感觉这个反射率更能反映多少光被反射了,多少被吸收了)。公式推导如下:

    真相大白,这两种理解确实都对应同一个反射率公式,指定一个方向之后其反射率值也是一样的。

    另一种反射率是半球-半球反射(hemispherical_hemispherical_reflectance),这是一个常数,描述各个方向相同入射情形下,各个方向的总反射。有了上一个公式的推导,这个就简单多了:

    总结:反射率计算中,如果是向各个方向的总反射,需要转化成irradiance,然后跟入射的irradiance相除即可。

  • 相关阅读:
    Redis-cluster集群【第二篇】:redis持久化
    Redis-cluster集群【第一篇】:redis安装及redis数据类型
    django2.0 官方中文文档地址
    jenkins设置CSRF 协议(CRUMB值设置)
    elasticsearch-dump 迁移es数据 (elasticdump)
    大独裁者最后演讲台词
    面向对象的弊端是什么(转)
    IntelliJ IDEA 破解
    Django 2.0.1 官方文档翻译:接下来读什么(page 14)
    Django 2.0.1 官方文档翻译: 高级教程:如何编写可重用的app (page 13)
  • 原文地址:https://www.cnblogs.com/fengbruce/p/3695867.html
Copyright © 2011-2022 走看看