渲染方程的一点介绍

来自:

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili

反射方程

入射——反射——出射,没毛病。

光线只弹射一次,入射光都来自光源,没毛病。

但是,光线可能弹射的不止一次,这个入射,除了来自光源,还可能来自其它物体的反射。

所以,可能得递归……

从反射方程,推广到渲染方程

一个物体的某点向某个方向发射能量,这个能量,来源有两部分——自发光的,其它物体射过来的。

现代图形学的基础

那末,怎么解这个方程?以后再说……

这个论文的名字就叫《The Rendering Equation》

现在,可以不沉浸在推导里了

【这里的渲染方程只是针对反射,不能描述折射、散射等现象】

【半球,写作Ω+,只考虑上半球】

【KaijiyaKay?】

【因为是有限个点光源,所以不需要对立体角积分便能得到入射点的irradiance】

【BRDF的定义公式也表明它是将某个立体角附近范围入射的部分irradiance】

【点光源的radiance是没意义的,点光源应该用intensity,E=intensity/r^2】

【这里为什么没有积分了??】

【点光源啊,只有一条光线会有贡献】

【这里只考虑一根光线 所以积分没了 其他项都是0】

【没有积分了哦  这里只考虑特定的一根或几根光线    积分理解为求和即可】

【这里的(wi, n)应该是(wi dot n)】

【积分已经算出来了,直接就是Lux了】

【因为这里是点光源,不存在积分】

【求连续的 才用积分】

——不存在积分,所以把上面那个公式里的积分号+后面的积分变量去掉了,它俩是一对,表示积分,明白了

 好多点光源,就都累加起来

 如果是面光源呢?按若干点光源的集合来算

求和变成了积分

【多个有限(离散)点光源就是求和了,面(连续)就要积分了】

【连续的情况下还要乘上一个立体角微元】

渲染方程 

 如果除了光源,还有其它物体反射过来的光,怎么计算?

把这个物体当成光源

【为啥有个负号】

【因为这里的入射角度为了方便函数计算都是规定为从反射点朝外的,但是这里的入射角作为另一个点的出射角是从外射向当前点的,所以正好相反,这里加一个负号就可以直接递归了】

【因为-wi是物体到反射点向量】

 理解成递归,好处多多

当年的论文

化简 

 【BRDF如何定义 那就看他们怎么总结的了  多半也是 参数调来调去 调到最接近现实的情况  记录下来 发布出去 广泛应用】

【递归的终点就是光源吧】

用递归的话,可以数学化简到这个方程,中间省略了很多过程

简写的渲染方程,为了理解

 通过未知的化简等很多步骤,还可以简写成这样,写成算子……

中间的很长的过程,省略了

L:要算的东西

E:光源本身辐射的能量

K:反射操作符,反射能量

【式子越短。问题越大】

【总能量=自发光能量+总能量*各级衰减系数】

【微积分都可以写成线性代数形式】

【K其实可以跟之前讲光的K类比,衰减】

【前面的那个式子左侧项也可以改成一个l和单位算子的积分,就可以减了】 

【要理解算子,才能这么做,不然完全不理解的】

【陈文灯,微分算子解方程】

【考研在B站看了个 算子的解题技巧- -  算矩阵方程用的  就是把矩阵看成 x 应用高数的泰勒展开 或者其他公式  算出来再把x写成原矩阵即可】

【这就是普通的泰勒展开】

【L是封闭空间所有反射光能量,乘以K算子会减少,但是再加上E恰好不变。就像封闭盒子里面放一个光源,内部光稳定】

【这里是generating function,不是所谓的泰勒展开,只不过看起来形式一样】

 

【线性泛函,这个K是有界线性算子】 

【《具体数学》2.2节对几何级数做了详细推导】

【可怕,这竟然是人脑想出来的】

【这个其实和前面的积分没区别的,只是不同的表达形式】

 【其实第一个式子本来就是个递推式,直接展开也能得到这个结果】

【对,直接用递归推导,也能得到相同的式子】

好像是真的。。

然后就可以根据这个拆开的结果来理解了

按光线弹射次数分类,相当于,傅里叶变换的那种分类

【理解这个把一次一次叠加然后累计得到总的就能理解了】

【结果很符合直觉但是过程太高深】

【这个要求||K||严格小于一才能正确的。】

【结果很清晰,但我真没搞懂怎么来的】

【现实是瞬间完成无数次反射】

【过程很痛苦,结果很巧妙】

【重新定义自然而然】

【由于渲染方程是递归定义的,这个式子是递归展开的形式】

【这里的K要看成算子而不是矩阵】

【果然所有前沿研究的尽头本质是数学】

 然后,可以介绍一个新的概念——全局光照

光线弹射一次——直接光照

光线弹射两次——间接光照

弹射一次,两次,三次……——全局光照

光栅化的着色,大概就是这个。

光栅化只能描述光线弹射0次,1次的情况。再往后,光栅化就比较难做了。

【全局光照 = 直接光照 + 间接光照 + 两次弹射光照 + 三次弹射光照 + ....】

实际应用 

 然后,介绍一点直观的

【注意这张图上面的灯是亮的,后面要考】

直接光照,

 

 

为什么,弹射次数增加到4次,灯就亮了?因为次数少,只够光线从摄像机到灯,出不来;次数多,够出来了,追踪到光源了,就亮了。 

比如,光线至少弹射2次,才能出玻璃球。

光线穿过这个灯,得经过2层玻璃。

 

 

弹射次数继续增加,是全白,还是收敛?

自然界都是全局光照,所以,是收敛。

 【这需要BRDF满足能量守恒的约束】

后面再说。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值