如何在 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 库可供使用并且必须自己实现所有内容,这确实是一项艰巨的任务。