OpenGL系統設計 4 三維建模(2)

2021-05-09 15:18:56 字數 1839 閱讀 4201

我們再來利用三角形、四邊形、多邊形製作乙個簡單的小屋,看起來更加逼真一些。小屋由5個四邊形和兩個五邊形組成。牆面的顏色我們可以在畫筆中找到後,得到其rgb值後再使用glcolor3ub來設定。

void drawhouse()

圖4-2複雜三維模型

上面在繪製立方體時要乙個面乙個面地繪製,顯得很麻煩。實際上opengl的圖形函式也只有

點、線、三角形、四邊形、多邊形等簡單圖形,如果要繪製乙個圓球,還不是很容易的事。為了方便程式設計師,opengl的輔助庫提供了一些繪製基本三維圖形的函式,例如立方體只需要呼叫輔助函式auxwirecude或auxsolidcube即可。

雖然使用輔助函式繪圖方便一些,但是卻失去了靈活性。使用auxsolidcube也很難實現六個面都是不同的混合色彩的效果。所以是否使用輔助函式,應該視程式的需要而定。

輔助庫提供的三維圖形有兩種形式,一種是網格狀,也成為線框模型,另一種是實體。函式名稱分別是auxwire*和auxsolid*,具體如表4-1所示:

表4-1opengl輔助庫模型函式

三維圖形函式

球體void auxwiresphere(gldouble radius)

void auxsolidsphere(gldouble radius)

立方體void auxwirecube(gldouble size)

void auxsolidcube(gldouble size)

長方體void auxwirebox(gldouble width,gldouble height,gldouble depth)

void auxsolidbox(gldouble width,gldouble height,gldouble depth) 圓環

void auxwiretorus(gldouble innerradius,gldouble outerradius)

void auxsolidtorus(gldouble innerradius,gldouble outerradius)

圓柱void auxwirecylinder(gldouble radius,gldouble height)

void auxsolidcylinder(gldouble radius,gldouble height)

圓錐void auxwirecone(gldouble radius,gldouble height)

void auxsolidcone(gldouble radius,gldouble height)

四面體void auxwiretetrahedron(gldouble radius)

void auxsolidtetrahedron(gldouble radius)

八面體void auxwireoctahedron(gldouble radius)

void auxsolidoctahedron(gldouble radius)

十二面體

void auxwiredodecahedron(gldouble radius)

void auxsoliddodecahedron(gldouble radius)

二十面體

void auxwireicosahedron(gldouble radius)

void auxsolidicosahedron(gldouble radius)

茶壺void auxwireteapot(gldouble size)

void aucsolidteapot(gldouble size)

在下面的程式中

,利用輔助函式繪製了立方體、圓球、十二面體、圓環、茶壺。

void glmain()

程式執行結果如圖4-3所示。

opengl三維程式設計

void gluperspective gldouble fovy,gldouble aspect,gldouble znear,gldouble zfar 引數fovy定義視野在x z平面的角度取值是 0.0,180.0 引數aspect是投影平面寬度與高度的比率 引數znear和zfar分別是近...

opengl三維觀察

1.相機 產生目標場景檢視的變換過程類似於用照相機進行拍照。用照相機進行拍照的步驟大致如下 把照相機固定在三腳架上,並讓它對準場景 檢視變換 對場景進行安排,使各個物體在 中的位置是我們所希望的 模型變換 選擇照相機鏡頭,並調整放大倍數 投影變換 確定最終 的大小 視口變換 完成這些步驟之後,就可以...

無人機三維建模 4 建模軟體

參考1 如何用大疆無人機三維建模之最簡單辦法 一 拍攝 二 在altizure或者dronedeploy上面註冊免費賬號上傳 等待雲端自動生成3d模型。建模對電腦要求很高,費時費力,還不一定能成,直接免費雲端建模效率超高,還不用浪費電費,推薦大家使用。其實我剛才看了個 並茂的3d建模帖子,覺得其實沒...