数学基础(一):参数曲面表示方法
各位同学,今天我们来聊聊自由曲面设计里最绕不开的数学基础。说实话,这部分内容刚接触时会觉得有点枯燥,但等你真正上手做项目,就会发现——嗯,这些数学工具就是你的“武器库”。
我个人习惯把参数曲面比作“用数学公式画出来的布”。你想想看,一块布可以任意弯曲、拉伸,但它的经纬线始终存在。参数曲面也是这个道理——我们用参数方程来描述曲面上每一个点的位置。
Bezier曲面:最直观的起点
先从Bezier曲面说起。它是最容易理解的参数曲面形式。我记得刚入行时,第一个自由曲面项目就是用Bezier做的。
Bezier曲面的数学表达式是这样的:
S(u,v) = ΣᵢΣⱼ Pᵢⱼ · Bᵢₙ(u) · Bⱼₘ(v)
其中Bᵢₙ(u)是Bernstein基函数。说白了,就是控制点Pᵢⱼ乘以两个方向上的基函数,再求和。
关键特点:
- 控制点数量固定为(n+1)×(m+1)
- 曲面通过首尾控制点
- 移动一个控制点会影响整个曲面
这里有个坑,我必须要提醒你。Bezier曲面虽然直观,但当你需要精细调整局部形状时,它就不太够用了。因为——移动任何一个控制点,整个曲面都会跟着变。我在做汽车前大灯反射镜时吃过这个亏,调了十几次都没达到理想效果。
B样条曲面:局部控制的利器
B样条曲面解决了Bezier的全局性问题。它引入了“节点向量”的概念,让每个控制点只影响曲面的局部区域。
数学表达式:
S(u,v) = ΣᵢΣⱼ Nᵢₚ(u) · Nⱼₚ(v) · Pᵢⱼ
这里的Nᵢₚ(u)是B样条基函数,p是次数。次数越高,曲面越光滑,但计算量也越大。
我的经验:在照明光学设计中,通常用三次B样条(p=3)就足够了。既能保证曲面光滑,又不会让计算太慢。
为什么会这样?因为三次B样条能保证C2连续性,而大多数光学系统对曲面光滑度的要求,C2已经绰绰有余。
NURBS:工业界的标准
NURBS(非均匀有理B样条)是B样条的升级版。它引入了权重因子,可以精确表示圆锥曲线和球面。
公式长这样:
S(u,v) = [ΣᵢΣⱼ Nᵢₚ(u) · Nⱼₚ(v) · wᵢⱼ · Pᵢⱼ] / [ΣᵢΣⱼ Nᵢₚ(u) · Nⱼₚ(v) · wᵢⱼ]
多了一个分母,这就是“有理”二字的来源。权重wᵢⱼ越大,曲面越靠近对应的控制点。
注意:NURBS虽然强大,但权重设置不当会导致曲面出现“鼓包”。我曾经在做一个自由曲面透镜时,就因为权重调得太大,曲面局部凸起,导致光线追迹结果完全偏离预期。
曲面连续性:C0、C1、C2
曲面连续性,说白了就是两块曲面拼接处的光滑程度。我把它分成三个等级:
| 连续性 | 含义 | 光学设计中的意义 |
|---|---|---|
| C0 | 位置连续(拼接处无缝隙) | 最基本要求,否则光线会“漏”出去 |
| C1 | 切平面连续(一阶导数连续) | 光线反射/折射方向不会突变 |
| C2 | 曲率连续(二阶导数连续) | 光斑均匀,无亮暗条纹 |
你想想看,如果两块曲面只有C0连续,光线经过拼接处时,方向会突然改变,在屏幕上形成一条亮线。这就是我们常说的“接痕”。
我曾经在做一个LED路灯透镜时,就因为忽略了C1连续性,结果配光曲线出现了明显的“驼峰”。后来花了整整两天时间重新调整控制点,才把问题解决。
法向量与曲率计算
法向量和曲率,是自由曲面设计中最常用的两个几何量。法向量决定了光线的反射/折射方向,曲率则影响光线的汇聚/发散程度。
法向量计算
对于参数曲面S(u,v),法向量N的计算公式:
N = ∂S/∂u × ∂S/∂v
就是两个偏导数的叉积。注意要归一化,得到单位法向量。
实用技巧:在代码实现时,我习惯用中心差分法计算偏导数,而不是解析求导。虽然精度稍低,但通用性强,换曲面类型时不用改代码。
曲率计算
曲率分为主曲率、高斯曲率和平均曲率。对于光学设计,最常用的是主曲率。
计算步骤:
- 计算第一基本形式系数E、F、G
- 计算第二基本形式系数L、M、N
- 求解特征方程得到主曲率k₁、k₂
高斯曲率K = k₁·k₂,平均曲率H = (k₁+k₂)/2。
嗯,这里要注意:当高斯曲率为正时,曲面是“碗状”的;为负时是“马鞍状”的。在自由曲面设计中,我们经常需要控制曲率的正负,来调整光线的走向。
避坑指南:我曾经在计算曲率时,直接用数值微分求二阶导数,结果噪声很大。后来改用拟合局部曲面再求解析曲率的方法,精度提升了一个数量级。
知识体系总览
下面这张图,是我自己总结的参数曲面知识框架。你可以把它当作学习路线图:
这张图把今天讲的内容串起来了。从参数曲面的三种表示方法,到连续性要求,再到具体的几何量计算,最后落到光学设计应用上。你学习时,可以按照这个脉络一步步深入。
好了,这一章的内容就到这里。数学基础是自由曲面设计的“内功”,练好了后面做项目才能得心应手。下一章我们会继续深入,讲微分几何在自由曲面中的应用。
公众号:蓝海资料掘金营,微信deep3321