粉丝2061获赞4226

大家好,欢迎来到本期 light tools 高级课程,我是林教授,今天我们将一起深入探讨 light tools 中最为核心且强大的部分 优化模块及 optimization module。 这不仅是提高设计效率的工具,更是光学工程师实现卓越设计的关键。在传统的光学设计中,手动微调参数往往耗时费力且难以达到大局最优。 优化模块的核心价值在于,它能基于特定的标准自动提升系统性能,帮助我们快速从海量方案中定位出最优解。无论是透镜形状的细微调整,还是反射镜区域的复杂优化,都能通过它实现。 要驾驭这个强大的引擎,我们需要牢牢掌握优化的核心三要素。请大家看屏幕中央的这三个关键词, variable、 constraint 以及 merit function。 首先是设计变量 variable, 这是指系统中允许程序根据目标自行变动的参数,比如厚度、半径或非球面系数。其次是约束条件 constrate, 在 追求性能的同时,我们必续航率物理限时,比如镜片的厚度不能为负,或者系统的总长不能超过即可限制。最后是评价函数 merit function, 它相当于一把尺子,通过数学算法衡量当前设计与理想目标之间的差距。优化引擎的任务就是通过调整变量,让这个函数值越小越好。大家可以看这张对比图, 左侧是初始设计,光线分布较为凌乱,而右侧是经过 light tools 优化后的效果,光路布局变得更加科学,能量分布也达到了预期的均匀状态。这就是我们接下来的课程目标,掌握这套自动化设计的逻辑。 下面让我们正式开始探索优化的标准流程。手动调透镜曲率真的太痛苦了。我一直想知道,要是变量太多,平价函数会打架吗? 晨曦问到了。核心评价函数其实是个公平的裁判,他用加权平方和把所有目标揉在一起。如果变量间产生冲突,比如提升均匀度却降低了效率,软件就会根据你给的权重进行取舍。 除了权重,你们觉得约束条件在解决这种打架中扮演了什么角色?我觉得 constraint 像是底线,如果没有它,软件可能会为了性能把透镜优化成薄如蝉翼,导致根本没法加工。 博文说得太对了,在 optimization manager 里, constraint 是 必须要达标的红线,而 merit function 是 要在红线内追求的天花板。

大家好,今天给大家分享一个用 mattelab 来辅助光学设计,那么我们用一个反攻杯设计一个最小角度的例子, 我们打开这一个反光杯的一个编程程序,那我们可以看一下啊,这里面我们的反光杯主要的一个关键的。呃,尺寸,就是一个反光杯的一个高度 和这个反光的这个口径,也就是他的一个触碰口径。好,那我们根据这两个来设计他的一个最小角度。以下是这个啊,具体的一个编程的一个程序代码啊,那同时呢,在这里我们 变成完了之后呢,他可以导出我们的一个第三点数据,就是这个反射曲线的一个第三点,同时呢针对啊一些用 just pro 的模拟的,那可以输出一个 stm 语言。 好,那我们这里修改一下啊,我们用高度三十五,然后把我们的口径五十啊来作为一个基本尺寸,那我们运行一下, 你选完之后,我们这里就可以知道这个反射曲线是这样子。好,那同时呢,在这边可以输出相关的一个数据啊, 那在这里我们就可以看到我们刚才输出的这个第三点数据 xy, 它是一个坐标点,同时呢这里也输出了一个反光版的 sdm 语言,就是。呃, cheers pro 用的。 好,那我们首先先打开我们的一个生活,那我们就把刚才的坐标点我们导进来, 我们通过 xyz 的一个曲线,那我们把刚才的 刚才的这个点,我们选用 txt 文本啊,然后把这个 sy 这个坐标点,然后进来 确定好这条,这个 第三点就输进来了,那我们把它把它变成一个实线,我们选中他,然后短十字引用,那我们再画一个中轴线, 好,我们旋转一下,然后再把它加厚, 厚度是不为一。好,那我们把它啊,这里就可以练成为 是作为反光杯 这个档位。好,那我们 接下来就可以打开, 我们把刚才的这个保温杯实体,我们可以调进来 啊,当然呢,在这里,这里面啊跟这个来自于链接,那同时呢,在这里的话可以啊定义啊光线数据的位置,还有他的光线数据表面。我们其实可以在这里定义我们反光杯,我们设置这个面 为反射面,那我们设置一个名字, 好,设置为镜面,我们先把它倒进来, 倒进来之后这就默认有反射设置成反射面了。啊, 那这里刚才说要说明一点呢,就是说我们一开始在这个赖兔子里面就要先把这个啊 光学属性在这里定义哈,就是这个名字的学密了,然后在这里定义他的啊,这个光学属性为简单反射镜。 把这里一开始就要定义好,定义好了之后呢,那我们在那里就可以直接链接过来啊,那我们的光源呢?我们用这个 幺三幺零的 carrie 的幺三幺零的这个货源。好,那我们现在就可以运算 好,运送完之后我们看一下,那我们刚才说的就是,就是啊,通过 matan 来运算得到他的一个反射曲率啊,然后通过 sonics 把它转换成三 d, 那我们再用一下 twitter, 好,我们用 just bro 啊,呃,把刚才我们输出的 fcm 语言,我们把它倒进来, 在这里,在这里点执行,这就是我们刚才输出的。好,那这个反光杯的, 然后背着这个模型就输进来了,因为我们的 sam 原已经把它给加厚了,加厚了之后呢,我们要把这个反射面, 这个反射面我们要定义一下,这里定义的是 镜面,设置了,镜面。 好,设置完镜面之后呢,我们接下来就可以直接运算了。 好,现在预算完了,那我们现在看一下现在模拟的结果, 我们把它对导出他的 is。 好,那接下来我们把刚才 lei touss 和 twitter 模拟出来的一个结果 is 都倒进来,我们对比一下这两个软件模拟出来的一个结果。 好,那我们看一下他们的一个角度。 好,左边的是 like two 死的,右边的是全是 prada, 他们的角度呢是比较接近的。 i to 死呢是十点五度, 然后 two 呢是十点六度。所以说这两个软件啊,同一个模型,同一个 led 啊,出来的结果是差不多了。好,那今天的分享就到这。

