摘 要 三維圖形引擎技術換言之就是三維游戲引擎技術,目前成為了時下最叫人倍受關注和創新發展最快的技術之一。現今相較于國外日本、韓國以及一些歐美國家而言,我國現今的三維技術目前還處于起步開發階段。本文主要是從3dmax建模和DirectX創建引擎來實現對一個三維圖形進行交互,檢測等的實現方法研究。
關鍵詞 圖形引擎 3Dmax建模 設計研究
中圖分類號:TP3 文獻標識碼:A
0前言
地球上的人類以及其它物種自誕生就在一個充滿三維物體的三維空間中,而為了使計算機能夠準確地再現這些人或物體,則必須在三維空間中描繪這些物體。現今社會發展正處于一個信息高爆發的時代,人們常常在茫茫的數據海洋面前顯得不知所措,一時難以抓住隱藏在數據之中的本質、結構和規律,所以我們需要通過計算機是這些實物以抽象化等形式通過一定的軟件使之表現出來這些物體和信息加深對現今社會的掌握和了解。從而促進現代社會的發展和充實人們的生活。三維圖形引擎技術是種圖形生成和圖像理解相結合的技術,它賦予人們一種仿真的、三維的并且具有實時交互的能力,尤其是以可視化技術為基礎發展起來的虛擬現實技術、三維仿真技術以及科學計算可視化技術,它們的發展及其相互結合使人類認識和駕馭世界的技能得到了極大的延伸。人們可以在三維圖形世界中用以前不可想象的手段來獲取信息,或發揮自己的創造性思維。
本次課題研究對象為對一個基于3DS MAX建模、DirectX技術實現的三維圖形游戲引擎技術設計系統的開發。該系統主要實現對模型的視景交互、實時碰撞檢測以及特殊效果的模擬等功能。
1建模的設計與實現
(1)軟件建模方法。場景空間的建摸方法一般有兩種:第一是把制作好的房屋和地形效果平面圖導入3DS MAX中,在3DS MAX中直接利用擠出(Extrude)命令生成立體空間模型。第二種方法則是直接在DirectX中生成一些特定的空間地形效果,同時通過3DMax構建簡單的房子等模型效果,然后導入到圖形場景空間中。
(2)設計與實現。場景建模是3Dmax建模的重要環節之一,同時也是最為基本的功能之一,所以如何選擇合適的建模方法也是極其重要的。為了讓場景具有一定的真實感,所以在建模過程中應該注意兩個方面:第一是注意創建模型原件的實際尺寸。第二是在滿足設計效果圖的前提下,盡量將模型做得精簡美觀,減少模型重復面的出現,提高對模型修改和渲染的速度。
建立了空間場景模型之后,在導入模型之前在創建房屋時,需把房間體模型轉換成相關線框形式,選中要創建的房屋模型的基本圖元,再選擇所創建面的左右兩個邊,再使用多次擠出(Extrude)命令和進行多邊形編輯(Polygon),最終完成房子模型的建模。
2系統邏輯功能設計
一個完整的程序當中個都會存在于一個初始化程序,這一表現尤其表現在大型程序當中如:游戲場景、網絡編程等。程序的初始化它可以防止程序發生不可預知的錯誤,同時也可以用做程序出錯時的依據,方便查出程序當中的錯誤原因,這是一個良好的編程習慣。在這里D3D初始化的作用就是初始化程序的運行功能,防止程序發生錯誤產生不必要的錯誤發生。
D3D初始化步驟:(1)獲得D3D程序的應用接口指針。(2)檢查相關設備技術的功能特性,確定顯卡等設備是否正常運行、是否支持硬件頂點處理。 (3)初始化一個D3D應用窗口結構來作為實例,這個窗口包含大量的數據對象,它允許我們創建一個D3D窗口對象程序。
對于模型的創建我們一般采用的3Dmax建模工具來構造一個較為復雜的具有真實感模型,然后使用3Dmax建模工具插件將模型轉換成.X特殊模型文件格式。對于生成的X模型文件而言,當一個程序需要被訪問時他必須先訪問X文件。訪問X文件時通過調用程序DirectXFileCreate函數創建一個DX的應用窗口接口,此接口就代表了一個X文件的調用路徑或者說是生成路徑。創建IDirectXFile接口后,需注冊一個系統的定制模版或者標準模版。定制模版是用戶根據自己習慣和愛好定制的模板,標準模板則是微軟公司自己定義的一種固定的模板。
系統通過調用系統函數IDirectXFile ::RegisterTemplates函數來注冊模版。注冊模版之后通過調用IDirectXFile::CreateEnumObject函數打開X文件來檢查數據對象。在我們圖形引擎構建模型中存在兩種類型,一種是靜態模型,另一種是動態模型。對于不同的模型類型則要采取不同的方式來進行繪制和生成。
3總結
當下游戲場景、建筑、房地產、室內場景設計與游戲和裝修相關行業的繁榮發展使得三維建模技術已經達到了一個很高的程度,這種方案的設計將借助計算機變得更加輕松和高效,同時也會產生更加高效的場景設計模型。虛擬現實技術在各種技術應用的驅動和需求的刺激下,得到不斷的高效的推陳出新,其應用的相關領域也會更加靈活和廣泛。
參考文獻
[1] David H.Eberly.3D Game Engine Design.Magic Software,2003.
[2] 李建平.從零學習3ds Max的新手.上海科學普及出版社,2008.