1

我知道 GPU 对渲染三角形很有效。GPU 无法直接渲染 NURBS 曲面。从OpenGL 图形管道中的链接NURBS 中,我们知道这一点。要渲染 NURBS,需要三角剖分。我不知道三角测量操作发生在哪里。它是由 CAD 建模软件还是 GPU 执行的?我猜这是由 CAD 建模软件完成的。那么 NURBS 曲面的三角测量功能是任何 CAD 建模软件的核心任务吗?这项任务是否非常复杂,或者学术研究人员几乎完全解决了这个问题?

为什么我有这个问题?我发现 NURBS 曲面在 CAD 建模软件中是光滑的?但是,如果我先将 NURBS 曲面转换为三角形网格并通过 MeshLab 打开它。在 MeshLab 中,某些区域并不平滑。我希望知道管道中的哪个部分导致了问题。

4

2 回答 2

1

在您使用的 CAD 建模软件和 MeshLab 之间看到不同的渲染图像有几个可能的原因:

  • 当 CAD 软件渲染 NURBS 曲面时,它在内部生成的三角形网格的分辨率通常取决于缩放级别。当您使用不同的软件(甚至是同一 CAD 软件中的命令)将 NURBS 曲面转换为三角形网格时,无法保证您获得的是相同的三角形网格。

  • CAD软件在渲染NURBS曲面时,不仅会生成一个三角形网格,每个三角形顶点的曲面法线也是从NURBS曲面计算出来的,并传递给渲染引擎。当 MeshLab 渲染可能不包含任何顶点法线数据的三角形网格时,它必须通过自己的算法计算顶点法线数据(通常从共享相同顶点的所有三角形推断)。所以,不同的顶点法线数据会导致不同的渲染图像。

  • 您使用的 CAD 软件和 MeshLab 可以使用完全不同的着色技术。

总而言之,这些只是一些可能的原因。如果你能提供真实的图像,这将有助于进一步缩小真正的原因。

于 2014-07-20T06:08:53.287 回答
0

通常它是由 CAD 软件在 CPU 上完成的。如果您可以发布您看到的差异的屏幕截图,则更容易诊断问题的原因。它可能只是使用面部法线或其他东西。

于 2014-04-16T15:59:54.830 回答