林教授,刚才我们讨论了如何观察光线扇面, rayfun 来评估结果,现在让我们更深入地通过这个交互模拟器直观感受权重 weight。 如何左右优化器的决策?请看屏幕上的模拟环境。 这里展示了三条具有代表性的光线及其对应的聚焦状态。助教小雅,大家可以先尝试拖动下方的滑块,改变边缘光线与轴向光线的 weight 比例。 请注意观察左侧实时更新的 merit function、 加权平方和数值,以及右侧光线聚焦点的移动趋势。月月, 哇,我发现,当我把边缘光线的权重调到极大时,虽然边缘光线收拢了,但中心光线的偏离反而变大了。 这是否意味着权重实际上是在不同的象差指标之间做平衡?交易?志强,从数据上看确实如此。正如我们在第四页学习参数配置时提到的,加权平方和公式决定了优化器的前进方向。 当某一项的权重增加,优化器就会倾斜更多资源去减小那一项的偏差。这验证了评价函数的数学本质。林教授, 没错,通过这个交互,大家应该能体会到,在 light tools 优化中,权重并不是越大越好,而是要体现你的设计意图。合理的权重分配能像导航仪一样引导优化器跨越设计陷阱,最终锁定那个物理上最理想的平衡点。

我们看一下,因为我们有时候可能这个机器通过快快递啊,什么这种方式运输到客户那里啊?然后 我们打标的时候发现光路与这个桌面不平行,就形成一个这种,就像这个一样,一个夹角啊,这种要怎么给他调整成水平的呢?啊?我们有两种方法,一种方法就是啊 把这个弯路摆正啊,这下面有四个螺丝,这下面有四个螺丝,把这四个螺丝先松掉啊,扭松,用右脚扭松,扭松之后 他就这样子就可以进行摆动了啊,我们光路就可以进行摆动了,然后摆动给他与我们这个短条平行啊,形成一个直角,这样子就就能完成了啊,光路偏移。

