版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、12.屏蔽緩沖區(qū) 屏蔽緩沖區(qū)屏蔽是一項我們尚未討論過的高階繪制功能,這是一項在發(fā)展商業(yè)應(yīng)用程序時很有用的技 術(shù)。如果想讓您的3D程序與眾不同,最好能結(jié)合屏蔽以及前面學(xué)到的貼圖技術(shù)。本章會詳 述如何運(yùn)用屏蔽,并且展示能用它產(chǎn)生的不同類型效果。市面上很多3D游戲和模擬都用電影級的特效添加戲劇性的沖擊。您可以用屏蔽緩沖區(qū)來建 立像合成、印花(decal)、溶入、淡出淡入(fade)、邊框、剪影(silhouette)、刷抹 (swipe)以及
2、陰影等效果。屏蔽緩沖區(qū)能決定會繪制影像中的哪些像素。屏蔽緩沖區(qū)能讓 您針對各像素開啟或關(guān)閉對繪制目的繪圖頁來達(dá)成這些功能。這表示您的軟件可以「遮住」 部份的影像讓它不要顯示。當(dāng)屏蔽功能啟動時,Microsoft Direct3D會對要寫入繪制目的繪圖頁的每個像素進(jìn)行屏蔽測 試。屏蔽測試會用一個屏蔽參考值、一個屏蔽板(stencil mask)、一個比較函式、以及一 個取自屏蔽緩沖區(qū)的像素值(對應(yīng)于目的繪圖頁中的現(xiàn)行像素)。下面是這個測試
3、中所作的 步驟:1. 用屏蔽板對屏蔽參考值作位AND運(yùn)算。2. 用屏蔽板針對現(xiàn)行像素的屏蔽緩沖區(qū)值作位AND運(yùn)算。3. 用比較函式比較步驟1和步驟2的結(jié)果??刂票容^函式、屏蔽板、屏蔽參考值、以及屏蔽測試通過或失敗時的動作,就可以控制屏蔽 緩沖區(qū)的運(yùn)作。當(dāng)測試成功時,現(xiàn)行像素會被寫入目標(biāo)。預(yù)設(shè)比較動作(D3DCMPFUNC 列舉類型所定義的D3DCMP_ALWAYS)不會管屏蔽緩沖區(qū)的內(nèi)容而直接寫入像素。您可 以設(shè)定D3DRENDERST
4、ATE_STENCILFUNC繪制狀態(tài)并轉(zhuǎn)入任一個D3DCMPFUNC成員 值來改用任何所要的函式。在建立屏蔽緩沖區(qū)之前必須決定目標(biāo)系統(tǒng)所支持的屏蔽功能。方法是呼叫IDirect3DDevice7::GetCaps方法。dwStencilCaps旗標(biāo)表示裝置所支持的屏蔽緩沖區(qū)運(yùn) 算?;貓蟮钠鞓?biāo)對全部三種屏蔽緩沖區(qū)運(yùn)算都有效:D3DRENDERSTATE_STENCILFAIL、D3DRENDERSTATE_STENCILPASS 以及D
5、3DRENDERSTATE_STENCILZFAIL。Direct3D 定義了下列的 dwStencilCaps 旗標(biāo):D3DSTENCILCAPS_DECR 表示有支持 D3DSTENCILOP_DECR 運(yùn)算? D3DSTENCILCAPS_DECRSAT 表示有支持 D3DSTENCILOP_DECRSAT 運(yùn)算可以看到,這段程序代碼注明屏蔽緩沖區(qū)支持是否大于1位。如果只支持1位屏蔽緩沖 區(qū),某些屏蔽技術(shù)就得用不同的方法處理。HR
6、ESULT CMyD3DApplication::CreateStencilBuffer()(g_bCanOnlyDoOneBitStencil二FALSE;DWORD dwStencilCaps =m_pDeviceInfo- >ddDeviceDesc.dwStencilCaps;if((!(dwStencilCaps }else(〃最好使用上下限為0/max的sat運(yùn)算,不過如果屏蔽位足夠的話可 以用其它運(yùn)算。g_Stenc
7、IncOp=(dwStencilCaps g_StencDecOp=(dwStencilCaps }m_pddsRenderTarget->DeleteAttachedSurface(0,NULL);//由繪制目標(biāo)取得z緩沖區(qū)大小?!ń緩沖區(qū)的繪圖頁描述。DDSURFACEDESC2 ddsd;D3DUtil_InitSurfaceDesc(ddsd);m_pddsRenderTarget->GetSurfaceDesc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣候緩沖區(qū)的妙用
- 緩沖區(qū)溢出攻擊原理
- 緩沖區(qū)機(jī)制與政黨治理
- 緩沖區(qū)溢出攻擊詳細(xì)講解
- c++編程對緩沖區(qū)的理解
- Windows平臺下緩沖區(qū)漏洞研究.pdf
- 數(shù)組緩沖區(qū)溢出分析和檢測.pdf
- 霍爾推力器緩沖區(qū)磁場設(shè)計.pdf
- c++編程對緩沖區(qū)的理解
- 基于GCC的緩沖區(qū)溢出檢測研究.pdf
- 緩沖區(qū)溢出漏洞利用與防御研究.pdf
- 緩沖區(qū)溢出漏洞的測試方法研究.pdf
- 0day緩沖區(qū)溢出實(shí)驗(yàn)報告
- 緩沖區(qū)溢出檢測與防護(hù)技術(shù)改進(jìn)研究
- T公司倉庫緩沖區(qū)的優(yōu)化設(shè)計.pdf
- LibsafeEX:動態(tài)防御緩沖區(qū)溢出攻擊研究.pdf
- 緩沖區(qū)溢出攻擊語言研究與實(shí)現(xiàn).pdf
- 基于緩沖區(qū)溢出的網(wǎng)絡(luò)滲透技術(shù).pdf
- 緩沖區(qū)溢出攻擊防御技術(shù)的研究.pdf
- 35871.gis緩沖區(qū)和疊加分析
評論
0/150
提交評論