装满水的玻璃杯产生的焦散现象
光学中，**焦散现象**（caustic）是被弯曲的面或物体反射或折射后，出现光线的包络，或包络在另一面上的射影。焦散现象会形成焦散线或焦散面，每条光线都与之相切。如右图所示，可见明显的焦散线。这些形状通常有尖点。

茶杯底部的肾形焦散线
水面造成的焦散线
浅水中的焦散线

解释
--

射线经过非平面折射后，在许多光线交叉的地方会形成焦散线。
集中的光线（如阳光）会灼伤人。"焦散"（caustic）一词来自希腊语καυστός"烧焦"，途经拉丁语*causticus*"燃烧"。

光线照射在酒杯上时，就会出现焦散现象。玻璃杯会投射出阴影，也会产生弯曲的亮区。在理想情况下（包括平行光射入时）会产生肾形光斑。光线穿过波浪照射在水体上时，通常会形成波纹状的焦散线。

彩虹是人们熟悉的另一种焦散现象。雨滴对光的散射会使不同波长的光折射成半径不同的弧线，从而产生彩虹。

计算机制图
-----

计算机图形学中，大多数现代渲染系统都支持焦散效果，其中有些甚至还支持立体焦散。这是通过光线追踪光束的可能路径，并考虑折射与反射实现的；光子映射是其中一种实现方式。立体焦散也可以由体积路径跟踪实现。一些计算机图形系统采用"正向光追"技术，将光子模拟为来自光源，按照规则在环境中反弹。在有足够光子照射到表面的区域，就会形成焦散，使其比平均区域更亮。"反向光追"则是以相反方式工作，从表面开始，确定是否有通向光源的路径。这里 （页面存档备份，存于）可见一些三维光追焦散的例子。

大多数计算机图形系统的重点在美学而非物理上精确，这在电脑游戏的实时渲染中尤为明显，游戏中大多使用预先算好的材质。

焦散工程
----

焦散工程描述的是解决计算机图形学中逆问题的过程。即，在给定图像的前提下，确定折射或反射光形成图像的表面。

在这问题的离散版本中，表面会被分为若干微表面，假定是光滑的，即每片微表面反射/折射的光线形成高斯焦散。这意味着，每个微表面都服从高斯分布。每块微表面的位置与方向由泊松积分与模拟退火相结合的方法得到。

解决连续问题的方法多种多样，如利用运输理论中所谓最优运输（optimal transport）的思想寻找入射光与目标表面之间的映射。获得这种映射后，利用斯涅尔定律反复调整，从而优化表面。

### 基于最优运输的焦散图案设计

#### 基本原理

控制焦散图案是相当具有挑战性的问题，因为表面的微小变化会严重影响图案质量：光线方向在与材料反射/折射时可能会受到其他光线的干扰。这将导致图案离散、不连续。为了解决这个问题，基于最优运输的方法是现有的建议方法之一，它可以在光线穿过某种透明材料表面传播时改变光线方向，从而控制焦散图案。给定物体/图案的参考图像，目标是描述光线折射通过的材料表面，并汇聚到参考图像的类似图案。具体方法是重新排列/重新计算初始光强，直到得到优化问题的最小值。

#### 设计管线

这里进考虑折射焦散，对象可按如下方式确定（不同输出的反射焦散也有类似原理）：

*输入:* 给定光源位置，灯光通过材料传播后获得的图案图像。

*输出:* 接收面（平坦的固体表面，例如：地板、墙壁等）上的焦散图形。

为实现目标图案，须将光线射向外部环境的表面加工成一定形状，以便在另一面实现所需的图案。

如上述，在输入图像的情况下，该过程将产生类似的焦散图案作为输出。原则上，有两个核心阶段，又分成两个子阶段：

* 基于最优运输的焦散设计解最优运输问题
	1. 计算目标光分布
	2. 计算从初始分布到目标分布的映射
* 优化目标表面
	1. 计算表面的法线表示
	2. 表面细化

#### 解最优运输问题

在透明表面发生折射的情况下，例如在清澈水面下出现的图案，可以观察到3种主要现象：

* 非常亮（凝聚光强）的点（所谓奇点）
* 连接各点的曲线状对象
* 光强度较低的区域

未进行计算，我们引入以下3个量来描述图案的几何特征：点奇异性{\displaystyle \Phi \_{p}}（度量某些高度集中的点的光强）、线奇异性{\displaystyle \Phi \_{c}}（度量某些较亮曲线附近的光强）、辐照度{\displaystyle \Phi \_{I}}（测量某个光照不集中区域的强度）。把它们放在一起，下面的函数就定义了目标表面上某一部分Ω的总辐射功率{\displaystyle \Phi \_{T}}：

