【问题标题】:How to draw bounded b-spline surface in OpenGL?如何在OpenGL中绘制有界b样条曲面?
【发布时间】:2015-09-24 01:42:58
【问题描述】:

我想用 26 条 b 样条边界曲线绘制一个有界 b 样条曲面。

我可以在 OpenGL 中绘制 b 样条曲面(没有任何边界),但是绘制曲面和拟合边界曲线对我来说太难了。

欢迎提出任何建议或想法。

https://drive.google.com/file/d/0ByjklWbi44oBZDhocGdNLWNvUWM/view?usp=sharing

PS:文件是.stp格式的样本

【问题讨论】:

    标签: bspline


    【解决方案1】:

    B 样条曲面是自然有界的。因此,当您说没有任何边界的 B 样条曲面时,我认为您是在谈论未修剪的 B 样条曲面,而您要做的是能够绘制修剪后的 B 样条曲面。

    绘制曲面通常涉及曲面细分,它将连续曲面变成由许多小三角形组成的三角形网格。因此,您需要执行以下操作:

    • 找到边界曲线的曲面参数曲线(SP曲线)。 SP 曲线是在 B 样条曲面的参数域上定义的二维曲线。
    • 在由所有 SP 曲线包围的参数域上细分二维区域。
    • 将参数域上的 2D 细分映射回 3D 空间以找到 3D 三角形网格。

    第 1 步和第 2 步都很重要。因此,如果您没有任何 3D 库可供您使用并且必须自己实现所有内容,那么这确实是一项艰巨的任务。

    【讨论】:

    • 谢谢你的回答~~对我帮助很大。顺便问一下,你有推荐的 3D 库吗?我希望这个库是开源的,并且是 C++ 的,我很高兴追踪源代码。
    • 对不起。我不熟悉开源 3D 库。
    • 相当老的问题,但我建议您看看 OPENCASCADE (www.opencascade.com) - 它功能强大且在工业中广泛使用。如果你想快速开始,那么你可以在这里查看它的 python 绑定:pythonocc.org 顺便说一下,它支持 STEP 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 2017-03-04
    • 2020-06-04
    相关资源
    最近更新 更多