【图形学笔记】Lecture10-Radiometry-辐射度量学

Lecture10-Radiometry-辐射度量学

动机:前面的反射模型太粗糙啦…而且很多是经验公式。

几个关键概念:Radiant flux,intensity,irradiance,radiance

光线追踪vs.光栅化

  • [局部]光栅化器一次处理一个基本单元,很难确定诸如“A在B的阴影下”之类的事情。
  • [全局]射线追踪器处理一条射线,射线知道所有它相交的地方,很容易谈论阴影和其他“全局”照明效果。

一些概念

Solid angles 立体角

立体角(类比于角度=弧长/半径):

ω=Ar2

Differential solid angle 立体角的导数

平面角(球坐标系):

dA=r2sinθdθdϕ

那么微分立体角(differential solid angle)

dω=dAr2=sinθdθdϕ

绕一圈也很明显有Ω=S2sinθdθdϕ=4π=4πr2r2

辐射度量学

Radiant energy is "total # of hits"——辐射能量=所有打到场景的光子个数,用的不多。

Radiant flux (power)

  • Radiant flux/power 辐射通量=单位时间内的辐射能量,类似于“光照强度”

Radiant intensity

  • 单位立体角的辐射通量

I(ω)=dΦdω

那么 Φ=Idω,考虑球面,就有 I=Φ/(4π)

Irradiance

  • 辐照度(irradiance)= 单位面积的辐射通量(radiant flux),辐射度也叫辐射通量的密度(Radiant Flux Density)

    E(x)=dΦ(x)dA

    注意这里的 A 是有向的,即单位面积和辐射要是垂直的,如果不是垂直的话,则需要算上 Lambert's cosine law,转化成投影的面积。

  • Projected area-Lambert’s Law

    • 考虑一条辐射通量 Φ 的光线,打入了一个面积为 A 的面,面的法向量和光线有个夹角 θ ,那么实际上投影的面的面积只有 A=Acosθ ,辐照度

E=ΦA=ΦcosθA

  • 进一步,着色的时候需要乘上一个单位法向量 n 和(单位)光源方向 L 的点积。
double surfaceColor( Vec3 N, Vec3 L ){
return max( 0., dot( N, L ));
}

Radiance

L(p,ω)=dIdA=dEdω=d2ΦdAdω(cosθ)

表示单位时间内,单位面积上,单位立体角向指定长度辐射的能量。

那么Irradiance 的微元dE=L(p,ω)cosθdω,所以就得到了本节最重要的公式:

E(p,ω)=H2Li(p,ω)cosθdω

下标 i 表示的应该是“入射”的意思。

对于最朴素的情况,即Li 的取值都一样(四面八方辐射进来的Radiance都一样),那么会得到 E=πL.

特别地,课件上还提到了一种情况,光源的Radiance都是L,然后投到了球面上的一个区域 Ω ,那么

E(p)=H2Lcosθdω=LΩcosθdωLΩ

posted @   yoshinow2001  阅读(198)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示