{\displaystyle \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 }
这步之后，就有了两个辐射通量测量值，分别是辐射源{\displaystyle \Phi \_{S}}（由初始化均匀分布）与目标{\displaystyle \Phi \_{T}}（上一步计算）。剩下要计算的是从源到目标的映射。为此要先定义几个量，首先是两个由概率取值的光强：{\displaystyle \mu \_{S}}（用{\displaystyle \Phi \_{S}}除以{\displaystyle \Phi \_{S},\ \Phi \_{T}}之间联合区域的通量）、{\displaystyle \mu \_{T}}（用{\displaystyle \Phi \_{T}}除以{\displaystyle \Phi \_{S},\ \Phi \_{T}}之间联合区域的通量）。其次，由多个点{\displaystyle s\_{i}\in (\Phi \_{S}\cup \Phi \_{T})}生成原网格，之后再变形。接着，在这组点{\displaystyle s\_{i}}上定义power图{\displaystyle P\_{w}}（一组power元{\displaystyle C\_{i}^{w}}），由权向量{\displaystyle \omega }加权。最后，我们的目标是决定要移动哪些power元。考虑面上所有{\displaystyle x}个顶点，找到以下凸函数的最小值{\displaystyle \omega \_{min}}，就可得到目标的匹配power图：

{\displaystyle 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))}
#### 优化目标面

计算过程
在解出最优运输问题后，就得到了顶点。不过，这并没有提供最终表面形状的信息。给定入射光{\displaystyle d\_{I}}、出射光{\displaystyle d\_{O}}及上一步所得的power图，根据斯涅尔定律可算出曲面法线：

{\displaystyle 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 }}
其中

{\displaystyle \eta }：折射系数
{\displaystyle x\_{R}}：解上述最优运输问题所得目标位置
得到法线表示后，通过最小化以下复合能量函数，实现表面细化：

{\displaystyle {\underset {x}{\operatorname {arg\,max} }}\,\omega \,\cdot [E\_{int},\,E\_{dir},\,E\_{flux},\,E\_{reg},\,E\_{bar}]}
其中

