Q74:面积光源(Area Light)

74.1 理论推导

 

前面,我们已经学习了点光源。其实现实中所有的光源都是有一定大小的,所以点光源在严格意义上是不存在的。在严格意义上,所有的点光源都是面积光源

 

一方面,由于面积光源自身有一定大小,所以能够像场景中的普通物体一样被看到;另一个方面,面积光源作为光源可以为场景中的其他物体提供入射光。如下图示意:



74.1.1 面积光源为其他物体提供入射光

 

我们重点看看面积光源是怎么为其他物体提供入射光的。

 

面积光源=几何物体+发光材料。

 

我们在“Q72:渲染方程(Rendering Equation)”章节学过渲染方程的面积形式:(重复贴图如下)






74.1.2 面积光源自身被看到



74.2 C++代码实现

 

我们先看看需要添加那些代码。

1,面积光源类AreaLight。由“式子4”,我们知道AreaLight类至少提供LVG三个参数。而L是由发光材料决定的,所以,还要新建一个发光材料类EmissiveVG是由几何物体的采样点决定,所以还要新建一个几何物体类Rectangle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值