首先,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相除即可。

关于反射率(reflectance)的更多相关文章

  1. AVIRIS反射率数据简介

    Surface Reflectance 高光谱图像 ↑ AVIRIS高光谱成像光谱仪采集得到的原始图像为辐亮度图像,经过校正后的L1级产品为地表辐亮度信息.但是许多时候,我们更希望知道地面目标物的反射 ...

  2. 图形学理论知识 BRDF 双向反射分布函数(Bidirectional Reflectance Distribution Function)

    图形学理论知识 BRDF 双向反射分布函数 Bidirectional Reflectance Distribution Function BRDF理论 BRDF表示的是双向反射分布函数(Bidire ...

  3. (转)图形学理论知识 BRDF 双向反射分布函数(Bidirectional Reflectance Distribution Function)

    BRDF理论 BRDF表示的是双向反射分布函数(Bidirectional Reflectance Distribution Function),它描述了光线如何在物体表面进行反射,可以用来描述材质属 ...

  4. Landsat TM DN值转为表观反射率

    日地距离计算参见<中华人民共和国气象行业标准太阳能资源评估方法>  

  5. UnrealEngine4 PBR Shading Model 概述

      虽然是概述,但内容并还是有些多,写上一篇PBR概念概述后,也在考虑怎么继续下去,最后还是觉得先多写一些东西再慢慢总结,所以还是尽量把这些年PBR相关的Paper精粹沉淀下来吧.     因为UE4 ...

  6. CSharpGL(53)漫反射辐照度

    CSharpGL(53)漫反射辐照度 本系列将通过翻译(https://learnopengl.com)这个网站上关于PBR的内容来学习PBR(Physically Based Rendering). ...

  7. 城市边界线预测(根据灯光指数)(PUL)

    1.EXEALL.m function EXEALL(FilePath, FileName)%执行所有流程% FilePath: 文件夹所在路径% FileName: 文件夹名称 FullPath = ...

  8. PBR Step by Step(三)BRDFs

    BRDF BRDF(Bidirectional Reflectance Distribution Function)双向反射分布函数,用来描述给定入射方向上的入射辐射度以及反射方向上的出辐射度分布,B ...

  9. 由浅入深学习PBR的原理和实现

    目录 一. 前言 1.1 本文动机 1.2 PBR知识体系 1.3 本文内容及特点 二. 初阶:PBR基本认知和应用 2.1 PBR的基本介绍 2.1.1 PBR概念 2.1.2 与物理渲染的差别 2 ...

随机推荐

  1. javascript进阶系列专题:作用域与作用域链

    字面意思,作用域是指变量和函数的作用范围,换言之,作用域决定了变量和函数的可见性和有效时间.javascript作用域是用函数来区分,与其他语言的大括号不同. for (var i=0; i<5 ...

  2. [HTML/Javascript] JS判断IE浏览器各版本

    代码参考: function isLowIEVersion() { var browser = navigator.appName var b_version = navigator.appVersi ...

  3. Luogu 魔法学院杯-第二弹(萌新的第一法blog)

    虽然有点久远  还是放一下吧. 传送门:https://www.luogu.org/contest/show?tid=754 第一题  沉迷游戏,伤感情 #include <queue> ...

  4. 单独部署activemq-web-console (转载)

    activemq-web-console的默认使用方式是通过在activemq.xml中导入jetty.xml配置一个jetty server来实现的. 其实activemq-web-console完 ...

  5. css3圆角(还有百分比设置椭圆) 阴影 字体

    一. 现在前面只写知识点,全部内容放在后面截图展示: 给元素添加圆角: border-radius属性,他的值如果等于高的一半,将会等到一个圆形,大于一半叶然是一个圆形 radius是指半径,他求出圆 ...

  6. Shell父进程获取子进程的变量值

    #!/bin/kshshit=""export shitshit=$(su - grid -c 'echo $ORACLE_BASE')pvar=$(subvar="he ...

  7. android异常: java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused

    android手机做下载文件时,报了如下异常: java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused 模拟器 ...

  8. C# MVC 自定义ActionResult实现EXCEL下载

    前言 在WEB中,经常要使用到将数据转换成EXCEL,并进行下载.这里整理资料并封装了一个自定义ActionResult类,便于使用.如果文章对你有帮助,请点个赞. 话不多少,这里转换EXCEL使用的 ...

  9. 使用Javascript中变量的setter属性

    在讲JDK的动态代理方法之前,不妨先想想如果让你来实现一个可以任意类的任意方法的代理类,该怎么实现?有个很naive的做法,通过反射获得Class和Method,再调用该方法,并且实现一些代理的方法. ...

  10. 转-深入理解VMware虚拟网络

    原文出处:http://wangchunhai.blog.51cto.com/225186/381225 VMware Workstation是一款非常不错的虚拟机软件,许多爱好者用VMware Wo ...