刚才我们讨论了 monte carlo 验证的重要性,现在到了本次课程的最后环节综合测评。 我们要把今天学到的变量设置、边缘厚度约束、 edge thickness constraints 以及评价函数 merit function 的 核心逻辑串联起来,检验一下大家的掌握程度。 助教小雅,在处理第一道选择题时,请大家特别关注自由度与边界条件之间的对称关系。而在简答题部分,建议结合我们在 optimization manager 中的实际操作经验,尤其是关于权重为此对收敛结果的影响来展开描述。 林教授,这里我想特别强调一点,当你在优化记录 optimization log 中看到评价函数数值不再下降,但设计目标仍未达成时,往往需要回头检查变量是否触碰了约束边界。 志强,你可以结合你对 invalidries 的 研究,思考一下光线追迹失败是否也是导致无法收敛的潜在原因。月月,你在探索权重影响时提出的平衡点问题,在回答第二题关于约束权重调整的时机时,会非常有启发, 请大家开始作答,不仅要给出答案,更要理清背后的工程逻辑。总结一下我们这节课的内容, 从评价函数的基础定义,到非球面聚光镜的实战优化,再到最后的诊断与验证。 light tools 的 优化从来不是简单的一件完成,而是需要我们不断在光学性能与制造可能性之间寻找最优解。感谢大家的积极参与,今天的课程到此结束, 期待在后续的进阶课程中与大家继续探索光学设计的奥秘。如果我们为了追求更小的光斑而把透镜边缘压得太薄,工厂可能根本做不出来。这种时候,大家觉得是该调低性能目标的 weight, 还是先放宽约束条件呢? 月月提到了工程中最头疼的性能与工艺博弈。在 light tools 里,约束条件通常是硬指标。我会建议先检查 variables 是 否已用尽,如果放宽约束也无法达标, 是否该考虑更换褶皱率更高的材料?你们认为单纯调低权重会不会导致系统放飞自我而彻底偏离设计初衷? 其实我更担心放飞自我导致的 invalid raise。 如果调低权重让边缘太陡,光线追击失败,会直接破坏 marry function 的 连续性。这时候比起放宽约束,增加 asfric 接触来换取自由度可能更有效。 志强说得对,在 optimization manager 里,大家常忽略 controls 标签页的 step size。 如果光线追剧报, invalid race 减小不长,能让优化更平滑,而不是一味修改权重不长调小确实稳, 但如果为了避开 invalid race 把 step size 设得太碎,会不会让优化慢得像蜗牛爬呀? 月月的直觉很灵敏,不长确实是一把双刃剑。大家看这个示意图,不长越小收敛越稳,但速度骤降。其实志强提到的增加非球面接触是治本,而调不长是治标。 既然提到了自由度,你们觉得在非球面优化中,先动低阶系数还是高阶系数? 我绝对会先动低阶系数。低阶系数控制大局面型,对收敛影响更直接。高阶系数往往在后期微调 in value race 边缘时才发力,先动高阶很容易导致波前出现高频震荡。 补充一点,大家在变量列表勾选时,可以先把高阶系数设为固定,等低阶优化到瓶颈, 也就是平价函数趋向走平了,再放开高阶去修补边缘光线的追击报错。 那如果放开高阶系数后,曲线反而往上跳了,是不是说明高阶自由度反而让 merit function 掉进局部极小值的陷阱里了? 月月说到了重点,数值反弹往往是因为高阶项引入了面形病态。大家注意看公式,高阶系数对半径极度敏感,在 light toots 中如果遇到这种情况,我会立刻检查表面石膏图。 你们觉得此时是该增加减速因子还是给高阶项单独加上拉格朗日陈述约束?

