Graphics 如何正确格式化波阵面的NURBS曲线.OBJ文件格式?
我正在尝试编写一个包含3D曲线(而不是曲面)的程序。我找到了以下链接,该链接描述了如何在.OBJ文件中正确设置曲线和曲面的格式: 没有有理b样条曲线的示例,从文档中我不清楚如何在Graphics 如何正确格式化波阵面的NURBS曲线.OBJ文件格式?,graphics,.obj,wavefront,bspline,nurbs,Graphics,.obj,Wavefront,Bspline,Nurbs,我正在尝试编写一个包含3D曲线(而不是曲面)的程序。我找到了以下链接,该链接描述了如何在.OBJ文件中正确设置曲线和曲面的格式: 没有有理b样条曲线的示例,从文档中我不清楚如何在parm u部分中格式化节点向量。任何帮助都将不胜感激 下面是相关代码的示例。在上面的链接中,有一个有理b样条曲面的描述: v -1.3 -1.0 0.0 v 0.1 -1.0 0.4 7.6 v 1.4 -1.0 0.0 2.3 v -1.4 0.0 0.2 v 0.1 0.0 0.9 0.5
parm u
部分中格式化节点向量。任何帮助都将不胜感激
下面是相关代码的示例。在上面的链接中,有一个有理b样条曲面的描述:
v -1.3 -1.0 0.0
v 0.1 -1.0 0.4 7.6
v 1.4 -1.0 0.0 2.3
v -1.4 0.0 0.2
v 0.1 0.0 0.9 0.5
v 1.3 0.0 0.4 1.5
v -1.4 1.0 0.0 2.3
v 0.1 1.0 0.3 6.1
v 1.1 1.0 0.0 3.3
vt 0.0 0.0
vt 0.5 0.0
vt 1.0 0.0
vt 0.0 0.5
vt 0.5 0.5
vt 1.0 0.5
vt 0.0 1.0
vt 0.5 1.0
vt 1.0 1.0
cstype rat bspline
deg 2 2
surf 0.0 1.0 0.0 1.0 1/1 2/2 3/3 4/4 5/5 6/6 \
7/7 8/8 9/9
parm u 0.0 0.0 0.0 1.0 1.0 1.0
parm v 0.0 0.0 0.0 1.0 1.0 1.0
end
贝塞尔曲线的另一个示例:
v -2.300000 1.950000 0.000000
v -2.200000 0.790000 0.000000
v -2.340000 -1.510000 0.000000
v -1.530000 -1.490000 0.000000
v -0.720000 -1.470000 0.000000
v -0.780000 0.230000 0.000000
v 0.070000 0.250000 0.000000
v 0.920000 0.270000 0.000000
v 0.800000 -1.610000 0.000000
v 1.620000 -1.590000 0.000000
v 2.440000 -1.570000 0.000000
v 2.690000 0.670000 0.000000
v 2.900000 1.980000 0.000000
# 13 vertices
cstype bezier
ctech cparm 1.000000
deg 3
curv 0.000000 4.000000 1 2 3 4 5 6 7 8 9 10 \
11 12 13
parm u 0.000000 1.000000 2.000000 3.000000 \
4.000000
end
# 1 element
有多种方法可以将NURBS曲线的信息存储在wavefront.obj文件中 以下是一个例子:
v -2.300000 1.950000 1.000000 1.000000
v -2.200000 0.790000 2.000000 1.000000
v -2.340000 -1.510000 0.000000 1.000000
v -1.530000 -1.490000 0.000000 1.000000
v -0.720000 -1.470000 0.000000 1.000000
v -0.780000 0.230000 0.000000 1.000000
cstype rat bspline
deg 2
curv 0.00 1.00 1 2 3 4 5 6
parm u 0.00 0.00 0.00 0.25 0.50 0.75 1.00 1.00 1.00
end
现在让我们仔细看看。我们在笛卡尔坐标系中有6个顶点,带有额外的权重坐标(x,y,z,w)。要定义阶数为2的有理b样条曲线(NURBS),必须设置
cstype rat bspline
deg 2
下一个值定义曲线。语法是:
curv [u-start] [u-end] [first-cp] [second-cp] [...]
,第788行:
曲线u0 u1 v1 v2
自由形式几何图形的元素语句
parm u [knot1] [knot2] [...]
指定曲线、其参数范围及其控制顶点。
尽管曲线无法着色或渲染,但其他用户也可以使用它们
高级可视化程序
u0是曲线的起始参数值。这是一个浮动的
点数
u1是曲线的结束参数值。这是一个浮动的
点数
v是控制点的顶点参考号。您可以指定
多个控制点。至少需要两个控制点
为了一条曲线
对于非有理曲线,控制点必须是三维的。暂时
有理曲线,控制点为3D或4D。第四坐标
(重量)如果省略,则默认为1.0
现在我们定义u向量/序列。这些值当然取决于几何体
parm u [knot1] [knot2] [...]
,第1107行:
帕姆u p1 p2 p3
parm v p1 p2 p3
自由形式几何体的主体语句
parm u [knot1] [knot2] [...]
指定全局参数值。对于B样条曲线和曲面,
这将指定节点向量
u是参数值的u方向
v是参数值的v方向
要设置u和v值,请使用单独的命令行
p是全局参数或节点值。您可以指定多个
价值观至少需要两个参数值。参数
值必须单调增加。曲面的类型和阶数
指定所需的值数
我希望这有帮助