1
A
回答
3
我假設你要生成幾何而不是「雕刻它」。
您需要做的就是像在數學示例中一樣生成幾何圖形,並將其存儲在vertex buffer objects(VBO)中。有多種方法可以做到這一點,但通常您需要將頂點信息(位置,常規,紋理座標,如果有的話)存儲在一個緩衝區中,以及這些頂點在另一個(稱爲索引數組)中被分組爲面部的方式。
然後,您可以綁定這些緩衝區並通過一次調用glDrawElements()
來繪製它們。
要小心,面的頂點都是在相同的順序(逆時針或順時針)和繞組順序正確指定給OpenGL,否則你會得到你的殼!
在OpenGL 1.4及更高版本中支持VBOs。在極少數情況下,您的目標平臺不支持(首先更新您的驅動程序!),您可以使用Vertex Arrays。他們做的事情幾乎是一樣的,但是他們在每一幀都通過總線發送時速度較慢。
-1
儘管在程序上建模對象(即在座標中以數字形式生成座標)對於學習目的可能沒有問題,但它絕對不是您想要做的事情,因爲如果您的任何東西比幾個三角形更復雜,它變得非常不切實際或者一個cyllinder)。有些人認爲程序一代是一門藝術,但是你需要大量的練習才能用這種方法取得好看的(更不用說現實的)結果。
如果你想顯示一個更復雜,逼真的模型,採取的辦法是:
- 創建的建模工具模型(如自由和強大的
Blender
) - 將它保存到一個文件在給定的格式,
- 在你的程序中,從文件加載對象到存儲器(要麼您的RAM使用頂點數組或您GPU存儲器以顯示直接使用頂點緩存對象)並顯示它。
通用格式(雖然老不方便的一個)是.obj
(波前OBJ),攪拌機能夠保存到這一點,你很可能給谷歌一個OpenGL OBJ裝載機(或者你可以滾你自己 - untrivial,但仍然很容易)。
另一種方法是爲Blender創建一個導出腳本(非常簡單,如果你知道Python)並將該模型保存爲包含頂點等的簡單二進制文件;然後很容易地將它加載到應用程序代碼中。
相關問題
- 1. 模型lookAt矩陣 - C++,OpenGL
- 2. opengl obj模型加載
- 3. 3D CAD模型用OpenGL-ES
- 4. 並行構建OpenGL模型?
- 5. iPhone OpenGl:導入3D模型
- 6. OpenGL 3D模型紋理
- 7. 在OpenGl中創建一個模型類
- 8. opengl在模型上的選擇區域
- 9. OpenGL(ES)半透明模型內的模型
- 10. Android OpenGL ES 2隨機模型變形
- 11. 模型的全球位置OpenGL
- 12. 出口OpenGL的模型作爲.OBJ
- 13. OpenGL加載OBJ模型,紋理失真
- 14. OpenGL模型相機預覽覆蓋
- 15. 從Maya導入模型到OpenGL與c#
- 16. OpenGL 3D中的光滑模型移動
- 17. 將模型導入OpenGL項目
- 18. OpenGL ES2.0 flamework(包含加載模型)
- 19. 模板緩衝區在OpenGL
- 20. 提示在OpenGL模擬
- 21. 用C++在openGl中啓動不同模型的問題
- 22. 如何加載模型並在OpenGL中重複使用
- 23. 在OpenGL應用程序中打開3D模型的格式?
- 24. 在iOS中的openGL 2中旋轉模型
- 25. 在OpenGl和OpenFrameworks中製作3D模型透明
- 26. OpenGL:模型在python中加載時看起來不正確
- 27. 分組模型在iOS中緩慢渲染(OpenGL ES 2.0)
- 28. OPENGL/ES 3D模型縮放無法在UIScrollView中正確平移
- 29. 如何在iPhone上繪製3D模型輪廓? (OpenGL ES)
- 30. 在OpenGL中無法繪製我的模型兩次?