在D3D中實現紋理的關鍵色透明

2021-08-22 05:09:29 字數 714 閱讀 4570

一般用於實現billboard。

首先,通過d3dxcreatetexturefromfileex()載入紋理:

d3dxcreatetexturefromfileex( g_pd3ddevice,

"fire.bmp",

d3dx_default,

d3dx_default,

d3dx_default,

0,d3dfmt_unknown,

d3dpool_managed,

d3dx_default,

d3dx_default,

d3dcolor_argb( 0, 0, 0, 255), // 關鍵色為藍色(0,0,255)

null,

null,

&g_ptexture);

呼叫後,紋理的藍色部分的畫素的alpha值為0。

接著,開啟alpha測試:

g_pd3ddevice->setrenderstate(d3drs_alphatestenable, true);

g_pd3ddevice->setrenderstate(d3drs_alpharef, 0x00000000);

g_pd3ddevice->setrenderstate(d3drs_alphafunc, d3dcmp_greater);

就是將紋理畫素的alpha值與參考值0比較,若大於則通過測試,否則不通過,捨棄。

ok,搞定!

D3D中的渲染到紋理

渲染到紋理是d3d中的一項高階技術。一方面,它很簡單,另一方面它很強大並能產生很多特殊效果。比如說發光效果,環境對映,陰影對映,都可以通過它來實現。渲染到紋理只是渲染到表面的乙個延伸。我們只需再加些東西就可以了。首先,我們要創造乙個紋理,並且做好一些防範措施。第二步我們就可以把適當的場景渲染到我們建...

D3D中透明渲染的總結

1.渲染的先決條件 開啟alpha渲染 m pd3ddevice setrenderstate d3drs alphablendenable,true 對於通過程式頂點構造的多邊形渲染時必須開啟alpha通道 m pd3ddevice settexturestagestate 0,d3dtss al...

D3D中的渲染

虛擬世界中渲染幾何體一般來說有三種途徑 自定義座標渲染 d3dx內建模型渲染和外部模型資料渲染。第一步 定義頂點資料結構體 d3d提供了自定義頂點結構的機制,通過自定乙個結構體,來儲存我們所希望具有的頂點資料,例如 stuct colorvertex 頂點結構體定義好之後,需要用靈活頂點格式標記的組...