如何在 OpenGL 中绘制有界 b 样条曲面?
How to draw bounded b-spline surface in OpenGL?
我想画一个有界的b样条曲面,有26条b样条边界曲线。
我可以在OpenGL中绘制b样条曲面(没有任何边界),但是绘制曲面和拟合边界曲线对我来说太难了。
如有任何建议或想法,我们将不胜感激。
https://drive.google.com/file/d/0ByjklWbi44oBZDhocGdNLWNvUWM/view?usp=sharing
PS: 文件是 .stp 格式的示例
B 样条曲面自然有界。所以当你说没有任何边界的 B 样条曲面时,我认为你是在谈论未修剪的 B 样条曲面,而你想要做的是能够绘制修剪的 B 样条曲面。
绘制曲面通常涉及曲面细分,它将一个连续的曲面变成由许多小三角形组成的三角形网格。因此,您需要执行以下操作:
- 求边界曲线的曲面参数曲线(SP曲线)。 SP 曲线是在 B 样条曲面的参数域上定义的二维曲线。
- 在所有 SP 曲线包围的参数域上细分二维区域。
- 将参数域上的 2D 曲面细分映射回 3D space 以找到 3D 三角形网格。
第 1 步和第 2 步都非常重要。所以,如果您没有任何 3D 库可供使用并且必须自己实现所有内容,这确实是一项艰巨的任务。
我想画一个有界的b样条曲面,有26条b样条边界曲线。
我可以在OpenGL中绘制b样条曲面(没有任何边界),但是绘制曲面和拟合边界曲线对我来说太难了。
如有任何建议或想法,我们将不胜感激。
https://drive.google.com/file/d/0ByjklWbi44oBZDhocGdNLWNvUWM/view?usp=sharing
PS: 文件是 .stp 格式的示例
B 样条曲面自然有界。所以当你说没有任何边界的 B 样条曲面时,我认为你是在谈论未修剪的 B 样条曲面,而你想要做的是能够绘制修剪的 B 样条曲面。
绘制曲面通常涉及曲面细分,它将一个连续的曲面变成由许多小三角形组成的三角形网格。因此,您需要执行以下操作:
- 求边界曲线的曲面参数曲线(SP曲线)。 SP 曲线是在 B 样条曲面的参数域上定义的二维曲线。
- 在所有 SP 曲线包围的参数域上细分二维区域。
- 将参数域上的 2D 曲面细分映射回 3D space 以找到 3D 三角形网格。
第 1 步和第 2 步都非常重要。所以,如果您没有任何 3D 库可供使用并且必须自己实现所有内容,这确实是一项艰巨的任务。