金橋科普  
設為首頁 關于我們 郵箱登錄
科普聚焦
您現在的位置: 首頁 >> 科普頻道 >> 電腦遊戲 >> 文章詳情
Direct3D制作二維界面

cyrys gameres 2006-09-30
Direct3D制作二維界面總結(原創)

Direct3D制作二維界面總結(原創)

因為工作關系,最近用Direct3D中的二維部分制作了一個軟件的界面部分,在這裡將其中的感受寫下來,與大家分享,也歡迎大家討論!

GDI與Direct3D簡單對比
GDI: CPU佔用少,但易產生畫面閃爍現象,在現成的函數中,可達到畫面效果比起Direct3D少的多。可以用現成的控件,處理消息方便,但受一定的系統限制!對硬件要求低。
Direct3D:由于程序結構的關系,CPU佔用高,須採用髒矩形技術(但增加程序復雜性),才可有效降低CPU佔用率,不會產生畫面閃爍,可較之容易地渲染出華麗的畫面!界面與用戶的交互,完全靠自己來渲染不同的畫面,控制比GDI 復雜,但可以精確地進行處理,達到自己想要的任何效果!對硬件有一定的要求,還需要裝相應的運行時庫,雖然使用髒矩形,可有效提高響應速度,但不同配置的機器,還是有明顯的差別!還需考慮設備丟失問題。

    Direct3D制作的界面,實際為二維圖形交互程序。我在剛開始寫時,沒有經驗,便想到一點點來,但現在回想起來,程序結構是非常重要的,因為它不像GDI,有確定的處理方式,它沒有現成的框架可用,我們的界面是什麼樣子的,完全由自己來控制。因此設計部分時一定要考慮週全,我覺得最基本的要求就是:程序易于理解、擴展並且效率高!對某個事件,一定要理解清楚,如鼠標點擊某個圖形,你可以在鼠標按下時進行處理相應的事件,也可以在鼠標按下再彈起時再處理,這就要分清其區別,這也是看出,比起GDI可進行更好的控制。
    在我的程序中,二維渲染,用的最多的是ID3DXSprite接口IDirect3DDevice9::UpdateSurface()方法(將後備緩衝作為參數) ,到後面基本上都用前一種了。為測試其性能,我仿照ID3DXSprite做過一個自己的精靈類,即創建頂點緩衝進行紋理渲染,在每次調用時,將頂點位置拷入,再進行渲染,發現兩者差不多,只是在渲染比較小的紋理且每一幀渲染很多張紋理時,自己做的精靈類要快一些,所以就沒有改它。不知大家是否認同?它可容易地渲染出透明的圖形,再配合好美工,做出漂亮的界面是不難的!
    最終我的程序,使用髒矩形,大大降低了CPU佔用率,提高了響應速度。程序很小,不到500K,但裝入全部資源後,達到了近20M。

今天就想到這麼多了,歡迎討論,更希望拋磚引玉!
來Gameres.com這麼久了,這是第一次發這樣的貼子,希望和大家共同進步!:)


  發表評論 寫信給編輯 關閉窗口
同欄目內容
· 瑞典在網遊中開設虛擬大使館 2007-06-06
· 魔獸爭霸3秘籍(魔獸無敵秘籍) 2007-03-28
· 一個實用的3-D遊戲引擎執行方法 2006-09-30
· lua C_API 的 c++封裝 2006-09-30
· FreeType的教程代碼 2006-09-30
· XNA2D入門 2006-09-30
相關內容
近期主推
西藏發現青藏高原最大冰川群
·西藏發現青藏高原最大冰川群
·中日: "月亮女神"攜手"嫦娥"
·行星大碰撞砸死恐龍催生人類
·美研制會飛汽車定價9萬美元
·美國教授設計出自適應機器人
·銀河系可能有20多個黑洞
近期熱門
英海域驚現大龍蝦為普通龍蝦5倍
·英海域驚現大龍蝦為普通龍蝦5倍
·新物種金蛙體表有劇毒
·我國嫦娥工程計劃測量月球
·精神病藥物可治多種癌症
·視覺震撼:來自海底的精靈
·能刪除不良記憶的藥物誕生
近期焦點
廣西發現罕見溶洞鐘乳石有30萬年
·廣西發現罕見溶洞鐘乳石有30萬年
·澳大利亞驚現“卡布基諾”海灘
·美國"彩色"瀑布夜幕下震撼遊人
·地球上究竟有多少個物種
·英國探險家北極遊泳破紀錄
·世界之最 世上最小的動物
金橋科普是一個公益性欄目,內容由作者提供或摘自互聯網,其目的是向廣大網民普及科學技術知識。如果您發現本網站轉載或摘編了您擁有著作權的作品,請通知我們(電話:023-63659911),我們立即刪除。
關于我們 | 網站地圖 | 用戶注冊 | 廣告客戶 | 招聘信息 | 業務信息
Copyright@2006-2009 JQInfo.com,WONDER. All Rights Reserved
重慶科技咨詢中心.重慶網得信息技術有限公司.版權所有
Email:webmaster@jqinfo.com
重慶數據通信局提供網絡帶寬. 渝ICP備05002327號