|
|
我写的一个绘制顶点程序里面,没有启用Light的时候,顶点可以正常绘制(用DrawPrimitiveUP()),可是启用了Light以后,绘制出来的顶点就都变黑色了,请教高手,这是什么原因?
顶点格式如下:
#define FVF_LIT_VTX ( D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_SPECULAR )
struct SLitVertex
{
D3DVECTOR vec3;
DWORD clrDiff;
DWORD clrSpec;
};
// Render bounding center point
SLitVertex vtx;
vtx.vec3 = m_boundingSphere.GetBS().m_vCenter;
vtx.clrDiff = D3DCOLOR_ARGB(255, 255, 255, 255);
vtx.clrSpec = D3DCOLOR_ARGB(255, 255, 255, 255);
ChangeFvf(FVF_LIT_VTX);
ChangeRenderState( D3DRS_ZENABLE, FALSE );
float fPtMax = 64.0f;
ChangeRenderState( D3DRS_POINTSIZE, *((DWORD*)&fPtMax) );
m_pd3dDevice->DrawPrimitiveUP(D3DPT_POINTLIST, 1, &vtx, sizeof(SLitVertex));
ChangeRenderState( D3DRS_POINTSIZE, *((DWORD*)&(fPtMax=1.0f)) );
|
|