如图,在(0,0,0)位置和(0,5,5)位置分别画了个茶壶,想在原点绘制x,y,z三条短线表示坐标轴,画出来却在左上角,画的坐标轴好像默认了左上角为原点,想请教原因。ps:视点位置(10,10,10),注视点位置(0,0,0),向上向量(0,1,0)。
另外,绘制段里,在不同的位置绘制了两次茶壶(见代码),为什么窗口最小化再恢复以后只剩一个了?(见图2)
// 开始渲染
m_SceneManager.BeginRender();
pTeapot->DrawSubset(0);
// 换坐标
D3DXMATRIX mat;
D3DXMatrixTranslation(&mat,0.0,5.0,5.0);
m_SceneManager.GetDevice()->SetTransform(D3DTS_WORLD,&mat);
pTeapot->DrawSubset(0);
//
// 结束渲染
m_SceneManager.EndRender();
{
{ -20.0f, 0.0f, 0.0f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
{ 20.0f, 0.0f, 0.0f, 1.0f, 0xffff0000, }, { 0.0f, -20.0f, 0.0f, 1.0f, 0xff00ff00, },
{ 0.0f, 20.0f, 0.0f, 1.0f, 0xff00ff00, }, { 0.0f, 0.0f, -20.0f, 1.0f, 0xff0000ff, },
{ 0.0f, 0.0f, 20.0f, 1.0f, 0xff0000ff, },
}; m_pIDirect3DDevice->CreateVertexBuffer( 6*sizeof(CUSTOMVERTEX),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &m_pvb, NULL );
void* pVertices;
m_pvb->Lock(0,sizeof(vertices),(void**)&pVertices,0);
memcpy(pVertices,vertices,sizeof(vertices));
m_pvb->Unlock();
m_pIDirect3DDevice->SetStreamSource(0,m_pvb,0,sizeof(CUSTOMVERTEX));
m_pIDirect3DDevice->SetFVF(D3DFVF_CUSTOMVERTEX);
m_pIDirect3DDevice->DrawPrimitive(D3DPT_LINELIST,0,3);