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. opengl obj模型加載
- 2. 並行構建OpenGL模型?
- 3. 導入三維模型opengl
- 4. 模型lookAt矩陣 - C++,OpenGL
- 5. iPhone OpenGl:導入3D模型
- 6. 3D CAD模型用OpenGL-ES
- 7. OpenGL 3D模型紋理
- 8. opengl在模型上的選擇區域
- 9. 在OpenGl中創建一個模型類
- 10. 在OpenGL程序中加載3D模型
- 11. 在OpenGL中加載3d模型
- 12. OpenGL(ES)半透明模型內的模型
- 13. OpenGL ES2.0模型視圖矩陣2D
- 14. 與模型紋理COORDS問題的OpenGL
- 15. 從Maya導入模型到OpenGL與c#
- 16. OpenGL模型加載程序問題
- 17. 模型放慢了遊戲速度 - opengl
- 18. 模型的全球位置OpenGL
- 19. OpenGL新手關於模型的問題
- 20. OpenGL 3D中的光滑模型移動
- 21. 出口OpenGL的模型作爲.OBJ
- 22. OpenGL ES2.0 flamework(包含加載模型)
- 23. OpenGL窗口切斷模型視圖
- 24. OpenGL模型,視圖,投影矩陣
- 25. OpenGL模型相機預覽覆蓋
- 26. 3軸OpenGL ES旋轉模型
- 27. 將模型導入OpenGL項目
- 28. Android OpenGL ES 2隨機模型變形
- 29. OpenGL加載OBJ模型,紋理失真
- 30. OpenGL ES模型加載器示例