【摘 要】本系統(tǒng)介紹了OpenGL語言的面向過程性特點,以及在面向?qū)ο缶幊趟枷胫笇拢柚鶸ML語言,詳細闡述了光源與材質(zhì)的實體類與業(yè)務(wù)類的封裝,實現(xiàn)了光照效果功能模塊的開發(fā),并利用數(shù)據(jù)庫實現(xiàn)光照效果狀態(tài)的保存,最后實現(xiàn)了光照渲染下的三維人體模型。
【關(guān)鍵詞】OpenGL 光照技術(shù) 服裝虛擬展示
一、光照的面向?qū)ο笤O(shè)計(OOD)
本系統(tǒng)對光源與材質(zhì)的各個屬性進行了實體類的封裝,對光源與材質(zhì)的相關(guān)OpenGL函數(shù)進行了業(yè)務(wù)類的封裝。面向?qū)ο蟮念惖脑O(shè)計,可以利用類的屬性進行方便的值的傳遞和調(diào)用;利用其包裝的功能函數(shù),方便的實現(xiàn)函數(shù)調(diào)用。
二、光照效果狀態(tài)的保存
在虛擬服裝展示系統(tǒng)中,我們面臨這樣一個問題,有時候我們需要保存當前的光照效果的狀態(tài),以備需要時調(diào)用。這時僅僅利用OpenGL就不能解決問題,因為OpenGL的面向過程性特點,它不確切說明結(jié)果應(yīng)該是怎樣。本系統(tǒng)在開發(fā)時,光照效果的實體類光照對象的屬性值用數(shù)據(jù)庫保存或讀取功能實現(xiàn),達到保存光照效果狀態(tài)的目的。
三、光照效果實現(xiàn)
其中,CLight、CMaterial兩個實體類,CSetLight、CSetMaterial兩個業(yè)務(wù)類的屬性和方法,光照效果完成的UML活動圖,如圖2所示。通過以上面向?qū)ο蠓治雠c設(shè)計,最終實現(xiàn)了光照效果。在本系統(tǒng)中,利用光照類的對象與材質(zhì)類的對象,生成了上、下、左、右、前、后稍偏上、后稍偏下共8個光源對象以及具體的材質(zhì)對象,對每個光源與材質(zhì)的任意一個屬性,都可以進行交互控制。并設(shè)計了基于對話框的雙視圖界面,方便交互控制與演示光照效果。
程序中實現(xiàn)的不同光照效果下的人體模型如圖
四、結(jié)論
本系統(tǒng)利用OpenGL函數(shù)庫,利用面向?qū)ο缶幊趟枷?,開發(fā)了光源與材質(zhì)實體類與業(yè)務(wù)類,實現(xiàn)了光照效果的實現(xiàn)。并提出利用數(shù)據(jù)庫實現(xiàn)某時刻的光照效果狀態(tài)的保存與讀取。
這一光照效果實現(xiàn)實現(xiàn)方法,輕松實現(xiàn)對放入場景中的三維物體進行光照渲染。不僅僅應(yīng)用于服裝虛擬展示中,對其他三維虛擬現(xiàn)實系統(tǒng),游戲系統(tǒng)的開發(fā)也有很好的借鑒作用。
參考文獻:
[1]喬林,費廣正,林杜等.OpenGL程序設(shè)計[M].北京:清華大學出版社,2000.
[2]王玉華,楊克儉,王玲等.基于OpenGL的光照處理技術(shù)繪制真實感圖形[J].現(xiàn)代計算機,2002,(9):11-14
[3]房曉溪.游戲引擎教程[M].北京:中國水利水電出版社,2008.56-101
[4]吳志明,王鵬.基于OpenGL的三維服裝CAD中光照技術(shù)的實現(xiàn)[J].北京服裝學院學報,2005,25(4):25-29 63
[5]Donald Hern,M.Pauline Baker.計算機圖形學[M].第2版.北京:電子工業(yè)出版社,2002.