專利名稱:一種三維游戲引擎系統(tǒng)的制作方法
—種三維游戲引擎系統(tǒng)本發(fā)明涉及一種三維游戲引擎系統(tǒng)。隨著計(jì)算機(jī)硬件、三維圖形技術(shù)、虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,逼真的三維視覺世界正在逐步走入人們的生活,它給人們呈現(xiàn)的夢幻般的境界,正在引起人們的廣泛關(guān)注,建立三維視圖體系并進(jìn)行推廣和發(fā)展已經(jīng)成為當(dāng)前技術(shù)的熱門領(lǐng)域。三維游戲是目前市場開發(fā)的重點(diǎn)領(lǐng)域,三維游戲引擎是三維游戲設(shè)計(jì)的基礎(chǔ),三維游戲側(cè)重交互和三維動(dòng)畫的實(shí)時(shí)性,因此三維游戲引擎系統(tǒng)結(jié)構(gòu)的組織方法成為技術(shù)的核心問題,好的系統(tǒng)組織方法不僅有利于
內(nèi)存的管理,而且能夠加速場景繪制,同時(shí)還方便實(shí)時(shí)交互的實(shí)現(xiàn)。特別是當(dāng)場景越來越復(fù)雜時(shí),系統(tǒng)組織方法就顯得更加重要。目前雖然有一些比較成熟的三維游戲引擎可以滿足大部分用戶的需求,比如Virtools軟件,但是如果采用這些游戲引擎開發(fā)三維游戲進(jìn)行商業(yè)運(yùn)營時(shí),需要交納較高的版權(quán)費(fèi),同時(shí)軟件本身功能強(qiáng)大,對于開發(fā)較小規(guī)模三維游戲時(shí)不需要涉及如此復(fù)雜的功能,卻占用系統(tǒng)資源高且影響運(yùn)算速度,又需要承擔(dān)較多的使用費(fèi),從成本角度和使用便利性角度考慮,自主開發(fā)三維游戲引擎系統(tǒng)就成為必要,本發(fā)明正是基于此出發(fā)點(diǎn),自主設(shè)計(jì)了一套三維游戲引擎的組織結(jié)構(gòu),既滿足上層用戶需求,同時(shí)降低了成本和軟件資源開銷。本發(fā)明克服了上述技術(shù)的不足,提供了一套三維游戲引擎系統(tǒng)結(jié)構(gòu),將三維引擎與窗口設(shè)計(jì)通過場景管理器的中間層進(jìn)行功能關(guān)聯(lián),實(shí)現(xiàn)界面和渲染功能的關(guān)聯(lián),完成三維游戲引擎系統(tǒng)結(jié)構(gòu)的設(shè)計(jì),并且系統(tǒng)各層設(shè)計(jì)模塊分別進(jìn)行獨(dú)立設(shè)計(jì)和封裝,具有較好的擴(kuò)展性,便于后期的維護(hù)和開發(fā)擴(kuò)展,降低軟件使用的成本。為實(shí)現(xiàn)上述目的,本發(fā)明采用了下列技術(shù)方案一種三維游戲引擎系統(tǒng),包括有用于顯示三維模型場景視圖窗口、提供人機(jī)交互操作的上層設(shè)計(jì)界面1,劃分封裝了三維引擎底層各子算法、實(shí)現(xiàn)三維游戲引擎底層渲染的引擎功能模塊2,以及作為中間控制層用于實(shí)現(xiàn)上層設(shè)計(jì)界面I與引擎功能模塊2之間界面和底層渲染的信息交互的場景管理器3,所述上層設(shè)計(jì)界面I包括有用于接收并隨時(shí)更新底層渲染信息、實(shí)時(shí)再現(xiàn)用戶操作所產(chǎn)生的三維模型場景視圖窗口效果的場景視圖窗口單元11,用于顯示場景內(nèi)所有三維模型節(jié)點(diǎn)層級關(guān)系和節(jié)點(diǎn)屬性的節(jié)點(diǎn)層次窗口單元12,以及用于列出與引擎功能模塊2底層渲染各子功能對應(yīng)的引擎子功能目錄窗口單元13,所述場景管理器3包括有與上層設(shè)計(jì)界面I連接的用于完成上層設(shè)計(jì)界面I渲染窗口注冊的窗口場景管理單元31,用于把上層設(shè)計(jì)界面I接收到的用戶操作映射為基本命令序列后提交給底層引擎功能模塊2的命令序列管理單元32,以及用于上層設(shè)計(jì)界面I與引擎功能模塊2進(jìn)行信息交互、并且提供上層設(shè)計(jì)界面I中場景視圖窗口單元11與節(jié)點(diǎn)層次窗口單元12之間的雙向拾取功能、以及記錄場景視圖窗口單元11中的三維模型的執(zhí)行操作記錄和狀態(tài)以提供給窗口場景管理單元31、命令序列管理單元32執(zhí)行操作的重復(fù)和撤銷功能的拾取及操作模式管理單元33,所述窗口場景管理單元31、命令序列管理單元32分別與拾取及操作模式管理單元33連接。所述上層設(shè)計(jì)界面I還包括有用于方便用戶使用界面功能的命令控制鍵單元14,所述命令控制鍵模塊14包括菜單欄子單元141、操作快捷鍵子單元142、動(dòng)畫預(yù)覽鍵子單元143。所述引擎功能模塊2包括有實(shí)現(xiàn)底層渲染功能的幾何體繪制單元201、3D文件讀取單元202、光源節(jié)點(diǎn)添加單元203、材質(zhì)功能添加單元204、渲染功能添加單元205、粒子系統(tǒng)節(jié)點(diǎn)單元206、矩陣變換功能單元207、攝像機(jī)漫游單元208、拾取交互功能單元209、模型動(dòng)畫功能單元210、碰撞檢測單元211、以及腳本設(shè)計(jì)單元212。本發(fā)明的有益效果如下 I、將三維引擎與窗口設(shè)計(jì)通過中間層的場景管理器進(jìn)行功能關(guān)聯(lián),實(shí)現(xiàn)界面和渲染功能的關(guān)聯(lián),完成三維游戲引擎系統(tǒng)結(jié)構(gòu)的設(shè)計(jì),方便用戶設(shè)計(jì)使用。2、系統(tǒng)各層設(shè)計(jì)模塊分別進(jìn)行獨(dú)立設(shè)計(jì)和封裝,具有較好的擴(kuò)展性。3、將三維游戲引擎基本子算法進(jìn)行劃分封裝,實(shí)現(xiàn)低成本高效執(zhí)行相應(yīng)功能的三維游戲引擎系統(tǒng)。圖I為本發(fā)明三維游戲引擎系統(tǒng)結(jié)構(gòu)示意圖。圖2為本發(fā)明上層設(shè)計(jì)界面結(jié)構(gòu)示意圖。圖3為本發(fā)明引擎功能模塊結(jié)構(gòu)示意圖。下面結(jié)合附圖
與本發(fā)明的實(shí)施方式作進(jìn)一步詳細(xì)的描述三維游戲引擎系統(tǒng)采用上層界面設(shè)計(jì)加底層三維游戲引擎功能的方式進(jìn)行實(shí)現(xiàn),上層界面設(shè)計(jì)與底層三維游戲引擎功能通過場景管理層組織的接口進(jìn)行通信。界面主要設(shè)計(jì)實(shí)現(xiàn)人機(jī)交互所需的直接操作窗口,底層三維游戲引擎功能包括劃分封裝好的三維游戲引擎基本子算法,主要實(shí)現(xiàn)三維游戲引擎的主要功能,兩者通過場景管理層的接口,實(shí)現(xiàn)界面和底層渲染的信息交互,場景管理層作為中間控制層。如圖I所示,一種三維游戲引擎系統(tǒng),包括上層設(shè)計(jì)界面I、引擎功能模塊2和場景管理器3,方便用戶設(shè)計(jì)使用。如圖2所示,上層設(shè)計(jì)界面I用于用戶進(jìn)行三維游戲編輯的交互界面,應(yīng)用此渲染界面,用戶可以進(jìn)行三維角色的渲染和游戲設(shè)計(jì)并導(dǎo)出最終文件,是整個(gè)引擎界面的窗口顯示部分,用戶對窗口的各種操作、配置、點(diǎn)擊等事件,通過場景管理器3轉(zhuǎn)化為實(shí)際命令、操作等,并傳遞到三維引擎的下層。上層設(shè)計(jì)界面I的界面主體部分包括場景視圖窗口單元11、節(jié)點(diǎn)層次窗口單元12和引擎子功能目錄窗口單元13,另外,界面設(shè)計(jì)中添加了相應(yīng)的命令控制鍵單元14以方便界面功能的快捷使用,所述命令控制鍵模塊14包括有菜單欄子單元141、操作快捷鍵子單元142、動(dòng)畫預(yù)覽鍵子單元143。如上所述場景視圖窗口單元11是整個(gè)場景顯示給用戶的視圖窗口,窗口功能需要實(shí)時(shí)再現(xiàn)用戶操作所產(chǎn)生的3D效果,主要用來接收并隨時(shí)更新底層渲染產(chǎn)生的視圖信
肩、O如上所述節(jié)點(diǎn)層次窗口單元12用來顯示場景內(nèi)三維模型所有的節(jié)點(diǎn)層級關(guān)系,同時(shí)也列出場景內(nèi)節(jié)點(diǎn)的屬性。對于用戶來講,場景中所有三維模型都是用節(jié)點(diǎn)的結(jié)構(gòu)進(jìn)行組織的,所以不同的節(jié)點(diǎn)又具有不同的屬性,節(jié)點(diǎn)與節(jié)點(diǎn)之間也會(huì)存在一定的關(guān)系,所有的節(jié)點(diǎn)樹結(jié)構(gòu)及屬性都通過節(jié)點(diǎn)層次窗口模塊12展示出來,方便用戶對三維模型各節(jié)點(diǎn)的了解。如上所述引擎子功能目錄窗口單元13主要依據(jù)三維游戲引擎所具有的主要功能
進(jìn)行劃分,方便用戶對具體功能的界面化操作和調(diào)用,引擎子功能目錄窗口單元13所列出的功能與底層引擎功能模塊2的各渲染功能單元對應(yīng)。如圖3所示,引擎功能模塊2是對三維引擎各子算法的功能封裝,以提供標(biāo)準(zhǔn)化的操作,同時(shí)提供必要的與上面各層次的交互接口。本發(fā)明結(jié)合三維游戲基本算法的功能進(jìn)行分類,主要以光照、渲染、材質(zhì)、拾取、矩陣變換、碰撞檢測、腳本設(shè)計(jì)等幾個(gè)大的方面進(jìn)行功能劃分。引擎功能模塊2包括有幾何體繪制單元201、3D文件讀取單元202、光源節(jié)點(diǎn)添加單元203、材質(zhì)功能添加單元204、渲染功能添加單元205、粒子系統(tǒng)節(jié)點(diǎn)單元206、矩陣變換功能單元207、攝像機(jī)漫游單元208、拾取交互功能單元209、模型動(dòng)畫功能單元210、碰撞檢測單元211、腳本設(shè)計(jì)單元212。上述渲染單元中的幾何體繪制、3D文件設(shè)計(jì)、光源節(jié)點(diǎn)添加、材質(zhì)功能添加、渲染功能添加、粒子系統(tǒng)節(jié)點(diǎn)都屬于三維游戲引擎的靜態(tài)節(jié)點(diǎn)功能,用戶操作引擎子功能目錄窗口單元13,所需功能通過讀取引擎功能模塊2相應(yīng)的功能封裝單元,然后通過修改功能屬性使相應(yīng)功能實(shí)時(shí)添加到場景節(jié)點(diǎn)內(nèi),記錄在節(jié)點(diǎn)層次窗口單元12中。而矩陣變換功能、攝像機(jī)漫游、拾取交互功能、模型動(dòng)畫功能、碰撞檢測、腳本設(shè)計(jì)屬于場景動(dòng)態(tài)功能,需要實(shí)時(shí)回調(diào)場景視圖窗口單元11內(nèi)三維模型節(jié)點(diǎn)的坐標(biāo)數(shù)據(jù)并完成場景視圖窗口單元11內(nèi)節(jié)點(diǎn)坐標(biāo)的實(shí)時(shí)動(dòng)態(tài)更新。如上所述的上層設(shè)計(jì)界面I是通過場景管理器3來調(diào)用引擎功能模塊2的靜態(tài)節(jié)點(diǎn)功能和場景動(dòng)態(tài)功能。如圖I所示,所述的場景管理器3負(fù)責(zé)將上層設(shè)計(jì)界面I接收到的用戶操作映射為基本命令序列,提交給底層的引擎功能模塊2,降低界面層與引擎層的耦合度,使得用戶只針對上層設(shè)計(jì)界面I進(jìn)行操作,并最終完成各種功能,實(shí)現(xiàn)高效率工作,同時(shí),場景管理器3中的命令序列管理單元32記錄命令序列,以提供執(zhí)行操作的重復(fù)和撤銷功能。如圖I所示,所述場景管理器3包括有與上層設(shè)計(jì)界面I連接的用于完成上層設(shè)計(jì)界面I渲染窗口注冊的窗口場景管理單元31,用于把上層設(shè)計(jì)界面I接收到的用戶操作映射為基本命令序列后提交給底層引擎功能模塊2的命令序列管理單元32,以及用于上層設(shè)計(jì)界面I與引擎功能模塊2進(jìn)行信息交互、并且提供上層設(shè)計(jì)界面I中場景視圖窗口單元11與節(jié)點(diǎn)層次窗口單元12之間的雙向拾取功能、以及記錄場景視圖窗口單元11中的三維模型的執(zhí)行操作記錄和狀態(tài)以提供給窗口場景管理單元31、命令序列管理單元32執(zhí)行操作的重復(fù)和撤銷功能的拾取及操作模式管理單元33,所述窗口場景管理單元31、命令序列管理單元32分別與拾取及操作模式管理單元33連接。如上所述的窗口場景管理單元31用來提供上層設(shè)計(jì)界面I的場景信息,同時(shí)用戶可以通過上層設(shè)計(jì)界面I對窗口場景管理單元31、命令序列管理單元32、拾取及操作模式管理單元33進(jìn)行操作,命令序列管理單元32調(diào)用底層引擎功能模塊2,并通過拾取及操作模式管理單元33返回信息到上層設(shè)計(jì)界面I的窗口,實(shí)現(xiàn)上層操作與底層游戲引擎功能的關(guān)聯(lián),界面和渲染功能互相調(diào)用。本發(fā)明所設(shè)計(jì)的三維游戲引擎系統(tǒng)結(jié)構(gòu)是基于一套可擴(kuò)展的場景組織結(jié)構(gòu),整個(gè)場景的組織方法都采用開放式設(shè)計(jì)方法,主要體現(xiàn)在上層設(shè)計(jì)界面I的獨(dú)立性與可擴(kuò)展性,系統(tǒng)設(shè)計(jì)可以借助MFC進(jìn)行開發(fā),開發(fā)界面在Windows操作系統(tǒng)下有較好的兼容性,如果對于Linux等別的操作系統(tǒng),本界面設(shè)計(jì)方法可以采用Java語言實(shí)現(xiàn),移植到相應(yīng)操作系統(tǒng)上而不需要修改場景管理器3以 及引擎功能模塊2的架構(gòu)。三維游戲引擎具體的引擎功能模塊2的獨(dú)立性與可擴(kuò)展性,系統(tǒng)可以采用OpenGL底層算法進(jìn)行開發(fā)和功能封裝,對于不同的群體,三維引擎功能可以進(jìn)行擴(kuò)展封裝,同時(shí)對于整個(gè)底層引擎功能而言,同樣可以保持上層設(shè)計(jì)界面I不改變,而將底層引擎功能模塊2使用更高級的三維游戲引擎替代,各層兼容性好,也易于擴(kuò)展。場景管理器3的獨(dú)立性與可擴(kuò)展性,場景管理器3是本發(fā)明結(jié)合設(shè)計(jì)的需要自行定義的一套規(guī)范的接口模式,并力求做到平臺(tái)無關(guān)性,既不依賴上層窗口框架的實(shí)現(xiàn)機(jī)制如MFC、QT、WxWidget等同時(shí)也不依賴底層的游戲引擎如OpenGL、OSG、OGRE等。從上述技術(shù)方案可以看出,本發(fā)明三維游戲引擎系統(tǒng)具有下列有益效果I、將三維引擎與窗口設(shè)計(jì)通過中間場景管理器進(jìn)行功能關(guān)聯(lián),完成三維游戲引擎系統(tǒng)的組織設(shè)計(jì)。2、系統(tǒng)各設(shè)計(jì)模塊分別進(jìn)行獨(dú)立設(shè)計(jì)和封裝,具有較好的擴(kuò)展性和平臺(tái)無關(guān)性。3、將三維游戲引擎龐大的功能體系進(jìn)行劃分封裝,實(shí)現(xiàn)低成本高效執(zhí)行相應(yīng)功能的三維游戲引擎系統(tǒng)。
權(quán)利要求
1.一種三維游戲引擎系統(tǒng),其特征在于包括有用于顯示三維模型場景視圖窗口、提供人機(jī)交互操作的上層設(shè)計(jì)界面(I ),劃分封裝了三維引擎底層各子算法、實(shí)現(xiàn)三維游戲引擎底層渲染的引擎功能模塊(2),以及作為中間控制層用于實(shí)現(xiàn)上層設(shè)計(jì)界面(I)與引擎功能模塊(2)之間界面和底層渲染的信息交互的場景管理器(3),所述上層設(shè)計(jì)界面(I)包括有用于接收并隨時(shí)更新底層渲染信息、實(shí)時(shí)再現(xiàn)用戶操作所產(chǎn)生的三維模型場景視圖窗口效果的場景視圖窗口單元(11),用于顯示場景內(nèi)所有三維模型節(jié)點(diǎn)層級關(guān)系和節(jié)點(diǎn)屬性的節(jié)點(diǎn)層次窗口單元(12),以及用于列出與引擎功能模塊(2)底層渲染各子功能對應(yīng)的引擎子功能目錄窗口單元(13),所述場景管理器(3)包括有與上層設(shè)計(jì)界面(I)連接的用于完成上層設(shè)計(jì)界面(I)渲染窗口注冊的窗口場景管理單元(31),用于把上層設(shè)計(jì)界面(I)接收到的用戶操作映射為基本命令序列后提交給底層引擎功能模塊(2)的命令序列管理單元(32),以及用于上層設(shè)計(jì)界面(I)與引擎功能模塊(2)進(jìn)行信息交互、并且提供上層設(shè)計(jì)界面(I)中場景視圖窗口單元(11)與節(jié)點(diǎn)層次窗口單元(12)之間的雙向拾取功能、以及記錄場景視圖窗口單元(11)中的三維模型的執(zhí)行操作記錄和狀態(tài)以提供給窗口場景管理單元(31)、命令序列管理單元(32)執(zhí)行操作的重復(fù)和撤銷功能的拾取及操作模式管理單元(33),所述窗口場景管理單元(31)、命令序列管理單元(32)分別與拾取及操作模式管理單元(33)連接。
2.根據(jù)權(quán)利要求I所述的一種三維游戲引擎系統(tǒng),其特征在于所述上層設(shè)計(jì)界面(I)還包括有用于方便用戶使用界面功能的命令控制鍵單元(14),所述命令控制鍵模塊(14)包括菜單欄子單元(141 )、操作快捷鍵子單元(142)、動(dòng)畫預(yù)覽鍵子單元(143)。
3.根據(jù)權(quán)利要求I所述的一種三維游戲引擎系統(tǒng),其特征在于所述引擎功能模塊(2)包括有實(shí)現(xiàn)底層渲染功能的幾何體繪制單元(201)、3D文件讀取單元(202)、光源節(jié)點(diǎn)添加單元(203)、材質(zhì)功能添加單元(204)、渲染功能添加單元(205)、粒子系統(tǒng)節(jié)點(diǎn)單元(206)、矩陣變換功能單元(207)、攝像機(jī)漫游單元(208)、拾取交互功能單元(209)、模型動(dòng)畫功能單元(210)、碰撞檢測單元(211)、以及腳本設(shè)計(jì)單元(212)。
全文摘要
本發(fā)明公開了一種三維游戲引擎系統(tǒng),其特征在于包括有用于顯示三維模型場景視圖窗口、提供人機(jī)交互操作的上層設(shè)計(jì)界面,劃分封裝了三維引擎底層各子算法、實(shí)現(xiàn)三維游戲引擎底層渲染的引擎功能模塊,以及作為中間控制層用于實(shí)現(xiàn)上層設(shè)計(jì)界面與引擎功能模塊之間界面和底層渲染的信息交互的場景管理器。本發(fā)明的目的是提供一種通過對系統(tǒng)各設(shè)計(jì)模塊分別進(jìn)行獨(dú)立設(shè)計(jì)和封裝,擴(kuò)展性好,將三維引擎與窗口設(shè)計(jì)通過中間場場景管理器進(jìn)行功能關(guān)聯(lián),并將三維游戲引擎龐大的功能體系進(jìn)行劃分封裝,實(shí)現(xiàn)低成本高效執(zhí)行相應(yīng)功能的三維游戲引擎系統(tǒng)。
文檔編號(hào)G06F9/44GK102880464SQ201210317029
公開日2013年1月16日 申請日期2012年8月31日 優(yōu)先權(quán)日2012年8月31日
發(fā)明者劉福財(cái), 任雁鵬 申請人:中山市世宇動(dòng)漫科技有限公司