做光学设计这些年,我最深的一个感受是:这个领域正在被仿真彻底重塑。以前很多人觉得光学设计是“老师傅的手艺”,靠经验、靠试错、靠一点一点调结构,甚至有人开玩笑说“镜头是磨出来的”。但现在完全不同了,从成像镜头到超表面、从光波导到光电器件,仿真已经成了成果产出和工程落地的关键一环,甚至正在变成一种基础能力。这篇文章就是写给正在读硕博、以后打算在光学方向深耕的朋友们,聊聊光学设计、仿真这条线到底要怎么走:工具怎么选、大坑怎么避、有哪些可以直接抄的实操经验。
写这篇文章的起因,是我看到太多研究生一上来就闷头做实验,结果数据对不上、参数调不动、重做一遍又一遍,绕了一个大弯才回过头来补仿真的课。很多人不是不努力,而是把仿真当成了“论文里的配图工具”,做完实验后才补几张仿真图上去。这个思路真的该改一改了。现在无论是工业界项目还是高水平论文,仿真前置、仿真与实验闭环,已经是默认玩法。这篇文章适合三类人:刚入学的光学方向研究生、已经会跑仿真但总觉得不系统不踏实的博士,以及在光电企业里做设计、想快速上手先进仿真方法的工程师。
1. 为什么光学仿真正在成为硕博士的“必修课”
1.1 从“打样试错”到“仿真先行”:这几年到底变了什么
我入行时见过一位老工程师,调一个定焦镜头结构能调三个月,靠的是手里一摞几十年前的专利图纸和“手感和经验”。那个时代也有仿真,但仿真软件性能有限,很多优化只能简化成一维或二维模型,算出来的结果和实物差距大,所以大家更相信试错。现在情况完全反过来了:计算资源足够便宜,软件精度足够高,加上加工、镀膜、装调的周期越来越长,一个反常规的光学设计如果不上仿真,几乎没法推进。
最明显的变化在“试错成本”。以前一个光学实验从设计到出样品可能要两三个月,如果在实验台上发现问题,整个月就废了。现在用仿真先跑一遍,很多问题在屏幕上就能暴露出来。举个特别常见的例子:做镜头设计时,一个MTF曲线不达标,有经验的人会怀疑是离焦、彗差还是场曲,但没经验的人只能在实验台上一次次换镜片。而用光线追迹仿真,把各个像差贡献拆出来只需要几分钟。你不仅知道“有问题”,还能定位“问题在哪一片镜片、哪一个面上”。这种颗粒度是纯实验无法提供的。
再说论文层面。现在光学方向的顶刊和重要期刊,审稿人对仿真数据的要求已经不只是“有没有”,而是“仿得对不对、细不细”。网格收敛性检查、边界条件说明、材料参数来源、模型验证,这些都已经成了标配。如果只是截一张软件界面图,审稿人一眼就能看出来。仿真早就不是论文的装饰品,它是论文论据的主体。
1.2 光学仿真在科研与工业中的真实位置:不只是“算个光路”
很多人对光学仿真的理解还停留在“把光线追迹一下,看看光斑大小”,这其实远远低估了它的覆盖面。光学仿真至少可以分成三个层次,对应到不同研究对象。
第一个层次是成像光学系统设计,也就是镜头、目镜、投影系统这类,核心工具是光线追迹,关注指标是焦距、F数、视场角、MTF、畸变、远心度、色差这些。第二个层次是微纳光学与波动光学,比如超表面、衍射光学元件、光子晶体、表面等离激元,这类结构的尺寸和波长可比,光线追迹失效,必须直接求解麦克斯韦方程组,常见工具是FDTD(时域有限差分)和RCWA(严格耦合波分析)。第三个层次是多物理场与系统级仿真,比如光探测器里光场和电场的耦合、大功率激光器里的热效应、空间光通信里的链路预算,这种往往要把光学仿真和热学、力学、电路仿真放到一起。
理解这三个层次特别重要。因为很多硕博士的困惑本质上是“用错工具”:做了一个亚波长的超表面结构,却拿着光线追迹软件去算透射率,算出来的结果当然离谱。反过来,一个口径几十毫米的成像镜头,也没必要用FDTD去仿真,网格根本扛不住。搞清楚自己在哪个层次,才能选对工具、定对参数。
从工业角度来说,光学仿真早就嵌入了产品全流程:概念设计阶段的方案对比、详细设计阶段的优化、投产前的公差分析和可制造性评估、量产后的失效分析和工艺波动研究。一个光学工程师不会仿真,就像电路工程师不会用EDA一样,基本寸步难行。
1.3 硕博士最需要掌握哪些仿真能力:我的能力清单
如果说趋势是“仿真必学”,那到底要学到什么程度才能应付毕业和求职?我根据自己的观察和招聘经验,给出一份基础能力清单。
第一,熟练掌握至少一款光线追迹软件。光学设计和成像方向的研究生,Zemax OpticStudio几乎就是默认选项。你需要做到能独立完成一套经典结构的学习、优化、公差分析和结果输出。第二,至少接触一款波动光学仿真工具。做微纳光学、超表面、光波导、衍射器件的,Lumerical FDTD是行业主流,退一步也可以用开源工具或自己写RCWA代码。这部分不要求你像软件培训师一样样样精通,但要对网格、边界条件、收敛性、材料色散这些核心概念有体感。第三,数据分析与脚本能力。现在仿真软件都支持脚本化批量扫描,用Python或MATLAB搭一个自动扫参、自动提取结果的流程,效率至少翻三倍。这是很多研究生忽略但真的很拉分的技能。
我并不主张一上来就买几十本教程、把每个软件都学一遍。贪多嚼不烂,光学仿真工具非常多,Zemax、LightTools、Code V、FDTD Solutions、COMSOL、HFSS各有所长,正常人都学不过来。关键是建立“分层思维”,知道自己这方向的核心工具是什么,把那一两个学透,其他用到再学。
2. 光学仿真工具怎么选:Zemax、FDTD、COMSOL到底各管什么
2.1 主流软件分工与核心适用场景
每次有师弟师妹问我“光学仿真用什么软件好”,我都觉得这个问题其实没法直接回答,因为软件是分层的。这里先给一张我常用来做科普的对照表:
| 软件名称 | 所属层次 | 典型场景 | 适合谁 |
|---|---|---|---|
| Zemax OpticStudio | 几何光学/成像系统 | 镜头设计、光学系统优化、公差分析、鬼像分析 | 成像光学、相机/内窥镜/投影方向 |
| Code V | 几何光学/成像系统 | 高性能镜头设计、复杂全局优化 | 高规格镜头、军工/科研光学系统 |
| LightTools / ASAP | 照明/杂散光 | LED照明、导光板、杂散光分析、车灯光学 | 照明工程、杂散光抑制方向 |
| Lumerical FDTD | 波动光学 | 超表面、纳米天线、光波导、光栅、表面等离激元 | 微纳光子学、超表面方向 |
| Lumerical MODE | 波动光学 | 波导本征模式、耦合器设计 | 集成光电子方向 |
| RCWA(各类实现) | 波动光学/周期性结构 | 周期性超表面、光栅的反射透射谱 | 光栅与周期性结构方向 |
| COMSOL Multiphysics | 多物理场耦合 | 光-热-力耦合、光电器件、等离激元器件的多物理场 | 光电器件、跨学科方向 |
| HFSS | 高频电磁场 | 微波/毫米波/太赫兹器件、天线、封装 | 太赫兹光学、射频方向 |
| SPICE类电路仿真 | 系统级 | 光电探测器外围电路、驱动电路、TIA噪声分析 | 光电子系统方向 |
这张表不是说每个软件之间是绝缘的,而是告诉你:光学仿真有一整套从几何光学到电磁场、再到系统级的工具链。工程上常常是多个软件接力配合。比如设计一个超表面成像系统,前面用Zemax规划系统架构、确定各表面的相位分布,后面用FDTD仿真单个纳米柱单元的相位和透射率,再把相位映射回Zemax中。这一步跨软件的数据流,在高级设计里很常见。
2.2 选型背后的一条核心逻辑:你在哪一层求解麦克斯韦方程
选工具之所以让人头疼,是因为没搞懂软件背后的求解逻辑。所有光学仿真本质上都在解麦克斯韦方程组,但是解的近似方式不一样,决定了适用范围截然不同。
几何光学(光线追迹)是波长趋近于零的近似,它认为光沿直线传播,只在介质界面发生折射和反射,适用于结构尺寸远大于波长的系统。镜头里一片几毫米厚的玻璃透镜,用光线追迹能又快又准地求出焦斑位置和像差。但如果你把光线追迹用到一根直径几百纳米的波导上,光根本不会“按直线走”,这层的近似就崩了。
波动光学(FDTD、RCWA)则是直接对麦克斯韦方程组做数值求解,不假设“直线传播”,能精确处理衍射、干涉、倏逝波、共振等效应。代价是计算量巨大。一个超表面单元只有几百纳米,但要在三维空间里划分数十亿个网格点,一台高性能工作站都可能要跑一整晚。
COMSOL这类多物理场软件走的是有限元路线,好处是能把电磁场和热、力、流体、半导体载流子输运完美耦合。光热、光力、光电器件,这些都属于多物理场问题,单靠光学软件是算不了的。
你只需要记住一句话:用光线追迹的软件去算波动光学问题,结果没有意义;用有限元、FDTD去算成像系统,资源根本不现实。搞清楚自己在第几层,工具选择自然就清晰了。
2.3 学习路径建议:从“会用”到“会选”再到“会验证”
关于工具学习,我的建议是分三步走,不要跳过。第一步是“会用”:对着官方手册和经典案例把软件的基本操作跑通。比如用Zemax做一个标准库镜头结构然后优化,或者用FDTD仿真一个简单光栅结构得到透射谱。这一步重点是熟悉界面、术语和文件格式。
第二步是“会选”:遇到一个新问题,能判断应该用哪个软件、哪类求解器。这一步靠的是光学基础知识,不是软件操作。具体来说,你要对“几何光学近似成立的条件”“衍射极限接近时哪些效应不能忽略”这些概念心里有数。
第三步是“会验证”:拿仿真结果和解析解、实验数据做对比,判断仿真是真还是假。这一步最容易被忽略,也最容易翻车。我亲眼见过有人仿真超表面透射率,结果因为材料折射率设置错误,算出来的透射率超过1,还拿着这个错误结果写了半个导师要的进展报告。后来对着菲涅尔公式反算才发现,明明是一加一算错的问题,却浪费了半个月。
3. 把理论变成结果:一个镜头和一个超表面仿真的实操拆解
3.1 成像镜头仿真的完整流程:从指标定义到公差分析
实操部分我拿两类最常见的方向展开,第一类是成像镜头设计。无论你用Zemax还是Code V,一套完整的流程基本固定。
第一步是定义系统指标。比如要做一支焦距25mm、F/2.8、全视场角20°的可见光定焦镜头,工作波段取可见光,像面尺寸按1/1.8英寸传感器来定。这时要在系统选项里设置孔径类型和孔径值、视场类型(角度或像高)、波长和权重。很多人急着优化,这一步草草了事,结果后面每次改指标都重来一次。
第二步是选取初始结构。这一点是分歧最大但也是最体现经验的地方。最稳妥的做法是从镜头库或专利库里找个相似结构作起点。例如经典的双高斯结构,六个镜片,能覆盖中等视场和中等孔径的应用。如果起点结构选得太远,靠软件优化大概率只会在局部极值里面打转,改半天也改不出好看结果。
第三步是设置优化函数与边界条件。在Zemax里通常用默认评价函数,选择RMS光斑半径或波前误差作为优化目标,然后设置视场采样权重。这里特别提醒:默认评价函数不是万能药。你需要手动加入边界约束,比如镜片中心厚度不小于0.5mm、边缘厚度不小于0.3mm、后焦距离大于某个值防止碰传感器、玻璃材料限定在常用库里。少了边界条件,优化程序会给你一个制造不出来的“完美设计”。
第四步是实际的优化与结果评估。跑局部优化,观察点列图、MTF曲线、畸变网格和场曲曲线。一个合格的设计,通常还需要做多轮参数微调。到这一步,很多新手会发现MTF上不去,于是盲目加镜片数量或改曲率半径。我的习惯是先用“垂轴色差”“弧矢/子午场曲”这些诊断图表来定位瓶颈,再针对性优化。如果你都不知道是哪个像差在拖后腿,加镜片也是白加。
第五步是公差分析和鬼像分析。这步是为了让设计“能造出来”。给每个面的曲率半径、厚度、偏心、倾斜都设置制造公差,然后跑蒙特卡罗分析,看90%的产品落在什么性能区间。如果某个公差对MTF影响特别大,就要考虑把这个敏感度降下来,或者在装配流程里加入补偿器。鬼像分析则用来检查哪一组镜面组合会产生聚焦到像面的杂散光,必要时给镜片加镀膜或改结构。
这套流程走下来,你会对“设计-优化-可制造性”有一个非常扎实的体感。光学设计不只是把光路“画出来”,而是要在多个目标之间做权衡。仿真最大的价值就是让你快速探索这个权衡空间。
3.2 超表面仿真的实操要点:周期边界、网格收敛与相位提取
第二类是微纳光学,我用一个典型的TiO2纳米柱超表面单元仿真来举例。这类结构的单元尺寸通常在几百纳米量级,仿真软件默认的策略是:仿单个周期单元,然后在xy方向设置周期性边界条件,z方向用PML吸收边界,模拟一个无限大的周期阵列。这个设定本身就是超表面仿真的灵魂,很多人一开始没搞清楚,试图仿真一个“包含几百个纳米柱的大结构”,直接内存爆炸。
具体参数举一个例子:二氧化钛(TiO2)纳米圆柱,周期p=400nm,高度h=600nm,直径d=200nm,放在玻璃基底上,仿真波长范围从400nm到700nm。网格步长从20nm起步,然后逐步加密到10nm甚至5nm,用网格收敛测试判断精度是否足够。我建议的收敛判据是:当网格从较粗加密到较细时,关键结果(例如目标波长的透射率或相位)变化小于1%,就认为网格已经够细,不必再烧机时。
材料数据是另一个隐藏的大坑。不同文献里TiO2在可见光波段的折射率实部和虚部数据会差不少,尤其是接近带边的部分。建议直接采用软件材料库自带的Palik数据或者权威文献数据,并把数据来源写到论文里。仿真时你要先确认材料的复折射率已经正确加载,否则后面所有透射、吸收、相位的计算结果都会出现系统性错误。
边界条件设定好、材料加载好后,设置一个平面波光源从上往下入射,打开监视器记录透射场和反射场。超表面单元仿真最终要提取的是透射系数的振幅和相位。提取相位这一点特别容易出错:一定要设置合适的参考面,否则得到的相位包含了不必要的传播相位偏移,后面做相位分布映射时会出问题。我的做法是每次仿真都在相同位置记录一个已知厚度的“参考基底”作为相位基准,这样能把几何传播相位的影响扣除掉。
3.3 脚本化批量扫参:把重复劳动压缩到十分之一
光学仿真里最高频的需求就是扫参。超表面设计过程中,你要扫描纳米柱直径、高度、周期、甚至形状和材料,这会涉及几十上百次单元仿真。如果每次都手动设置、运行、导出,人不疯掉才怪。现在主流仿真工具都支持脚本接口,值得花时间把这个流程自动化。
一个常见的批量扫描思路是这样的:定义要扫描的参数列表(比如直径从100nm到260nm,步长20nm),循环建立和修改仿真对象,逐一运行,提取每个结构在目标波长下的透射率和相位,最后把所有结果汇总到一张表或一个矩阵里。配合Python或MATLAB,甚至可以把最终的相位分布数据直接导出成Zemax可以读取的网格相位文件,实现超表面到成像系统的闭环。
这个环节我得提一个经验:不要一上来就追求“全参数、全波长、全网格精度”的大扫描。正确的做法是先用粗网格、粗采样快速探一遍趋势,找到参数敏感区间后,再对关键点加密网格细算。很多人喜欢一次把扫描范围设得很大,结果跑了三天三夜,数据量巨大却因为网格太粗,没有一个点能真正用。先粗后细,既是节省机时的策略,也是避免数据污染的纪律。
4. 光学仿真常见问题与排查实录:不收敛、材料坑、内存爆炸
4.1 仿真不收敛:先从这四个方向找原因
“不收敛”是光学仿真里的高频事故,也是让无数硕博士抓狂的元凶。处理这类问题的核心思路不是乱试参数,而是按结构化方式定位。
以FDTD仿真为例,不收敛表现通常是某个监视点上的场值持续震荡、不随时间稳定,或者是透射率/反射率曲线出现明显的高频毛刺。排查顺序我的习惯如下。第一查网格:时间步长和空间步长是否满足稳定性条件,网格是否太粗导致数值色散过大。网格太粗时,电磁波在网格间传播会产生明显相位误差,结果自然失真。第二查边界条件:PML层数是否足够,有没有把PML放在强场区域附近;周期性边界和Bloch边界是否选对了法向。第三查激发源:光源是否完全落在仿真区域内,光源频谱范围是否包含了材料强吸收或强色散区间。第四查材料数据:如果材料复折射率的虚部为负(这种情况常因为单位或符号理解错误),能量会异常增长,直接发散。
这四个方向按顺序查完,绝大多数不收敛问题都能解决。最忌讳的做法是看到不收敛就随手加密网格十倍,结果算力爆了还是没收敛,因为根因根本不在网格。我经历过一次特别典型的案例:一个同事反复调整网格和边界,仿真始终发散,最后发现是他在手动输入材料复折射率时把虚部符号写反了,导致材料变成了“增益介质”,能量越算越多。这种低级错误很荒唐,但确实会真实发生。
4.2 材料数据不准与相位基准偏移:两个最容易“假对”的坑
材料数据问题我在前面已经提到了,但这里要专门展开一下,因为它是光学仿真中最隐蔽、最不容易发现的问题之一。软件自带的材料库数据通常可靠,但很多人为了“自定义材料”或“非库内材料”手动输入数据,这时就容易踩坑。
判断材料数据是否合理有一个快速自检方法:先用平面波垂直入射一个简单平板结构,把仿真得到的透射率和反射率和菲涅尔公式解析解对比。这个验证放在正式仿真前,几分钟就能跑完。如果连平板都对不上,那你后续仿真纳米柱、超表面、波导的结果肯定都不对,不要抱有幻想。
另一个隐蔽问题是超表面仿真中的相位基准。同一个纳米柱结构,你在不同波长下提取相位,会得到一条随波长单调变化的曲线。但如果参考面设置不统一,这条曲线的斜率就包含了不同长度的传播路径误差,相位分布图直接被“污染”。在超表面设计里,相位数据是要用来构造聚焦波前或偏折波前的,差0.5个弧度都会导致严重的成像质量下降。所以仿真时对同一个参数扫描,必须保证参考面完全固定。
4.3 内存爆炸与机时失控:用对称性、缩区域和分层策略破局
FDTD这类全波数值仿真是真正的“算力吞金兽”。一个三维超表面单元,如果波长是可见光、结构是几百纳米的柱体,仿真区域虽然只有微米级,但网格数量很快就能到几亿量级。我见过很多同学,一上来就仿真一个几十微米的超表面阵列,直接把工作站内存打满,最后连数据都保存不下来。
解决内存问题的第一招是利用对称性。如果结构关于x轴和y轴都是对称的(比如圆柱纳米柱),就可以在x和y方向各设置半个周期的边界或对称边界,计算量直接降到四分之一。如果光源也是正入射且结构对称,对称性还能进一步用。第二招是“缩区域思路”:把问题拆成近场和远场两步。先用小区域精确仿真单个单元,提取近场信息,再用后处理把近场传播到远场,这种分离在光学天线、聚焦器件里都能大幅压缩仿真区域。第三招是分层仿真,像前面说的先粗网格扫描、再细网格验证,把最贵的机时花在最需要精度的关键点上。
另外我建议大家养成一个习惯:每一组仿真开始前,先预估一个合理的运行时间。如果某个仿真预计超过48小时,就要回头评审一下这算不算最合适的技术路线,有没有更快的替代方案。光学仿真是为了得到设计决策,不是为了“烧机器”。一个不够理想但能在几小时内得到的结果,很多时候比一个“完美但跑一周”的结果更有价值。
4.4 常见问题速查表:先定位,再动手
把上面这些经验整理成一张速查表,方便大家遇到问题时快速定位:
| 症状 | 可能原因 | 排查与解决建议 |
|---|---|---|
| 场值持续震荡、透射率毛刺明显 | 网格过粗或时间步长不满足稳定性条件 | 加密网格,检查CFL条件,确认监视器采样率足够 |
| 能量异常增长、结果发散 | 材料的复折射率符号或单位错误 | 复看虚部,用简单平板结构对比菲涅尔公式 |
| 透射率超过1 | 材料数据错误或光源附近有PML不足 | 检查材料的吸收项,增加PML层数/宽度 |
| 内存直接爆掉 | 仿真区域过大或网格过于均匀 | 用对称性、缩小仿真区域、局部网格细化 |
| 相位曲线随参数变化异常跳跃 | 参考面不统一或相位未unwrap | 固定参考面,对相位做解卷绕处理 |
| Zemax优化半天不变化 | 初始结构不适合、权重设置不当 | 更换初始结构,检查评价函数是否包含边界约束 |
| 装配后实际性能远低于仿真 | 公差分析没做或使用了极端敏感设计 | 跑蒙特卡罗公差分析,增加补偿器 |
| 杂散光导致成像出现鬼影 | 光路中存在反射聚焦面 | 用LightTools做光线分裂和鬼像分析,调整镀膜 |
这张表不是让你遇到问题就按表“抄作业”,而是给你一个排查的顺序。先定位到“材料、网格、边界、光源、初始结构”这五个大类中的一个,再深入解决,效率会高很多。
5. 给硕博士的三条进阶建议:仿真思维、论文写作与时间管理
5.1 把仿真和实验做成闭环,而不是各算各的
我见过很多研究生,仿真和实验是“两拨人”在干。有时候同一个模型,学生自己用一套软件仿,实验室师兄用另一套软件仿,结果不一致,就开始怀疑软件有问题。其实更好的思路,是把仿真当实验的“数字预演”,把实验当仿真的“最终验证”。做实验前先用仿真把关键趋势预测出来,例如“这个样品的透射谱在600nm附近会有一个谷”,然后带着这个预期去测,测出来符合,说明模型和实验互相验证了;测出来不符合,那反而是最有价值的时刻——因为一定有什么物理机制被忽略了,值得深挖。
建立这种闭环思维以后,你会发现科研节奏完全不一样。每次做实验之前,你会主动问“仿真会给出什么结果?我期待看到什么?如果偏离,可能的解释有哪些?”这三个问题一问,实验就不再是盲试,而是一次次与模型的对话。这套方法论对写论文尤其重要,因为审稿人最关心的就是“模型可不可信”,而真实验证过的模型才有说服力。
5.2 论文里的仿真部分:从截“软件截图”到讲“验证链条”
现在光学论文里的仿真内容,常见的通病是直接放一张软件界面截图,然后说“仿真结果如图所示”。审稿人看到这种,一般印象分就先扣一半。比较好的写法是展示一条完整的验证链条:先在Methods里写清楚软件版本、材料数据来源、边界条件设置、网格收敛性结果;再给出一组对照,比如仿真结果与解析解或实验结果的对比;最后才展示参数扫描和设计优化。
对硕博士来说,我特别建议养成“把仿真参数写成表格”的习惯。仿真波长范围、入射角、结构尺寸、网格步长、边界条件、材料来源、求解器类型,这些信息每一项都要有据可查。你在毕业时整理数据会发现:实验数据有实验记录本,可仿真记录往往很容易丢。我自己踩过这个坑,早期跑过一批超表面仿真的数据,因为没有完整记录参数,后面想复用却怎么都还原不了,只能重来。
5.3 我的真实体会:仿真不是“毕业通关工具”,是光学人的长期资产
最后说点掏心窝的话。光学设计、仿真这个方向,刚开始学的时候确实枯燥,软件界面密密麻麻,术语又多,很多人在这一步就放弃了,转头去做“感觉更容易”的方向。但我在实际工作中越来越确认,越是能坐得住、肯琢磨网格怎么收敛、材料数据怎么验证的人,后面的路走得越快。仿真这个能力一旦建立起来,就是通用资产:换一个公司、换一个课题组、换一个产品领域,它依然是你做判断的基础。
我再给一个特别具体的时间管理建议:研究生刚入学的一到两个月内,哪怕还没有明确课题,也要先把本领域主流的仿真工具完整走一遍。不用做多深的项目,就是把官方教程里的案例从头到尾亲手复现一遍,边做边记录参数设置的含义。这个投入会在后面真正做课题时成倍地回报你。千万别等到导师下周要数据了,才想起来自己连软件都没装明白。
仿真是一件越做越顺手的事。我早期调试一个超表面结构,一个波长点要跑几个小时,后来学会用脚本、用对称性、用多层策略,同样的仿真压缩到十几分钟。这个进步不是因为我变得更聪明,而是因为我愿意在每一个小地方较真,愿意把每次“踩坑”都记录下来。光学设计、仿真的趋势已经很明显了,早点把它变成你的基本功,以后的路会轻松很多。