在DirectX12中使用blend

2022-06-10 01:48:10 字數 1072 閱讀 4065

我們只需要為透明的object設定乙個新的pipelinestateobject即可。和不透明的object相比,就是額外設定了blend state:

d3d12_render_target_blend_desc blenddesc;

blenddesc.blendenable = true;

blenddesc.blendop = d3d12_blend_op_add;

blenddesc.blendopalpha = d3d12_blend_op_add;

blenddesc.destblend = d3d12_blend_inv_src_alpha;

blenddesc.destblendalpha = d3d12_blend_zero;

blenddesc.logicop = d3d12_logic_op_noop;

blenddesc.logicopenable = false;

blenddesc.rendertargetwritemask = d3d12_color_write_enable_all;

blenddesc.srcblend = d3d12_blend_src_alpha;

blenddesc.srcblendalpha = d3d12_blend_one;

psodesc.blendstate.rendertarget[0] = blenddesc;

有兩點需要注意:

1.呼叫setpipelinestate切換不同的pipelinestateobject是有一定開銷的,所以可以事先將需要渲染的objects根據不同的pipelinestate先分好組,避免頻繁切換pipelinestate;

2.注意不同objects的渲染順序,要先渲染不透明的objects,再從後往前地渲染透明的objects。

在python中使用中文 在python中,使用

我需要確保在python中使用特定引數呼叫函式。我用magic mock模擬了這個函式。在self.function magicmock self.function subject hello world 有什麼東西存在於 或者self.function.assert called with sub...

匿名類中在Json中使用

匿名類 1.第一步 定義乙個類,類中有三個屬性id。name.height 屬性型別根據 右邊的值來推斷 2.第二步 建立這個類的物件,然後,用變數p1去指向它 3.var 表示根據右邊的型別去推斷var的型別 using system using system.collections.generi...

redis在php中,在PHP中使用redis

這裡是在mac os上安裝redis,並在php中開啟redis。在mac os上安裝redis 首先是安裝,它會預設安裝到 usr local bin下 複製 如下 cd tmp wget tar zxf redis 2.6.9.tar.gz cd redis 2.6.9 make sudo ma...