数学基础(一):参数曲面表示方法

各位同学,今天我们来聊聊自由曲面设计里最绕不开的数学基础。说实话,这部分内容刚接触时会觉得有点枯燥,但等你真正上手做项目,就会发现——嗯,这些数学工具就是你的“武器库”。

我个人习惯把参数曲面比作“用数学公式画出来的布”。你想想看,一块布可以任意弯曲、拉伸,但它的经纬线始终存在。参数曲面也是这个道理——我们用参数方程来描述曲面上每一个点的位置。

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

就是两个偏导数的叉积。注意要归一化,得到单位法向量。

实用技巧:在代码实现时,我习惯用中心差分法计算偏导数,而不是解析求导。虽然精度稍低,但通用性强,换曲面类型时不用改代码。

曲率计算

曲率分为主曲率、高斯曲率和平均曲率。对于光学设计,最常用的是主曲率。

计算步骤:

  1. 计算第一基本形式系数E、F、G
  2. 计算第二基本形式系数L、M、N
  3. 求解特征方程得到主曲率k₁、k₂

高斯曲率K = k₁·k₂,平均曲率H = (k₁+k₂)/2。

嗯,这里要注意:当高斯曲率为正时,曲面是“碗状”的;为负时是“马鞍状”的。在自由曲面设计中,我们经常需要控制曲率的正负,来调整光线的走向。

避坑指南:我曾经在计算曲率时,直接用数值微分求二阶导数,结果噪声很大。后来改用拟合局部曲面再求解析曲率的方法,精度提升了一个数量级。

知识体系总览

下面这张图,是我自己总结的参数曲面知识框架。你可以把它当作学习路线图:

参数曲面知识体系 参数曲面 Bezier曲面 B样条曲面 NURBS曲面 曲面连续性:C0 → C1 → C2 法向量计算 曲率计算(主曲率/高斯/平均) 光学设计应用:光线追迹、像差优化

这张图把今天讲的内容串起来了。从参数曲面的三种表示方法,到连续性要求,再到具体的几何量计算,最后落到光学设计应用上。你学习时,可以按照这个脉络一步步深入。

好了,这一章的内容就到这里。数学基础是自由曲面设计的“内功”,练好了后面做项目才能得心应手。下一章我们会继续深入,讲微分几何在自由曲面中的应用。


公众号:蓝海资料掘金营,微信deep3321