请教使用D3DPT_LINESTRIP渲染的线框问题。。。
1:我发现如果使用D3DPT_LINESTRIP来渲染线框,则渲染的图形将会多一个宽度的像素。
- C/C++ code
DWORD color = D3DCOLOR_ARGB(100, 0, 0, 0); float x = 20, y = 20; float width = 200, height = 300; stD3DVertex objData[] = { { float(x), float(y), 0, 1, color}, { float(width+x), float(y), 0, 1, color}, { float(width+x),float(height+y), 0, 1, color}, { float(x),float(height+y), 0, 1, color}, { float(x), float(y), 0, 1, color}, };
这个顶点坐标应该是没问题的,因为我用过他以其他的顶点格式渲染,宽高像素都与width和height一致。
就是使用这个D3DPT_LINESTRIP有问题,我用PS比对过,结果宽是201,高是300,何故??
(我是在我的UI系统里面遇到的这个问题,结果建个测试项目单独测试一看,结果还是这样)
2:一般渲染线框是用D3DPT_LINESTRIP顶点格式么??不用加g_D3DDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);
这句了吧??
[解决办法]
D3DPT_LINESTRIP是讲多个点用线连接
楼主可以试试其他的格式