绘制一条曲线,绘制许多曲线,连接、旋转和平移曲线,可以创建曲面和模型。 当今所有工业产品的设计都要求曲面建模完成产品的参数定义。
但是,在一切发生之前,需要得到曲线。
你在PS上随便画的线本质上不是曲线。 把它们放大后,这条线越来越模糊,最后变成一个个不同颜色的色块。
但是,如果颜色块足够小,人眼中的边缘就会很平滑。 此显示模式也称为位图图像,也称为位图。
计算机不像人那样具有徒手划线的能力。 要绘制真正的曲线,需要用数学函数计算每个点的位置,并将点连接到曲线上。
贝塞尔曲线就是这样一个非常直观的曲线函数。
这里有a、b、c三点。 在AB线上选择点d,根据AD与AB之比在BC线上找到点e,设为AD:AB=BE:BC。 连接DE,在DE线段上找到点f,设定为DF:DE=AD:AB=BE:BC。
这个f点是我们得到的贝塞尔曲线上的点。 将d点从a移动到b,连接所有得到的f点,由ABC的三个点定义的曲线,称为二次贝塞尔曲线。
控制点越多,次数就越多。 软件中常用的画笔工具将三次贝塞尔曲线分段,并通过两个锚点和两个控制点定义曲线。
用这样的公式定义的图形称为矢量图。 无论放大多少倍,信息都不会丢失,在位图模式下会呈现锯齿状。
贝塞尔曲线的问题是,过多的控制点会减弱每个点对曲线的控制。 此外,调整任一点会影响整个曲线,并且无法只修改局部。
像“钢笔”工具一样对贝塞尔曲线进行分段时,曲线和曲线之间的连接不平滑。 不能满足工业设备建模要求的C2连续。
因此,根据贝塞尔曲线,发展了NURBS曲线。 Non-Uniform Rational B-Splines,中文称为非均匀有理b样条。
b样条可以认为是一系列基函数的线性组合,这些基函数还来自低阶基函数的线性组合,两个节点向量之间有不同的差,可以调节权重。
我知道你没听明白。 写上面这句话的时候,我们其实也不明白。 所以,我们完全学习了清华大学的计算机图形教材。 现在我们终于明白了什么是不均匀有理b样条。
接下来的内容非常有趣。 让我们开始吧。
首先,必须知道,贝塞尔和NURBS等曲线没有用传统的y=f(x )函数关系来表示。 而是通过定义新参数t将曲线表示为多项式。 在三维空间中,p(t )=[x ) t )、y ) t )、z ) t ) ]。
例如,直线段可以参数化表示,如下所示:
p代表点的位置包括x、y、z轴的坐标信息,P1是这条直线的起点,P2是这条直线的终点。
那么,当t为0时,p(t )的位置在P1上,当t为1时,p(t )的位置在P2上。 t的0到1区间的各值对应的p ) t )连接坐标,成为P1和P2连接的直线。
参数函数可以清楚地表达各种曲线。 例如,四分之一圆弧可以表示为:
了解参数函数,就可以理解贝塞尔曲线的函数。 这是加法符号。 这是基函数。 请不要担心。 接下来进一步介绍。
为了生成曲线,首先需要确定n 1个控制点,记为Pi。 将各控制点乘以基函数,并将结果相加,得到与参数t对应的p(t )坐标,连接后成为接近控制点的曲线。
例如,以具有P0、P1、P2、P3四个控制点的三次贝塞尔曲线为例,每个点都有对应的基函数曲线。
发现当t为0时,P1、P2、P3的基函数的结果均为0,此时p[t]的位置在P0上,当t为1时,P0、P1、P2的函数的结果均为0,此时p[t]的位置在P3上
另一方面,当t在0和1之间时,p(t )的位置是这4个函数与控制点相乘相加的结果。 这意味着每个控制点的位置发生变化会影响最终生成的整个曲线。
B样条通过多次递归分段函数来解决bezier曲线问题。 b样条和贝塞尔函数逻辑没有区别,但可以看出基函数和定义域t发生了变化。
这是b样条的基函数,I是控制顶点的编号,k是这条曲线的次数。
以具有四个控制顶点的三次b样条曲线为例。
为了能够局部地控制曲线,首先需要设置从t0到t7的共计8个(4)3)节点,由于各节点有固定的数值,所以将0、1、2、3、4、5、6、7作为8个节点的数值。
由基函数公式可知,要计算三次B样条基函数,首先要计算两次基函数,要计算两次,首先要计算一次,要计算一次,必须先计算零次。
根据公式,控制点p00阶基函数n0仅在t0和t1之间为1,其他区间均为0。
这样,可以刻画剩下的三个控制点的基函数n 1,0到n 3,0。 此外,T4-T7节点还将生成用于后续计算的三个基本函数。
基于零阶基函数,可以计算一阶基函数。
基函数n0,0和n1,0组合生成新节点,对应的基函数为n0,1。 这样,n 1,0和n 2,0组合成为n 1,1; n 3,0和n 4,0被组合为n 3,1。
b样条曲线是连接这四个基函数和Pi的乘积之和,即四个控制点的直线。
然后,可以进一步计算并求出2次基函数,n0,2到n3,2。 进而计算出3次基函数。 n0,3,n1,3,N2,3,n3,3。 最后带入公式后,计算出p(t ),得到整个曲线。
在这张图中,可以更清晰地看到b样条基函数的递归逻辑。
我们发现每个三阶基函数只有四个节点区间有数值。 也就是说,这个控制点终于实现了贝塞尔曲线无法实现的局部控制。
在前面的示例中,节点之间的数值相等,因此也称为均匀b样条曲线。 在实际应用中,节点间距不均匀的不均匀b样条较为常见,控制点控制范围更加灵活。
另一方面,“有理”意味着可以为b样条曲线的每个控制点设置不同的权重,以进一步控制曲线。
这就是非均匀有理b样条。
通过该网站可以更直观地理解NURBS曲线。
每个控制点有四个参数,XYZ轴坐标和权重,权重越高,曲线越靠近该点,控制点对曲线的影响就越高。
次数意味着分段函数的计算次数。
次数为1时,为连接各控制点的直线。 如果阶数为2,则每条直线的计算为多段曲线;如果阶数为3,则分段曲线将被进一步计算,以生成更短、更平滑的曲线。 可以不断增加次数,但实用上3次就足够了。
可以看到,在同一位置的10个控制点上,三阶NURBS曲线比九阶bezier曲线更平滑。
有了b样条曲线,可以通过连接、旋转和平移曲线来构建曲面。
接下来,我们的三维模型师杰苏尔完成建模。
首先用b样条绘制所需模型的轮廓,并增加一些额外的点,使直线部分更垂直。 然后,添加圆形样条曲线,通过扫描创建模型的基础形态,并调整天花板形状,大致完成模型的整体。
添加眼球、瞳孔,增加细分曲面,调整大小和位置,然后再复制一个眼球,就完成了一个剪辑模型。