BRDF(一)

这篇博客深入探讨了辐射度量学的基本概念,包括辐射通量、辐射强度、辐射率和辐照度。接着,重点介绍了计算机图形学中的双向反射分布函数(BRDF),它是描述表面反射光的重要模型。BRDF用于解释光如何从特定方向入射并以不同方向反射,同时必须满足能量守恒定律。文章还讨论了BRDF的性质,如可逆性和线性特征,并在着色方程中展示了其应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

辐射度量学:

辐射通量(Radiant Flux,又译作光通量,辐射功率)描述的是在单位时间穿过截面的光能,或每单位时间的辐射能量,通常用Φ来表示,单位是W,瓦特。
在这里插入图片描述
其中的Q表示辐射能(Radiant energy),单位是J,焦耳。

对一个点(比如说点光源)来说,辐射强度表示每单位立体角的辐射通量,用符号I表示,单位 :在这里插入图片描述

在这里插入图片描述
概括一下:辐射强度(Radiant intensity,又译作发光强度),表示每单位立体角的辐射通量,通常用符号I表示,单位在这里插入图片描述 ,瓦特每球面度。

辐射率(Radiance,又译作光亮度,用符号L表示),表示物体表面沿某一方向的明亮程度,它等于每单位投影面积和单位立体角上的辐射通量,单位是W·sr−1·m−2,瓦特每球面度每平方米。在光学中,光源的辐射率,是描述非点光源时光源单位面积强度的物理量,定义为在指定方向上的单位立体角和垂直此方向的单位面积上的辐射通量。光亮度L也可以理解为发光程度I在表面dA上的积分。
一种直观的辐射率的理解方法是:将辐射率理解为物体表面的微面元所接收的来自于某方向光源的单位面积的光通量,因此截面选用垂直于该方向的截面,其面积按阴影面积技术计算。

辐射率的微分形式:
在这里插入图片描述
其中:Φ是辐射通量,单位瓦特(W);Ω是立体角,单位球面度(sr)。
另外需要注意的是,辐射率使用物体表面沿目标方向上的投影面积,而不是面积。

辐照度(Irradiance,又译作辉度,辐射照度,用符号E表示),指入射表面的辐射通量,即单位时间内到达单位面积的辐射通量,或到达单位面积的辐射通量,也就是辐射通量对于面积的密度,
用符号E表示,单位在这里插入图片描述,瓦特每平方米。
辐照度可以写成辐射率(Radiance)在入射光所形成的半球上的积分:
在这里插入图片描述
其中,Ω是入射光所形成的半球。L(ω)是沿ω方向的光亮度。

BRDF的定义与理解:

在计算机图形学领域,BRDF (Bidirectional Reflectance Distribution Function,译作双向反射分布函数 )是一个用来描述表面如何反射光线的方程。顾名思义,BRDF就是一个描述光如何从给定的两个方向(入射光方向l和出射方向v)在表面进行反射的函数, 定义为出射辐射率的微分(differential outgoing radiance)和入射辐照度的微分(differential incoming irradiance)之比,描述了入射光线经过某个表面反射后如何在各个出射方向上分布,给定了入射方向和出射方向能量的相对量,单位是 ,每球面度。。

表面会反射此入射光到很多不同的方向,在给定的任意出射方向v,光亮度dLo与辐照度dE成一个比例。而两者之间的这个取决于l和v的比例,就是BRDF。
在这里插入图片描述
BRDF与着色方程:
BRDF是如何用n个非区域光来拟合一般的着色方程的:
在这里插入图片描述
其中k是每个光源的索引。使用⊗符号(分段向量乘法),是因为BRDF和辉度(irradiance)都是RGB向量。考虑到入射和出射方向都拥有两个自由度(通常参数化是使用两个角度:相对于表面法线的仰角θ和关于法线的旋转角度φ),一般情况下,BRDF是拥有四个标量变量的函数。

BRDF的性质:
BRDF需要遵循能量守恒定律。能量守恒定律指出:入射光的能量与出射光能量总能量应该相等。能量守恒方程如下:
在这里插入图片描述
由此可知:
在这里插入图片描述因此BRDF必须满足如下的积分不等式,也就是能量守恒性质:
在这里插入图片描述

可逆性:
BRDF的可逆性源自于亥姆霍兹光路可逆性(Helmholtz Recoprpcity Rule)。
BRDF的可逆性即,交换入射光与反射光,并不会改变BRDF的值:
在这里插入图片描述

能量守恒性质:
BRDF需要遵循能量守恒定律。能量守恒定律指出:入射光的能量与出射光能量总能量应该相等。能量守恒方程如下:
在这里插入图片描述

线性特征
很多时候,材质往往需要多重BRDF计算以实现其反射特性。表面上某一点的全部反射辐射度可以简单地表示为各BRDF反射辐射度之和。例如,镜面漫反射即可通过多重BRDF计算加以实现。

### Phong BRDF 模型概述 Phong BRDF种用于计算机图形学中的反射模型,旨在模拟光线在物体表面上的反射行为。它由 Bui Tuong Phong 提出,并广泛应用于实时渲染和离线渲染中。Phong BRDF 的核心思想是通过分解漫反射和镜面反射成分来近似真实世界的光照效果。 #### 数学表达式 Phong BRDF 可以表示为以下形式: \[ f_r(\omega_i, \omega_o) = k_d \frac{c}{\pi} + k_s c (\mathbf{n} \cdot \mathbf{h})^{\alpha} \] 其中: - \(k_d\) 和 \(k_s\) 分别代表漫反射系数和镜面反射系数[^1]。 - \(c\) 表示颜色分量。 - \(\mathbf{n}\) 是法向量。 - \(\mathbf{h}\) 是入射光方向 \(\omega_i\) 和观察方向 \(\omega_o\) 的半角矢量。 - \(\alpha\) 控制镜面高光的锐度[^2]。 此模型假设表面是微平面集合体,其微观结构决定了整体反射特性。 #### 实现细节 以下是实现 Phong BRDF 的伪代码示例: ```cpp vec3 phong_brdf(vec3 normal, vec3 lightDir, vec3 viewDir, float kd, float ks, int alpha, vec3 color) { vec3 halfwayDir = normalize(lightDir + viewDir); float diffuseTerm = max(dot(normal, lightDir), 0.0); float specularTerm = pow(max(dot(normal, halfwayDir), 0.0), alpha); return (kd * color / M_PI + ks * color * specularTerm); } ``` 上述代码实现了 Phong BRDF 的基本功能,支持漫反射和镜面反射计算[^3]。 #### 局限性与改进 尽管 Phong BRDF 广泛应用,但它存在些局限性: - 它未能精确建模粗糙表面的真实反射行为。 - 镜面反射部分依赖于经验参数调整而非物理基础理论[^4]。 为了克服这些缺点,后续研究提出了基于物理的渲染PBR)方法,例如 Cook-Torrance 模型,它们更加注重物理准确性并能更好地处理复杂材质属性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值