zoukankan      html  css  js  c++  java
  • NURBS 曲线和曲面参数化

    NURBS 曲线和曲面参数化

    什么是参数?

    参数是曲线或曲面上点的唯一数值(类似于坐标)。通过参数,可以沿曲线的长度方向引用特定点。参数值越大,点在曲线方向上的距离越远。

    就像空间中的点具有三个维度(称为 X、Y 和 Z),点的参数是沿着曲线的一个内部维度(长度)测得的。我们将该维度称为 U。

    由于曲面具有两个内部维度(长度和宽度),因此,我们需要除 U 之外的另一个参数才能指定曲面上的点。我们将该参数称为 V。

    沿曲线长度方向上的每个点都有一个 U 参数,同样,曲面上的每个点都有 U 和 V 两个参数。

    什么是参数化?

    应用程序用于沿曲线为点编号的方法称为曲线的参数化。有两种参数化方法可用:统一和弦长。

    每种方法各有优缺点,具体取决于曲线的使用方式。可以在创建新曲线时选择要使用的参数化方法,也可以重建现有曲线以使用特定的参数化方法。

    统一

    统一参数化为编辑点指定整数参数值,并沿两个编辑点之间的跨度均匀分布参数。因此,第一个编辑点的参数始终是 0.0,第二个编辑点始终是 1.0,第三个编辑点始终是 2.0,依此类推。

    统一参数化的一个额外功能是,最后一个编辑点的参数值同时还是曲线的跨度数。但是,与弦长参数化不同的是,统一曲线的参数与曲线的实际长度无关。

    虽然统一参数化范围的默认值为 0 到总跨度数,但是,可以使用“重建曲线/重建曲面”(Rebuild Curve/Rebuild Surface)来将范围更改为 0 到 1。0 到 1 方案常见于其他计算机图形软件包;某些用户可能考虑到熟悉程度而希望使用这种方案。

    弦长

    弦是将一系列编辑点从曲线的起点连接到终点的线性段。弦长参数化为曲线起点指定参数 0.0,然后依据从起点到相关编辑点的总弦长成比例增大参数值。因此,在所示曲线中,第三个点处的参数值 3.8 是从起点到点 2 与从点 2 到点 3 这两条弦的总长度。

    与统一参数化不同,弦长曲线的参数在编辑点之间并非均匀分布,而且编辑点的参数不是整数。

    比较

    每种参数化方法各有优缺点,具体取决于如何使用曲线或曲面。

    类型优点缺点

    弦长

    参数值指示点在曲线上的相对位置。

    曲率分布更好。

    使纹理的拉伸和挤压最小化。

    参数不直观。

    由于交叉结插入,通过弦长曲线构建的曲面可能会更复杂。

    统一

    参数易于估计(例如,1.5 大约位于 1.0 和 2.0 两个编辑点的中间位置)。

    许多情况下,编辑点之间的插值不是很好。

    可能导致渲染过程中出现无法预测的纹理拉伸。

    与次数一样,曲面对于其 U 向和 V 向维度,可以有不同的参数化方法。例如,可以对曲面的 U 向等参线采用次数为 3 的统一参数化方法,而对其 V 向等参线采用次数为 1 的弦长参数化方法。

    为了避免在操纵接合曲面和为其设定纹理时出现问题,请确保接合曲面使用相同的参数化方法(统一或弦长)。如果两个曲面都使用统一参数化方法,请确保二者使用相同的参数范围(0 到 1 或 0 到总跨度数)。

    查看参数

    当选择曲线或曲面上的点时,随着拖动,会在状态行中显示 U 值和 V 值(对于曲面)。

    转载自:(有删减)

    Maya 帮助: NURBS 曲线和曲面参数化

     

     

  • 相关阅读:
    工序打扎流程(自定义按钮移动、群响应。)
    将FAT磁盘转化为NTFS格式。
    VC监视新硬件插入电脑。
    VC读取分析网络文件
    工序打扎流程(箭头实现、刷新画面)
    VC实现自定义按钮响应拖动
    VC中ListCtrl经验总结【转载】
    C++的优先级
    VC画面闪烁及解决方法
    改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景
  • 原文地址:https://www.cnblogs.com/2018shawn/p/11142930.html
Copyright © 2011-2022 走看看