我是CAD開發的初學者&想了解一些關於OpenGL的知識。 我的主要目標是代表圓錐,擺線,外擺線,內擺線,漸開線等。 我可以直接使用trigonometry代表它們,還是需要將這些曲線轉換爲B樣條? 其實我現在正在開發內核&想開發內核,所以我不能顯示上面提到的曲線(如果我不能用圖形表示它們,在內核中不支持這些曲線) 我對OpenGL不太瞭解,所以請原諒我,如果我的問題真的很愚蠢! 我試過搜尋here,但找不到任何有用的東西。曲線在OpenGL中表示
回答
OpenGL可以使用評估器甚至NURBS使用GLU API直接呈現貝塞爾曲線和曲面。有關更多信息,請參閱OpenGL Programming Guide。所以你可以將這些曲線和表面轉換成這種形式。
但我強烈建議您不要使用這些功能,因爲它們已被棄用(從較新的OpenGL版本的核心中刪除),現在很可能在軟件中而不是在硬件中實現。
相反,您應該爲這些曲線和曲面實施您自己的評估程序,以指定的採樣率評估相應的方程並生成一個簡單的頂點數組(可能和索引數組)。這樣你可以保持未來就緒狀態,因爲這些可以使用VBO(在現代OpenGL中渲染某些東西的唯一方式)呈現爲標準線條或三角網格。
而且你甚至可以保持API不可知性,因爲一個普通的頂點數組也可以使用Direct3D或其他方法呈現。這樣你就不會用繪圖調用污染你的CAD內核。它所需要的只是將參數曲線和曲面轉換爲頂點數組(也許是索引)的功能,內核的客戶端/用戶負責使用他喜歡的任何API繪製這些曲線。
如果我沒有錯,OpenGL只適用於平面多邊形。儘管如此,你可以檢查GLUT庫是否有任何方法來繪製上述數字,或谷歌爲這些數字的.obj,並縮放,旋轉和翻譯他們到所需的位置。
您可以輕鬆使用opengl和direct3d來渲染線條,點或多邊形,即不限於多邊形。唯一的問題是你需要將這條線擦除成頂點並告訴圖形api在它們之間畫線。 – edvaldig
這就是.obj的意思。它包含對象的頂點和麪,並且您可以執行縮放,平移和旋轉,因此您可以重複使用單個.obj來構建任意數量的圖形。 –
@JosepRodríguezLópez但是你並不需要一個.obj或任何文件。如果你有一個參數表示,你可以在離散樣本上評估它。這在CAD程序中可能比加載固定模型更好,至少如果曲線/曲面變得更復雜,如NURBS。 –
- 1. 在OpenGL中渲染B樣條曲線
- 2. OpenGL/Java學習曲線
- 3. OpenGL中的厚貝塞爾曲線
- 4. 避免扭曲樣條曲線中的僞像[OpenGL,C++]
- 5. 使用樣條曲線來表示曲線有什麼優勢?
- 6. Backgroud Bell曲線並在Highchart圖表中顯示工具提示
- 7. 使用C++的貝塞爾曲線opengl
- 8. OpenGL - 畫正切和正弦曲線
- 9. 在ggplot2中顯示兩條曲線
- 10. 在曲線中顯示svg元素
- 11. Android的額外線表示的OpenGL GL_LINE
- 12. 如何在OpenGL中繪製2D不規則曲線形狀
- 13. 在opengl中繪製曲線的函數是什麼?
- 14. 在OpenGL ES中繪製半透明曲線
- 15. 如何在OpenGL中繪製曲面法線?
- 16. 在OpenGL/GLSL中繪製貝塞爾曲線的內部陰影
- 17. 表面法線OpenGL
- 18. 在顛簸圖表中使用曲線
- 19. 在OpenGL中繪製複雜曲面
- 20. iOS。 OpenGL的。用漸變填充曲線下面積線
- 21. Python:pyplot - 在曲線上繪製平滑曲線,並在曲線上顯示數據點
- 22. OpenGL共面曲面
- 23. OpenGL中的顯示窗口和線段
- 24. 學習曲線在OpenGL VS的Direct3D +等遊戲組件
- 25. 如何在OpenGL C++上製作曲線頂點
- 26. 在ggvis曲線
- 27. 在OpenGL中繪製線條
- 28. 在iPhone中繪製曲線?
- 29. 在AndEngine中繪製曲線
- 30. 在OpenCV中檢測曲線
非常感謝和+1 –