2014-04-09 57 views
0

我知道GPU對渲染三角形非常有效。 GPU不能直接渲染NURBS曲面。從鏈接NURBS in the OpenGL Graphics Pipeline,我們知道。要渲染NURBS,需要進行三角測量。我不知道發生三角測量的位置。它是由CAD建模軟件還是GPU執行的?我想這是由CAD建模軟件完成的。那麼NURBS曲面的三角測量功能是任何CAD建模軟件的核心任務?這項任務是非常複雜的還是幾乎完全由學術研究人員解決?一個NURBS曲面如何渲染?

爲什麼我有這個問題?我發現NURBS曲面在CAD建模軟件中很流暢嗎?但是,如果我首先將NURBS曲面轉換爲三角形網格並通過MeshLab將其打開。在MeshLab中,一些地區並不平坦。我希望知道管道中的哪一部分會導致問題。

回答

0

通常由CAD軟件在CPU上完成。如果您可以發佈您所看到的差異的屏幕截圖,則診斷問題的原因會更容易。它可能只是使用面部法線或其他東西。

+0

謝謝。我不確定NURBS曲線和曲面的三角剖分是否是一項艱鉅的任務。我一直使用3D掃描儀的三角網格。無論您使用哪種工具來獲取一個3D模型,用戶最終都必須將模型轉換爲三角形網格,以供實際應用使用? –

+0

NURBS曲線和表面被轉換成圖形卡期望顯示的形式,即折線和三角形網格。在某些情況下,這種三角測量可能非常複雜(例如,使用修剪曲線/布爾值),但在很多情況下,它非常簡單。您在CAD中看到的圖像以及您在MeshLab中看到的圖像將有助於診斷問題。 – tfinniga

0

存在用於CAD建模軟件之間看到不同的渲染圖像幾個可能的原因您使用和MeshLab:

  • 當CAD軟件呈現NURBS表面,所述三角形的分辨率網格它在內部產生通常將取決於縮放級別。當您使用不同的軟件(甚至是同一CAD軟件中的命令)將NURBS曲面轉換爲三角形網格時,不能保證獲得相同的三角形網格。

  • 當CAD軟件渲染NURBS曲面時,不僅會生成三角形網格,還會根據NURBS曲面計算每個三角形頂點的曲面法線並將其傳遞給渲染引擎。當MeshLab呈現可能不包含任何頂點正常數據的三角形網格時,它將不得不通過其自己的算法(通常從共享相同頂點的所有三角形推斷出)來計算頂點正常數據。所以,不同的頂點正常數據會導致不同的渲染圖像。

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

總而言之,這些只是一些可能的原因。如果你能提供真實的圖像,這將有助於進一步縮小真正的原因。