接续刚才对评价函数计算异常的讨论,我们现在必须正视一个在 light tools 优化中非常棘手但也极其关键的问题, invalid race, 也就是无效光线的处理机制。 在 monicolor 光线追踪过程中,如果一条光线未能击中预设的目标表面 target surface, 它就会被系统标记为 invalid。 为了保证优化过程的稳定性,这类光线在当前的优化循环 optimization cycle 中将被排除在评估之外,不会计入 merit function 的 计算。 请注意,这种排除并不是永久性的。每当优化器 optimizer 重新运行或不进时,系统都会重新检查光线的有效期。 这意味着之前因为参数不理想而跑偏的光线可能会随着系统模型的改进而重新回到评估体系中。 从技术逻辑上讲, in valley 的 状态是动态更新的,大家在操作时务必关注优化输出窗口 output window 如果出现大量无效光线的警告信息,这往往预示着当前的系统参数可能处于极端状态, 或者我们的初始变量 variables 设置得不够合理。在进入接下来的非球面聚光镜实战案例前,关于无效光线对算法收敛性的影响,我想听听志强的看法,因为这直接关系到我们优化的效率。 如果 invalid raise 占比过高, marry function 可能会出现虚假的断崖式下降。大家觉得此时调整优化不长,能否避免算法掉进局部最优解的陷阱? 志强提到了虚假下降根源就在这个公式里。当无效光线增多,分母 n 会变小, 盲目加大布长反而会让更多光线丢失,造成评价函数改善的假象。大家认为收紧变量的棒子是否比调整布长更有效?收紧棒子确实能防止变量跑偏,但如果出使结构就很差, 会不会把原本能通向局最优的路径也给堵死了?我觉得可以用更高权重的 pick ups 来辅助约束。月月担心的死胡同确实存在, 但在 light tools 里,与其死守 bounce, 不 如检查 optimization manager 里的 regroup 标签页,适当增加总追踪光线数,让 invalid 的 基数更稳,这样评价函数才不会因为几根光线的丢失就剧烈震荡。小雅老师说得对,增大样本量能压低噪声。 但我观察到,在优化 aspiric condenser 时,如果 invalid rays 依然顽固锁定那些导致光线溢出的离群变量,通常比调布常见效更快。 志强所变量是外科手术室的精准打击,但别忘了蒙特卡洛噪声,如果样本数太低,优化器可能在信噪比极低的环境下瞎跑。悦悦,如果你用 pick ups 做应约束,是否考虑过它对收敛速度的负面影响? 的确,复杂的 pick ups 会增加导数计算的开销。但我好奇,如果为了收敛速度而放宽约束,导致 invalid raise 触发了这种虚假下降,我们能通过监测 merit function 的 实时变化曲线来识别这种欺骗性吗? 观察实时曲线时,如果看到 m f 和 invalid race 数量同步跳水,那就是虚假下降。大家可以打开 output window, 重点盯防那个百分比。小雅指出了关键监控点,但要注意,虚假下降往往伴随着导数矩阵的病态, 如果遇到这种同步跳水,你们会选择立刻回退版本,还是先增加光线数来强制平滑表面?我会先加光线数验证梯度真实性。如果 n 翻倍后 m f 瞬间反弹,说明刚才的下降全是噪声,必须立刻回退版本并收紧棒子。

感谢志强的分享,处理无效光线 invalidries 确实是保证优化稳定性的前提。接下来,我们将通过一个非球面聚光镜 asparic condenser 的 实战案例, 演示如何在 light tools 中将理论转化为操作步骤。首先,明确我们的设计目标 design goal。 我 们希望在坐标原点处的虚平面 virtual plane 上实现光束的最小聚焦斑点。这就需要我们构建一个能够准确描述聚焦程度的评价函数 merit function。 为了实现这一目标,我们需要在优化管理器 optimization manager 中定义变量 variables。 在 这个案例中,我们将透镜的厚度 thickness, 后表面的圆锥长束 connect 以及半径 radius 设为可变,赋予软件足够的自由度来寻找最优解。然而,无限制的优化可能会得到纸面上完美但无法加工的结果, 因此我们必须添加物理约束 constraints。 这里我们将最小边缘厚度 mean edge thickness 限制在五毫米以上,以确保后续的机械加工可行性。 林教授在此提醒大家,在设置任何变量之前,请务必检查变量的初始值是否符合物理逻辑。如果初始结构太离谱,即使是再强大的评价函数也难以将其拉回到合理的范围内。下面我们来看看具体的界面配置。 在确认了初始结构的合理性后,我们进入非球面聚光镜优化的第二步,配置具体的评价函数 merit function, 并观察执行过程。林教授,首先,我们需要在 set up 阶段定义数据目标。在本案例中, 我们将目标设置为 local surface y。 通过将 target 目标值设定为零,我们实际上是在命令 light tools 寻找一组非球面系数,使光线能够尽可能地交汇在局部坐标系的中心点。 助教小雅请大家留意这个 light tools 优化设置界面,在操作时,确保你在 optimization manager 的 数据行中准确勾选了对应的变量,并检查权重设置是否符合我们在前几页讨论的逻辑。接下来是执行阶段,点击菜单中的 optimization, 然后选择 optimize 启动优化。此时软件会启动迭代计算,你会看到 merit function 的 数值在不断下降,这标志着设计正在向目标收敛。林教授, 最后一步是结果观察。优化结束后,我们重点观察胶平面上的光线扇面 ray fan 理想情况下,你会看到原本分散的曲线变得更加平直且向远点靠拢,这意味着光束的能量集中度得到了实质性的提升。接下来,我们将通过交互练习来研究权重对这个结果的具体影响。


