#Real-Time Photometric Registration from Arbitrary Geometry
##个人总结
- 作者用CIE LAB颜色空间的亮度值作为最终渲染结果的光照部分,通过最小二乘解超定的线性方程组来得到近似的光源SH系数。
- 鲁棒那部分剔除了遮蔽严重的点(没什么入射光),还搞了采样点的归一化。
- 光照估计所得的光照解 F ~ \widetilde{F} F 在所有点上都可以用,所以一帧内计算一次光照解,只是辐射传输 R T D S RT_{DS} RTDS中的可见性部分 V ( w j ) V(w_j) V(wj)每一点都不一样,所以一帧内每个像素都要算一次辐射传输,文中只是每n个点计算一次,没计算的点用插值求其辐射传输。而且文中用了差分渲染,辐射传输就因此算了纯真实世界和混合世界两次辐射传输,比较耗时。
- 申明光源为远光,所以镜头里面的光源是没办法测的。
- 这篇文章并没有实现全局光照,用的是漫反射阴影模型,倒是能实现真实场景和虚拟物体之间的阴影交互。
- 槽点,公式表示有点非主流甚至有问题,球谐函数感觉还是看Robin Green那篇(下面有传送门)比较舒服,网上也有他的翻译博客。
##摘要
本文提出一套新颖的非侵入式的系统,用任意的场景几何体作为光照估计(Registration)的光探针,还提出了一个支持实时全局光照技术的通用AR渲染管线。基于当时最好的实时几何重构,论文展示了如何鲁棒地区出光照估计所需的数据,去模拟出真实世界的漫反射光照。论文基于球谐函数,通过观察被重构模型(reconstructed model)来估计光。
##1.问题描述
要将虚拟物体渲染到AR中,需要解决两个问题:光照估计和模拟逼真的光照。前者关注测量环境,通过重构估计几何结构就可以达到正确的遮蔽效果。
论文解决了实时光照环境的估计问题。对于AR这种实时应用,要在相机一帧的时间内解决一个光照逆向计算问题。
真实世界的光照条件是第二个问题的必须输入。
##2.文章贡献
不需要侵入式的光探针就可以恢复环境的光照条件。它们用在AR渲染管线里的解决方案是基于球谐函数(SH,spherical harmonic)和体数据光线投射技术的。论文还提出一种方法,用来提高光照估计的鲁棒性和系统地评估合成的/真实世界的数据。
论文利用方向光和场景物体表面的辐射传输的SH表示,达到了准确的光照效果。物体遮挡的处理使用了KinectFusion[13]提出的实时密度重构算法。差分渲染[2]被用来建模真实世界和虚拟物体之间的相互影响。
输入:RGB图像和深度图。限制光照的颜色为白色,物体表面被假设是具有任意表面颜色和纹理的朗博体。
论文的方法能达到交互级别的帧率【其实就5Hz】,也不需要提供任何运行时的人工输入。
##3.光照估计
本文主要研究范围是远光场 F F F,它代表半球上所有的入射光线。远光场的假设意味着我们可以分开处理光源和场景。
###3.1用SH进行光照估计
入射光、观察者和场景几何结构的基本关系见以下反射方程(公式1)。
(1) B ( x , w ⃗ 0 ) = ∫ Ω j T ( x ) ρ ( w ⃗ j , w ⃗ 0 ) L ( x , w ⃗ j ) ( w ⃗ j ⋅ n ⃗ ) d w ⃗ j B(x,\vec{w}_0)=\int_{\Omega_j}{T(x)\rho(\vec{w}_j,\vec{w}_0)L(x,\vec{w}_j)(\vec{w}_j\cdot\vec{n})}d\vec{w}_j \tag{1} B(x,w0)=∫ΩjT(x)ρ(wj,w0)L(x,wj)(wj⋅n)dwj(1)
表面点记为 x x x,出射方向【个人理解是 x x x到观察者的方向】记为 w 0 w_0 w0,表面法线记为 n ⃗ \vec{n} n。整个公式由三项组成, T ( x ) T(x) T(x)表面纹理, ρ ( w ⃗ j , w ⃗ 0 ) \rho(\vec{w}_j,\vec{w}_0) ρ(wj,w0)表面的双线性反射分布函数(BRDF), L ( x , w ⃗ j ) L(x,\vec{w}_j) L(x,wj)x点上关于 w ⃗ j \vec{w}_j wj的入射光。
这里的 T T T没有考虑镜面材质,也没有解决光源颜色和纹理颜色的歧义,这里假设光的颜色为白色,颜色仅仅来源于纹理本身。光源是动态变化的,并且假设为是远光,这意味着整个表面受光均匀。
引入LearnOpenGL-CN上的反射公式做BRDF项的对照
传送门:https://learnopengl-cn.github.io/07 PBR/01 Theory/
公式1*是对一个以点 p p p为球心法线方向上的半球领域 Ω \Omega Ω内所有方向上的入射光进行积分。 f r f_r fr是BRDF项。
(1*) L o ( p , w ⃗ o ) = ∫ Ω f r ( p , w ⃗ j , w ⃗ o ) L i ( p , w ⃗ i ) ( n ⃗ ⋅ w ⃗ i ) d w ⃗ i L_o(p,\vec{w}_o)=\int_{\Omega}{f_r(p,\vec{w}_j,\vec{w}_o)L_i(p,\vec{w}_i)(\vec{n}\cdot \vec{w}_i)}d\vec{w}_i \tag{1*} Lo(p,wo)=∫Ωfr(p,wj,wo)Li(p,wi)(n⋅wi)dwi(1*)
和Lambertian BRDF模型公式(可以看做是 f r f_r fr的特化版本),只涉及漫反射。 c c c表示表面颜色。
f l a m b e r t = c π f_{lambert}=\frac{c}{\pi} flambert=πc
对照小结:公式1的 T T T对应了 f l a m b e r t f_{lambert} flambert中的 c c c,而 ρ \rho ρ对应了 1 π \frac{1}{\pi} π1,因此 T ⋅ ρ T\cdot \rho T⋅ρ才相当于完整的BRDF。
ps: 公式1中的 Ω j \Omega_j Ωj