{\displaystyle E\_{int}=\sum \_{v\in M\_{T}}\lVert n\_{o}-n\rVert \_{2}^{2}}是将最优运输所得顶点法线{\displaystyle n\_{o}}与斯涅尔定律计算所得目标法线{\displaystyle n}对齐，所得的积分能量。
{\displaystyle E\_{dir}=\sum \_{v\in M\_{T}}\lVert x-{\textbf {proj}}\_{(x\_{S},\,d\_{I})}(x)\rVert \_{2}^{2}}：最优传输所得网格无法适应不连续面的尖点，这一项用于惩罚这种点，使其不会随入射光发生显著变化。
{\displaystyle E\_{flux}=\sum \_{t\in M\_{T}}\lVert \Phi \_{T}(t)-\Phi \_{S}(t\_{s})\rVert \_{2}^{2}}是经过网格中三角形{\displaystyle t}的能量通量。
{\displaystyle E\_{reg}=\lVert {\textbf {L}}{\textbf {X}}\rVert \_{2}^{2}}是使三角形形状规则化、保持形状良好的能量。
{\displaystyle E\_{bar}=\sum \_{v\in M\_{T}}\lVert max(0,-log((1-n\_{R}.(x-x\_{R}))+d\_{TH})\rVert ^{2}}是屏障能量，用于确保曲面变形不会超过一定距离的阈值{\displaystyle d\_{TH}}。
### 可变逆渲染焦散图样设计

#### 基本原理

逆图形学是一种观察图像数据、推断所有可能属性（如三维几何、光照、材料与运动）生成逼真图像的方法。传统计算机图形学中，为使图像具有理想的外观和效果，要赋予图像所有相关属性/特征，这可以说是前向方法；而在焦散设计中，物体（尤其材料表面）的性质并不平凡。给定约束条件就是要获得的目标图像。因此，目标是通过观察、推断目标图像，以获得其性质。这可以视作反向方法。

下面是基本损失函数，解释了如何优化参数：

{\displaystyle L(c)=\lVert f(c)-I\rVert ^{2}}
其中

{\displaystyle L(c)}：损失函数，渲染图像与目标的均方误差
*c*：包含可能影响生成图像的元素
*I*：目标图像
#### 管线设计

可变逆渲染焦散设计
首先，设计目标图案并计算前向传递，得到合成图样。然后与目标图案比较，得到损失。
这是让合成图案尽可能与目标图案相似。然后进行反向传播，以获得焦散制造中所需的优化属性。

#### 生成图像的元素

* 外观（Appearance，{\displaystyle A}）：像素表面外观建模为MipMap纹理与像素亮度之积。
* 几何（Vertices，{\displaystyle V}）：假定三维场景由三角形近似，参数为顶点{\displaystyle V}。
* 摄像机（Camera，{\displaystyle C}）：焦距、视点、摄像机中心。

还可以有更多元素，如反照率、折射率之类。

#### 一般可变框架

引入U为中间变量，表示2维投影的顶点坐标。这些属性的梯度可从链式法则推导出：

{\displaystyle {\frac {\partial f}{\partial V}}={\frac {\partial f}{\partial U}}\times {\frac {\partial U}{\partial V}}}
{\displaystyle {\frac {\partial f}{\partial V}}={\frac {\partial f}{\partial A}}\times {\frac {\partial A}{\partial V}}}
{\displaystyle {\frac {\partial f}{\partial C}}={\frac {\partial f}{\partial U}}\times {\frac {\partial U}{\partial C}}}
应用随机梯度下降后，可得最优的{\displaystyle A,\ V,\ C}。随后，这些量将用于雕刻或铣削材料，以生成目标图案。

#### 方法

一种常见方法是利用各种深度学习自动微分框架/库（如TensorFlow、PyTorch、Theano）中执行微分运算的能力。

还有一种方法是用OpenDR框架建立前向图形模型，并自动获取模型参数的导数，以进行优化。在获得优化属性后，就可以生成目标图像。OpenDR提供的局部优化方法可纳入概率编程框架，可以解决焦散问题。

### 制造

设计与制造过程
计算设计出焦散图样后，处理过的数据将用作机械加工。

根据所需质量、制造所需工作量和可用的制造方法，可以用各种材料。

* 常见折射材料：亚克力、聚碳酸酯、聚乙烯、玻璃、钻石
* 常见反射材料：钢、铁、铝、金、银、钛、镍

Architecture
焦散图样设计有很多应用，如

* 灯具
* 珠宝
* 建筑
* 装饰玻璃生产

另见
--

* 焦点
* 模糊圈
* 焦散 (数学)

参考文献
----

1. ↑  Lynch, DK; Livingston, W.. . Cambridge University Press. 2001. ISBN 978-0-521-77504-5.
2. 1 2  Weinstein, Lev Albertovich.. Boulder, Colorado: The Golem Press. 1969.
3. ↑  Circle Catacaustic （页面存档备份，存于）. Wolfram MathWorld. Retrieved 2009-07-17.
4. ↑  Levi, Mark.. SIAM News. 2018-04-02  [2018-06-01]. （原始内容存档于2023-06-27）.
5. ↑ .  [2024-01-09]. （原始内容存档于2013-04-19）.
6. ↑ .  [2024-01-09]. （原始内容存档于2012-06-12）.
7. ↑  Guardado, Juan.. Fernando, Randima (编).. Addison-Wesley. 2004  [2024-01-09]. ISBN 978-0321228321. （原始内容存档于2019-10-30）.
8. ↑ . Dual Heights Software.  [2017-05-28]. （原始内容存档于2023-10-13）.
9. ↑  Marios Papas.  (PDF). Computer Graphics Forum (Proc. Eurographics). 2011-04, **30** (2). doi:10.1111/j.1467-8659.2011.01876.x. （原始内容存档 (PDF)于2021-05-11）.  (Additional resources at Wojciech Jarosz's Dartmouth University site （页面存档备份，存于）)
10. ↑  Villani, Cedric.. Springer-Verlag Berlin Heidelberg. 2009. ISBN 978-3-540-71049-3.
11. ↑  Philip Ball.. New Scientist. 2013-02, **217** (2902): 40–43. Bibcode:2013NewSc.217...40B. doi:10.1016/S0262-4079(13)60310-3.
12. ↑ .  [2024-01-09]. （原始内容存档于2023-07-17）.
13. ↑  Schwartzburg, Yuliy; Testuz, Romain; Tagliasacchi, Andrea; Pauly, Mark.. ACM Transactions on Graphics. 2014-07-27, **33** (4): 1–11  [2024-01-09]. doi:10.1145/2601097.2601200. （原始内容存档于2022-07-07）.
14. ↑  Cédric, Villani.. Springer. 2009. ISBN 978-3-540-71050-9.
15. ↑  Loper, Matthew M.; Black, Michael J. Computer Vision – ECCV 2014 (Springer International Publishing), 2014: 154–169, ISBN 978-3-319-10583-3, doi:10.1007/978-3-319-10584-0\_11 可免费查阅
16. ↑  Loper, Matthew M.; Black, Michael J. Computer Vision – ECCV 2014 (Springer International Publishing), 2014: 154–169, ISBN 978-3-319-10583-3, doi:10.1007/978-3-319-10584-0\_11 可免费查阅

* Born, Max; Wolf, Emil.  7th. Cambridge University Press. 1999. ISBN 978-0-521-64222-4.
* Nye, John.. CRC Press. 1999. ISBN 978-0-7503-0610-2.

阅读更多
----

* Ferraro, Pietro.. The Physics Teacher. 1996, **34** (9): 572–573. Bibcode:1996PhTea..34..572F. doi:10.1119/1.2344572.
* Dachsbacher, Carsten; Liktor, Gábor.. Symposium on Interactive 3D Graphics and Games (ACM). February 2011: 47–54.