林教授,在理解了权重对优化的导向作用后,我们进入了关键的收尾环节。优化结果分析与后续步骤。当我们点击了 execute 并完成了迭代,接下来的判断力往往比操作本身更重要。 林教授,首先是第一步, resource analysis, 我 们需要进入 optimization 菜单下的 resource 选项,查看详细报告。 小雅,在代教过程中,你发现同学们在看这份报告时最容易忽略什么?助教小雅,林教授,大家往往只看最后的总分, 但我建议大家重点看各个 group 的 贡献度。如果某个项的数值异常高,说明我们的设计可能在这里遇到了瓶颈, 或者权重分配依然不合理。林教授,说得对,如果经过多次尝试,光斑尺寸或效率仍不理想,我们就得考虑 surface upgrade, 也就是将现有的表面结构升级,例如更换为更高阶的 polygonal sphere。 多项是非球面,利用更多的自由度来强制压低余流相差。林教授,最后,我们不能只看优化期的理想输出,必须进行 final verification, 通过 monte carlo 模拟来评估系统在实际环境下的表现。志强, 这里要注意 monte carlo 的 随机种子设置,确保结果是可重复且具有统计意义的。如果 results 报告里 invalid race 比例突增或者某个变量贡献度锁死,是不是就该换高阶面了? 志强,观察很灵敏,但要注意, invalid race 比例突增往往不代表面型能力不足,更多是由于变量跨度过大,导致光线在追迹中发生了全反射或溢出。 看白板,当非球面系数的贡献度占比极高,却无法继续压低总误差时,说明自由度已经榨干。这时大家觉得是直接加阶数,还是该先检查变量间的偶合度? 我觉得先查偶合度更稳妥,不然盲目换 polonnoeio s fear 可能会让光线跑得更野。要是权重调到极大误差还不动,是不是也该考虑加阶数了? 月月说的对,权重极大,但结果不动往往是陷入了局部极小值,这时候加接触就像是给一辆刹车锁死的车换大马力引擎,很容易让光线追迹直接报错。简单说,藕合就是你动半径厚度也得跟着动, 否则光性能反而变差,系统动弹不得。所以大家记住,加接数前先尝试 reset variables 或微调权重,打破当前的局部平衡。 确实,我对比过 asfaric condenser 的 数据, in valid raise 突增时, merit function 往往会产生萎收敛。这就好比模型跑飞了,数据看着再降,其实是追击失败导致的假象。 难怪我调权重时有时误差突然降到零,原来是伪收敛。那这时候用 monte carlo 跑一下,是不是就能戳穿这种假将的假象了?月月说得太棒了, monte carlo 就 像照妖镜, 当 merit function 因为追击失败而虚报低分时, monte carlo 分 析能通过随机扰动暴露出系统真实的敏感度。 大家在优化中遇到误差断崖式下跌,必须反查 trace errors 记录,大家操作时记得去 optimization manager 的 controls 标签页看, trace errors 如果失效光线太多,哪怕平价值再低,也是废纸一张。

