光学中,焦散现象(caustic)是被弯曲的面或物体反射或折射后,出现光线的包络,或包络在另一面上的射影。焦散现象会形成焦散线或焦散面,每条光线都与之相切。光线穿过波浪照射在水体上时,通常会形成波纹状的焦散线。
彩虹是人们熟悉的另一种焦散现象。雨滴对光的散射会使不同波长的光折射成半径不同的弧线,从而产生彩虹。
计算机制图
计算机图形学中,大多数现代渲染系统都支持焦散效果,其中有些甚至还支持立体焦散。这是通过光线追踪光束的可能路径,并考虑折射与反射实现的;光子映射是其中一种实现方式。立体焦散也可以由体积路径跟踪实现。一些计算机图形系统采用“正向光追”技术,将光子模拟为来自光源,按照规则在环境中反弹。在有足够光子照射到表面的区域,就会形成焦散,使其比平均区域更亮。“反向光追”则是以相反方式工作,从表面开始,确定是否有通向光源的路径。[http://www.theeshadow.com/h/caustic/ 这里] 可见一些三维光追焦散的例子。
大多数计算机图形系统的重点在美学而非物理上精确,这在电脑游戏的实时渲染中尤为明显,游戏中大多使用预先算好的材质。
焦散工程
焦散工程描述的是解决计算机图形学中逆问题的过程。即,在给定图像的前提下,确定折射或反射光形成图像的表面。
在这问题的离散版本中,表面会被分为若干微表面,假定是光滑的,即每片微表面反射/折射的光线形成高斯焦散。这意味着,每个微表面都服从高斯分布。每块微表面的位置与方向由泊松积分与模拟退火相结合的方法得到。
解决连续问题的方法多种多样,如利用运输理论中所谓最优运输(optimal transport)的思想寻找入射光与目标表面之间的映射。获得这种映射后,利用斯涅尔定律反复调整,从而优化表面。
基于最优运输的焦散图案设计
基本原理
控制焦散图案是相当具有挑战性的问题,因为表面的微小变化会严重影响图案质量:光线方向在与材料反射/折射时可能会受到其他光线的干扰。这将导致图案离散、不连续。为了解决这个问题,基于最优运输的方法是现有的建议方法之一,它可以在光线穿过某种透明材料表面传播时改变光线方向,从而控制焦散图案。给定物体/图案的参考图像,目标是描述光线折射通过的材料表面,并汇聚到参考图像的类似图案。具体方法是重新排列/重新计算初始光强,直到得到优化问题的最小值。
设计管线
这里进考虑折射焦散,对象可按如下方式确定(不同输出的反射焦散也有类似原理):
输入: 给定光源位置,灯光通过材料传播后获得的图案图像。
输出: 接收面(平坦的固体表面,例如:地板、墙壁等)上的焦散图形。
为实现目标图案,须将光线射向外部环境的表面加工成一定形状,以便在另一面实现所需的图案。
如上述,在输入图像的情况下,该过程将产生类似的焦散图案作为输出。原则上,有两个核心阶段,又分成两个子阶段:
- 解最优运输问题
*# 计算目标光分布
*# 计算从初始分布到目标分布的映射
- 优化目标表面
*# 计算表面的法线表示
*# 表面细化
解最优运输问题
在透明表面发生折射的情况下,例如在清澈水面下出现的图案,可以观察到3种主要现象:
- 非常亮(凝聚光强)的点(所谓奇点)
- 连接各点的曲线状对象
- 光强度较低的区域
未进行计算,我们引入以下3个量来描述图案的几何特征:点奇异性\Phi_{p}(度量某些高度集中的点的光强)、线奇异性\Phi_{c}(度量某些较亮曲线附近的光强)、辐照度\Phi_{I}(测量某个光照不集中区域的强度)。把它们放在一起,下面的函数就定义了目标表面上某一部分Ω的总辐射功率\Phi_T:
:\Phi_T(\Omega) = \textstyle \sum_{i=1}^{N_\delta} \Phi_{p}^i(\Omega) + \sum_{j=1}^{N_\gamma} \Phi_{c}^j(\Omega) + \Phi_I(\Omega)\displaystyle
这步之后,就有了两个辐射通量测量值,分别是辐射源\Phi_{S}(由初始化均匀分布)与目标\Phi_{T}(上一步计算)。剩下要计算的是从源到目标的映射。为此要先定义几个量,首先是两个由概率取值的光强:\mu_S(用\Phi_{S}除以\Phi_{S},\ \Phi_{T}之间联合区域的通量)、\mu_T(用\Phi_{T}除以\Phi_{S},\ \Phi_{T}之间联合区域的通量)。其次,由多个点s_i \in (\Phi_S \cup \Phi_T)生成原网格,之后再变形。接着,在这组点s_i上定义power图P_w(一组power元C_i^w),由权向量\omega加权。最后,我们的目标是决定要移动哪些power元。考虑面上所有x个顶点,找到以下凸函数的最小值\omega_{min},就可得到目标的匹配power图:
:f(\omega) = \sum_{s_i \in S} (\omega_i.\mu_S(C_i^0) - \int\limits_{C_i^{\omega}} (\|x - s_i\|^2 - \omega_i)d\mu_T(x))
优化目标面
在解出最优运输问题后,就得到了顶点。不过,这并没有提供最终表面形状的信息。给定入射光d_I、出射光d_O及上一步所得的power图,根据斯涅尔定律可算出曲面法线:
:n = d_I + {\eta x \over \lVert d_I + \eta d_T \rVert} = d_I + {\eta x \over \lVert d_I + \eta {(x_R - x) \over || x_R - x ||}\rVert}
其中
:\eta:折射系数
:x_R:解上述最优运输问题所得目标位置
得到法线表示后,通过最小化以下复合能量函数,实现表面细化:
:\underset{x}{\operatorname{arg\,max}} \, \omega \, \cdot[
E_{int}, \,
E_{dir},\,
E_{flux}, \,
E_{reg}, \,
E_{bar}
]
其中
:
E_{int} = \sum_{v \in M_T} \lVert n_o - n\rVert_2^2是将最优运输所得顶点法线n_o与斯涅尔定律计算所得目标法线n对齐,所得的积分能量。
:E_{dir} = \sum_{v \in M_T} \lVert x - \textbf{proj}_{(x_S, \,d_I)}(x)\rVert_2^2:最优传输所得网格无法适应不连续面的尖点,这一项用于惩罚这种点,使其不会随入射光发生显著变化。
:
E_{flux} = \sum_{t \in M_T} \lVert \Phi_T(t) - \Phi_S(t_s)\rVert_2^2
是经过网格中三角形t的能量通量。
:
E_{reg} = \lVert \textbf{L}\textbf{X}\rVert_2^2是使三角形形状规则化、保持形状良好的能量。
:
E_{bar} = \sum_{v \in M_T} \lVert max(0, -log((1 - n_R.(x - x_R)) + d_{TH})\rVert^2是屏障能量,用于确保曲面变形不会超过一定距离的阈值d_{TH}。
可变逆渲染焦散图样设计
基本原理
逆图形学是一种观察图像数据、推断所有可能属性(如三维几何、光照、材料与运动)生成逼真图像的方法。传统计算机图形学中,为使图像具有理想的外观和效果,要赋予图像所有相关属性/特征,这可以说是前向方法;而在焦散设计中,物体(尤其材料表面)的性质并不平凡。给定约束条件就是要获得的目标图像。因此,目标是通过观察、推断目标图像,以获得其性质。这可以视作反向方法。
下面是基本损失函数,解释了如何优化参数:
:L(c) = \lVert f(c)-I \rVert^2
其中
:L(c):损失函数,渲染图像与目标的均方误差
:c:包含可能影响生成图像的元素
:I:目标图像
管线设计
首先,设计目标图案并计算前向传递,得到合成图样。然后与目标图案比较,得到损失。
这是让合成图案尽可能与目标图案相似。然后进行反向传播,以获得焦散制造中所需的优化属性。
生成图像的元素
- 外观(Appearance,A):像素表面外观建模为MipMap纹理与像素亮度之积。
- 几何(Vertices,V):假定三维场景由三角形近似,参数为顶点V。
- 摄像机(Camera,C):焦距、视点、摄像机中心。
还可以有更多元素,如反照率、折射率之类。
一般可变框架
引入U为中间变量,表示2维投影的顶点坐标。这些属性的梯度可从链式法则推导出:
: \frac{\partial f}{\partial V} = \frac{\partial f}{\partial U} \times \frac{\partial U}{\partial V}
: \frac{\partial f}{\partial V} = \frac{\partial f}{\partial A} \times \frac{\partial A}{\partial V}
: \frac{\partial f}{\partial C} = \frac{\partial f}{\partial U} \times \frac{\partial U}{\partial C}
应用随机梯度下降后,可得最优的A,\ V,\ C。随后,这些量将用于雕刻或铣削材料,以生成目标图案。
方法
一种常见方法是利用各种深度学习自动微分框架/库(如TensorFlow、PyTorch、Theano)中执行微分运算的能力。
还有一种方法是用OpenDR框架建立前向图形模型,并自动获取模型参数的导数,以进行优化。在获得优化属性后,就可以生成目标图像。OpenDR提供的局部优化方法可纳入概率编程框架,可以解决焦散问题。
制造
计算设计出焦散图样后,处理过的数据将用作机械加工。
根据所需质量、制造所需工作量和可用的制造方法,可以用各种材料。
- 常见折射材料:亚克力、聚碳酸酯、聚乙烯、玻璃、钻石
- 常见反射材料:钢、铁、铝、金、银、钛、镍
焦散图样设计有很多应用,如
- 灯具
- 珠宝
- 建筑
- 装饰玻璃生产
另见
- 焦点
- 模糊圈
- 焦散 (数学)
参考文献
*
*
阅读更多
*
*
评论 (0)