D3D中为什么改变vertex结构中顶点定义的顺序会导致无法画出图形?
如果把:
[code]
CUSTOMVERTEX cv[]={
{250.0f,100.0f,0.5f,1.0f,D3DCOLOR_XRGB(0,0,255)},//b
{400.0f,350.0f,0.5f,1.0f,D3DCOLOR_XRGB(0,255,0)},//g
{100.0f,350.0f,0.5f,1.0f,D3DCOLOR_XRGB(255,0,0)}//r
};
[/code]
中三个点顺序改变,比如
[code]
CUSTOMVERTEX cv[]={
{400.0f,350.0f,0.5f,1.0f,D3DCOLOR_XRGB(0,255,0)},//g
{250.0f,100.0f,0.5f,1.0f,D3DCOLOR_XRGB(0,0,255)},//b
{100.0f,350.0f,0.5f,1.0f,D3DCOLOR_XRGB(255,0,0)}//r
};
[/code]
就会导致无法绘图,只有一个空窗户
是不是和
[code]
g_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST,0,1);
[/code]
的绘画顺序有关系?
问题点数:30、回复次数:1Top
1 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-08-01 18:50:59 得分 30
和 cull模式有关系
缺省的三角形模式是逆时针方向的,顶点的顺序决定了面的法向量
法向量结合cull模式决定了面是否可见
你调整一下cull标志就可以了
// Set the culling state.
d3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);Top




