我先是写了五个点(渲染时不进行背面剔除)
如下:
CUSTOMVERTEX2 customVertex2[]=
{
{100.0f,0.0f,0.0f,1.0f,D3DCOLOR_XRGB(255,0,0)},
{200.0f,200.0f,0.0f,1.0f,D3DCOLOR_XRGB(255,0,0)},
{300.0f,0.0f,0.0f,1.0f,D3DCOLOR_XRGB(0,0,255)},
{300.0f,200.0f,200.0f,1.0f,D3DCOLOR_XRGB(255,0,0)},
{400.0f,300.0f,200.0f,1.0f,D3DCOLOR_XRGB(255,0,0)}
};
然后设置了摄影机,而且在BeginScene之前对它进行了调用
void CDirect3dObject::SetCamera()
{
D3DXVECTOR3 eye(2.0f,1.5f,-3.0f);
D3DXVECTOR3 at(0.0f,0.0f,0.0f);
D3DXVECTOR3 up(0.0f,1.0f,0.0f);
D3DXMATRIX viewMatrix;
D3DXMatrixLookAtLH(&viewMatrix,&eye,&at,&up);
pDrect3DDevice->SetTransform(D3DTS_VIEW,&viewMatrix);
D3DXMATRIX projectionMatrix;
D3DXMatrixPerspectiveFovLH(&projectionMatrix,D3DX_PI/2,800/600,1.0f,1000.0f);
pDrect3DDevice->SetTransform(D3DTS_PROJECTION,&projectionMatrix);
}
但是奇怪的是不管我怎么改变eye at 或up的复值就是看不到三维透视的关系.
显示的结果就象用ID3DXSprite做出的精灵一样,总是正对着视口.
这是怎么回事? |