Rhinonurbs贝塞尔相关基础概

这次谈谈我在nurbs中一些基础术语中形成的概念模型,希望能用最简单的语言讲明白这些东西。概念模型(conceptmodel)又称心智模型,源于认知学,是人类认识事物时,对被认识对象的个体理解,它往往是对现实中复杂问题的简化,并和用户原有的知识储备进行搭桥,有利于学习和记忆,但和实际问题运作机制往往可能会有出入。

Rhino最核心的曲面类型是nurbs曲面,其次是mesh网格,后来也有了sub-d。

理解了nurbs的一些概念,可以更好解释很多东西。下面开始正题了。

NUBRS=用数学公式表达的曲线

数学公式表达这一特性这也就解释了为什么理论上nurbs曲线曲面在电脑屏幕上放大,不会影响它的清晰度,因为数学函数图像放大无数倍它还是这个样,而mesh网格需要多个网格数量才能保证精度。

(说是理论上是因为,显示在电脑上给你看到的其实也是渲染网格。这方面详细可以看这篇老文章扩展:

什么?!Rhino也是网格?被骗了好久......)

所以,从概念模型的建立上可以搭个桥:Rhino的nurbs曲线和adobeillustrator的曲线对应起来;把Rhino的mesh单个网格面和photoshop的像素点对应起来)

(事实上,Rhino的nurbs曲线和abobeillustator可以互转。现在的rhino7已经出了一个贼棒的功能:在rhino做的曲线可以跨平台直接复制粘贴到ai里面,不需要再导出了。这方面详细可以看这篇老文章扩展:

Rhino与平面设计Rhino7Hatch渐变填充

写这个文章的时候rhino7还没出来直接复制粘贴的功能,所以上面补充说明了一下)

Nubrs是非均匀有理B样条曲线的英文缩写(Non-UniformRationalB-Splines),自由度极高的曲线,没有贝塞尔曲线的严格规则限制。

非均匀有理B样条曲线=升级版B样条曲线

B样条曲线=贝塞尔曲线=符合贝塞尔规则的曲线

贝塞尔规则:n阶(n+1)点

贝塞尔是什么?

很早以前学Rhino犀牛这个软件的时候,网上搜过点资料,了解到贝塞尔是个工程师,他发明了一种用数学公式表达曲线的方法。具体什么公式不重要,只要知道在rhino里面它的特点就是n阶(n+1)个点,比如3阶4点,5阶6点,一般采取奇数阶(听说偶数阶是计算机避讳的,再说实际上不好用)。

阶数应该可以理解成数学公式函数里面的次方。只需要知道1阶相当于一次函数y=kx+b,是个直线,二阶相当于二次函数,总之阶数越高,曲线越顺畅。

我认为在犀牛里面用的最爽的是5阶6点:阶数越高越顺畅但是越难调节,5阶保证了比较顺畅也很好调节,并且6个点也保证了曲面两边匹配G2的连续的时候各自影响3排控制点,不影响另一端的控制点,并且刚刚好,不会出现中间多出来几排没人管,保留原位,就可能出现突兀的小峰或者小谷。汽车设计会用到G3连续,那就会有用7阶8点这种了。

曲面衔接匹配方面的文章,可以看这一期

Rhino曲面衔接技巧系统性总结

写的时间比较早,发现有地方有小错误,但不影响整体,后期有时间修订下)

怎么画贝塞尔曲线?

我画贝塞尔曲线的习惯,是先画一条两端的直线,然后重建成3阶数4点,调节一个大趋势,然后再用changedegree指令升阶到5阶,再细调。这样做的话控制点之间的间距会均匀一些,比随手画点应该好一些。

(另外,没有说建模就得纠结于贝塞尔,还是得看需要,需要不怎么高的时候,比如我就做个小花瓶,我怎么舒服怎么来嘛,3阶8点我也不觉得有什么大问题的,效率高就行了,毕竟搞出个Nurbs也是为了大家更自由的画曲线哇。)

贝塞尔曲线做出来的未必能成为贝塞尔曲面。

如何生成贝塞尔曲面?

①用到的曲线必须都是贝塞尔曲线如都是5阶6点②成面工具用:四边成面(edgesrf),双轨扫掠(sweep2)开最简扫掠等等。

③普通曲面重建,uv方向都设置成n阶n+1点

贝塞尔曲面就是A面吗?

A面感觉最初是汽车曲面质量的一种标准,应该是没有很确定具体的定义的,感觉很多时候已经成了“高质量曲面”的一种代名词。它对曲面衔接的公差以及曲率变化的度数有很高的要求,和贝塞尔完全是两回事。也就是贝塞尔曲面未必是A面。

贝塞尔曲面=单span曲面(单跨距/区间曲面)

优秀的曲面往往是简洁的曲面,最简曲面的特征是如上图的十字结构线。结构线越多,说明节点越多,控制点越多,曲面质量可能就很难好,会给后期调节带来困难,毕竟控制点多肯定没有少的好操作。但这不是说曲面越简洁越好,节点多就不好,这需要看情况的,比如匹配一个被剪切过的曲面边缘或者一个很扭曲的曲面边缘的时候,结构线少就没法匹配到公差范围内,是需要点开精确衔接的,或者可以手动增加结构线后再匹配。

结构线显示开启方式:物件属性面板/结构线密度

关于nurbs曲线的一些术语:

控制点(controlpoint):用来调节曲面的操作白色小点

节点(knot)=编辑点:将曲线分成多个区间(span)

区间(span):两个节点之间的部分

外壳线(hull):连接控制点的虚线,类似辅助线,方便看清曲线和控制点之间的关系,是有穿过虚线还是都在虚线一侧。

关于nurbs曲面的术语:

UVN:是曲面自己的三维坐标,非常重要。

它重要是因为它的用处体现在这几个地方:

①在微调控制点的时候,常用这个功能:MoveUVN

这样,就能让控制点沿着曲面固有的三个方向去移动,表现为沿着横向,纵向外壳线,曲面法线方向移动。

②贴表面纹理或者贴图的时候,UVN方向弄错会出现不想要的结果。

③grashopper里面设计到曲面的操作。

④布尔运算没出现预期结果,需要反转下方向之类的。

⑤切割曲面的时候沿着UV结构线切割,切口处仍然是原来的阶数和控制点,否则产生的是有大量控制点的拟合边缘。

暂时想到这些,应该还有很多,体现在曲面建模的方方面面。

就这些吧。

最后总结下,就是不要被贝塞尔,Nurbs等概念唬住了,就记住贝塞尔规则是n阶n+1个点,它用起来很简洁,nurbs是升级版贝塞尔,n阶可以有超过n+1个点,用起来更自由。

学设计的小熊

来自星星的小熊



转载请注明地址:http://www.xiniua.com/jsjn/7848.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章