摘要: 通常可以用標準的Direct3D方法CreateDevice()創(chuàng)建一個Direct3D設備,這個方法需要一個有效的顯示適配器、設備類型(硬件抽象層設備或參考設備)、窗口句柄、運行標志(軟件/硬件頂點運算模式和其他驅動標志)和提交參數。更重要的是,結構體 D3DPRESENT_PARAMETERS有許多成員指定了后臺緩沖區(qū)的設置、多重采樣設置、交換效果、窗口模式、深度緩沖區(qū)設置、刷新頻率、提交間隔和提交標志等。
為所有的參數選擇合適的設置是比較繁瑣的,DXUT框架使用函數DXUTCreateDevice()簡化了Direct3D設備的創(chuàng)建。
閱讀全文
摘要: 使用DXUT框架之前,首先需要初始化DXUT,初始化DXUT可以通過函數DXUTInit()完成。
通常在WinMain()函數中調用DXUTInit()函數進行DXUT初始化工作,如果程序員沒有調用DXUTInit()函數,則DXUT框架會自動使用默認參數調用該函數。
閱讀全文
摘要: DXUT框架提供了下列服務,幫助程序員創(chuàng)建一個應用程序:
(1)簡化窗口和設備的創(chuàng)建。
(2)聲明設備事件(創(chuàng)建、重置、丟失、銷毀)和窗口事件(消息、鍵盤、鼠標)。
(3)在窗口模式和全屏模式間切換,在硬件抽象層設備和參考設備間切換。
(4)高分辨率計時器。
(5)為自動測試提供命令行支持。
(6)通過對話框或API選擇設備。
(7)紋理GUI控件組,包括IME-enable文本框。
(8)附加雜類,例如簡單的攝像機類。
閱讀全文
摘要: DXUT(也稱sample framework)是建立在Direct3D API之上的Direct3D應用程序框架,有了DXUT這樣一個Direct3D程序框架,只需在這個框架的基礎上編寫相應的代碼,從而簡化了windows和Direct3D API的使用,可以高效地進行Direct3D程序設計。
閱讀全文
地震應該不是百害而無一益,對于受災地區(qū)的人們來說是災難,而對于地球來說地震是緩解地球本身的壓力,釋放過多
能量,保持巖石圈受力平衡的有效而唯一的途徑。同時地震也會把地下的礦物帶到地表?;鹕絿姲l(fā)的火山灰使土壤變得肥沃,有利于農業(yè)生產,而海底地震引起的海
嘯和海風給內陸地區(qū)帶來難得一遇的水汽對于緩解干旱,凈化空氣起到了一定的作用。
人類畢竟是渺小的,只是地球上眾多生物中的一種,地球為了自身的生存和平衡,必然會犧牲一些生物的利益,而地球作為一種人類目前尚無法感知的智慧存在物,自然有自己的存在和活動方式。
生命無常,世事難料,人還是應該認真生活每一天,不要過于放縱自己。
摘要: 圖形系統(tǒng)中為了獲得當前運行程序的相關信息,往往需要在屏幕上顯示文本,Direct3D的功能擴展接口ID3DXFont對此提供了方便的解決方法。
使用接口ID3DXFont繪制文本,首先需要通過函數D3DXCreateFont()創(chuàng)建ID3DXFont字體對象。ID3DXFont接口封裝了 Windows字體和Direct3D設備指針,D3DXCreateFont()函數通過Windows字體和Direct3D設備指針創(chuàng)建 ID3DXFont對象。
閱讀全文
摘要: 在Direct3D中,三維物體的顯示是通過網格模型來實現(xiàn)的,顯示三維物體的關鍵在于生成該網格模型。三維文本也不例外,顯示三維文本同樣需要該文本所對應的網格模型。 Direct3D為此提供了功能庫函數D3DXCreateText(),通過它可以方便地創(chuàng)建一個包含具體文本的網格模型.
閱讀全文
摘要: 圖形系統(tǒng)中為了獲得當前運行程序的相關信息,往往需要在屏幕上顯示文本,Direct3D的功能擴展接口ID3DXFont對此提供了方便的解決方法。
使用接口ID3DXFont繪制文本,首先需要通過函數D3DXCreateFont()創(chuàng)建ID3DXFont字體對象。ID3DXFont接口封裝了 Windows字體和Direct3D設備指針,D3DXCreateFont()函數通過Windows字體和Direct3D設備指針創(chuàng)建 ID3DXFont對象。
閱讀全文
摘要: 霧化效果是計算機圖形學中應用最廣的效果之一,它不僅能顯著地增加視覺效果的真實感,并可以提供一定的深度感。在實時圖形程序,特別是游戲設計程序中,為了確保圖形系統(tǒng)的運行速度,圖形開發(fā)人員往往在位于觀察點遠處的場景使用較為簡單的三維模型,甚至不繪制物體,而在近處使用復雜模型,這樣就可能造成物體變形、突然出現(xiàn)或突然消失等失真現(xiàn)象,霧化效果可以有效地避免這種失真現(xiàn)象。
閱讀全文
摘要: 要使用基于范圍的霧化,首先需要檢查當前硬件是否支持基于范圍的霧化:
// check if hardware supports range fog
D3DCAPS9 caps;
g_device->GetDeviceCaps(&caps);
if(! (caps.RasterCaps & D3DPRASTERCAPS_FOGRANGE))
return false;
閱讀全文