我想知道在OpenGL
中用於渲染複雜曲面的技術,這些復雜曲面不能用數學公式(如汽車)表示。我們是通過結合如此多的基本元素(球體,錐體......)來創造它嗎?或者還有其他一些方法? 我即將開始創建一個應用程序,該應用程序將呈現3D汽車並想知道從哪裏開始。在OpenGL中繪製複雜曲面
5
A
回答
4
您可以使用第三方工具(如Blender)創建可以導出並在OpenGL中渲染的模型。這些模型通常由三角形組成,但是用3D工具繪製,類似於2D的筆和紙。
這裏是關於主題的教程:OpenGL Model Tutorial
2
是,OpenGL的通過拉伸許多基本元件產生的圖像(稱爲「原語」)。
最常用的基元是三角形和四邊形(或「四邊形」,通常實現爲兩個三角形)。 (也有關於繪製線條和點基元的規定,但這些通常不用於繪製逼真的表面。)
複雜曲面近似爲三角形或四邊形網格。通常通過使用深度圖來完成隱藏表面移除:靠近相機繪製的基元以每個像素爲基礎禁止並覆蓋更遠的基元。
爲了減少生成良好圖像所需的曲面細分級別,OpenGL支持在三角形(和四邊形)角之間插入一個(虛構的)切平面。這種便宜的近似稱爲「陰影法線」,實際上消除了多面的外觀,否則該多面的外觀會損壞與適量的基元近似的連續表面。
1
相關問題
- 1. 使用Mathematica繪製複雜曲線
- 2. 在matlab中繪製曲面
- 3. 當功能非常複雜時,如何更快繪製曲面?
- 4. 在複雜平面上繪製圖形
- 5. 如何在OpenGL中繪製有界b樣條曲面?
- 6. 如何在OpenGL中繪製曲面法線?
- 7. 在OpenGL中繪製Steiner的羅馬曲面
- 8. 用重複的數據繪製曲面
- 9. 在D3中繪製複雜的圖形
- 10. 在OpenGL ES而不是Quartz 2D中繪製簡單的曲線,直線和圓形要複雜多少?
- 11. OpenGL共面曲面
- 12. 繪製法線到曲面
- 13. 如何在OpenGL中繪製2D不規則曲線形狀
- 14. 在opengl中繪製曲線的函數是什麼?
- 15. 在OpenGL ES中繪製半透明曲線
- 16. 在OpenGL/GLSL中繪製貝塞爾曲線的內部陰影
- 17. 在OpenGL中繪製線條
- 18. 在opengl中繪製網格
- 19. 在opengl中繪製點
- 20. 在立方體上繪製曲面
- 21. 在iPhone中繪製曲線?
- 22. 在AndEngine中繪製曲線
- 23. 繪製曲線
- 24. 如何用matplotlib將曲面正確繪製爲曲面?
- 25. 覆蓋matplotlib.artist.Artist繪製複雜形狀
- 26. 繪製複雜的I/Q數據
- 27. 如何繪製複雜的多邊形?
- 28. KineticJS - 繪製複雜的形狀
- 29. 如何使用JFreeChart繪製曲面?
- 30. 繪製曲面上的網格?
您可以使用粗略近似表面的多邊形網格。然而,就創造/建模而言,可以通過使用諸如球體,錐體,盒子等基本元素來執行集合操作來完成。這將是被稱爲[構造實體幾何](http:// en。 wikipedia.org/wiki/Constructive_solid_geometry),結果通常會轉換爲三角形網格,以便進行高效的實時渲染。 –
我建議你看看[實體建模](http://en.wikipedia.org/wiki/Solid_modeling),以獲取所有可用方法的更詳細概述。請注意,傳統上,GPU的設計目標是快速繪製三角形,因此通常無論最初如何創建模型,模型都會變得模樣。 –