大家好,我是林教授,欢迎参加本期关于 light tools 优化的专题课程。今天我们将深入探讨光学设计中直观重要的一环,评价函数 merit function。 它是决定优化能否成功的核心所在。首先,什么是评价函数?在工程实践中,它是一个衡量光学系统性能的量化指标,也常被称为误差函数 error function。 简单来说,它利用数学模型计算出系统当前状态与我们设定的理想性能目标 target value 之间的差异。 请注意这个逻辑,评价函数的值越接近零,就意味着系统的实际表现与设计目标越吻合。因此,优化的本质就是通过算法不断迭代,使这个函数值最小化。 要在 light toots 中执行一次成功的优化 optimization 必须满足两个基本的前提条件,缺一不可。第一是至少需要设置一个变量 variable, 比如透镜的厚度、曲率、半径或非球面系数,给系统留下调整的空间。 第二则是必须定义至少一个评价函数 married function, 用来告诉软件优化的方向和准则。没有评价函数,优化器就像失去了指南针。 下面我们来详细看看如何构建最常用的光线评价函数。接续刚才提到的评价函数概念。在 light tools 中 最基础且最为高效的一种形式就是光线评价函数,即 remarit function。 它直接利用光线追踪的几何数据来评估系统质量。它的优化精准通常基于光线扇面 refence、 光线网格 regrades 或特定的单条光线。由于它不需要追踪成千上万条随机光线,其计算量远小于完整的 monte carlo 模拟,这使得我们能够在极短的时间内完成多次迭代。 接下来,我们从数学原理的角度来看看它是如何运作的。虽然软件会自动计算,但理解其背后的逻辑对设置参数直观重要。请看这个公式。 merit function 本质上是所有彩样光线的加权。平方和 y 代表权重, 决定了该项指标的重要性。 y 是 光线在参考面上的实际位置或角度,而 y target 则是我们的理想目标值。 两者之差的平方越小,说明设计越接近目标。基于这种特性,我给大家一个工程建议,在系统架构确定的初期,应优先使用 remarit function 来实现快速收敛,确定大致的透镜形状和位置。 等到后期需要精确评估照度分布时,再切换到 monte carlo 油画。这种分阶段的策略能极大地提升设计效率。

林教授,正如我们刚才讨论的,乘法函数的数学表达可能有些抽象,现在让我们通过这个互动实验,直观地看看这些参数是如何塑造惩罚曲线的。 晨曦,你可以先带领大家尝试调节一下左侧的滑动条。小文, 好的,请大家注意屏幕中心的坐标系。首先,试着拖动第一个滑动条来调节 tolerance 公差。你会发现,当公差增大时,惩罚值从零增长到零点一的这段距离会变长, 这意味着系统对初矢偏差的缓冲区变得更宽了。晨曦,哇,确实很明显。接下来我尝试增大 exponent 指数。 大家看。当指数增加后,曲线在边界外的上升趋势变得异常陡峭。这就像是给优化目标加上了一道更严厉的惩罚,迫使设计结果必须留在公差范围内。林教授观察的很仔细, exponent 决定了约束的硬度。在 light tools 中,较高的指数会向优化引擎发出强信号,优先解决该项违规。但正如我们在第七页提到的, 过高的指数也可能导致 merit function 的 地形变得过于复杂,甚至难以收敛。博文,我发现 weight 权重 滑动条的效果更像是整体缩放。调节它时曲线的形状虽然没有改变,但惩罚贡献的绝对值在成倍增长。 这在实战中应该就是用来平衡不同约束项之间权重的吧。小文,完全正确,大家可以自由组合这三个参数,观察它们如何共同定义一个 penalty constraint 的 形态。 掌握了这些曲线的变化规律,我们接下来就能深入探讨如何构建完整的评价函数 merit functions 了。 刚才小文带大家体验了惩罚约束的调节。在 light tools 中,所有的约束最终都要服务于一个核心指标,那就是评价函数 merit function。 有 时我们也叫它误差函数。 简单来说,评价函数是用来量化当前设计与理想目标之间偏离程度的。在优化过程中,我们的目标非常明确,评价函数的数值越小,系统的光学性能就越理想。 林教授,从数学上看,评价函数 f 等于各个向的权重 w 与偏差平方德尔塔学学的乘积之合。这个公式解释了为什么优化器总是试图通过调整变量来最小化这个总和。构成评价函数的要素非常多元, 你可以追踪特定光线的路径 ray, 也可以基于复杂的照度或强度网格数据 mesh, 甚至可以使用 user defined 自定义函数来满足特殊设计需求。林教授,这里我要特别强调 weight 权重的控制, 它是你与优化器沟通的语言,当你希望某个指标,比如中兴、光强被优先改进时,就调大它的 weight。 权重越大,它在总评价函数中的占比就越高,优化器分配的精力也就越多。小文, 在软件操作层面,大家可以在 optimization manager 的 评价函数区域点击右键,通过 admiral function 菜单快速添加不同的评价指标,记得根据具体任务选择合适的要素和出示权重。 最后,理解权重归一化也很重要,这能保证我们的评价函数评价标准不会因为网格尺寸的变化而剧烈波动。理解了这些逻辑,我们就能更高效地引导优化方向。