directx中第五卷

包围盒

定义包围盒

struct BoundBox
{
BoundBox();

bool isPointInside(D3DXVECTOR3& p); //是否包含点

D3DXVECTOR3 _min;
D3DXVECTOR3 _max;
};
BoundBox::BoundBox()
{
_min.x = -Infinity;
_min.y = -Infinity;
_min.z = -Infinity;

_max.x = Infinity;
_max.y = Infinity;
_max.z = Infinity;
}
bool BoundBox::isPointInside(D3DXVECTOR3& p)
{
if (p.x >= _min.x && p.y >= _min.y && p.z >= _min.z &&
p.x <= _max.x && p.y <= _max.y && p.z <= _max.z)
{
return true;
}
else
{
return false;
}
}

directx初第十卷

混合

alpha混合

//开启alpha混合
g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, true);
//设置融合因子
g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
//(设置融合方式,像素相加)默认为相加,可以不写此句
g_pd3dDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);