视图空间有关问题
视图空间问题
D3DXMATRIX matView;
D3DXVECTOR3 vFromPt = D3DXVECTOR3( 0.0f, 0.0f, -5.0f );
D3DXVECTOR3 vLookatPt = D3DXVECTOR3( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 vUpVec = D3DXVECTOR3( 0.0f, 1.0f, 0.0f );
D3DXMatrixLookAtLH( &matView, &vFromPt, &vLookatPt, &vUpVec );
m_pd3dDevice-> SetTransform( D3DTS_VIEW, &matView );
这是建立以Y轴为 "上 "方向看物体的视图坐标,并且是能垂直(就是说在物体正上方)看到物体的.
我想问的是D3DXVECTOR3 vFromPt = D3DXVECTOR3( 0.0f, 0.0f, -5.0f );
为什么这个向量里面最后的Z轴坐标必须是-0.5f呢?我觉得任何数字都可以啊!
肯定是我对世界坐标转换到视图坐标还理解不够
当然前提条件是要在物体正上方看.
------解决方案--------------------
view_ray = lookat - from,只要不是0当然可以是任意的(这样说也不是很严谨)
看看Introduction to 3D Game Programming with DirectX 9.0这本书,
里面有关于camera设置的详细介绍
D3DXMATRIX matView;
D3DXVECTOR3 vFromPt = D3DXVECTOR3( 0.0f, 0.0f, -5.0f );
D3DXVECTOR3 vLookatPt = D3DXVECTOR3( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 vUpVec = D3DXVECTOR3( 0.0f, 1.0f, 0.0f );
D3DXMatrixLookAtLH( &matView, &vFromPt, &vLookatPt, &vUpVec );
m_pd3dDevice-> SetTransform( D3DTS_VIEW, &matView );
这是建立以Y轴为 "上 "方向看物体的视图坐标,并且是能垂直(就是说在物体正上方)看到物体的.
我想问的是D3DXVECTOR3 vFromPt = D3DXVECTOR3( 0.0f, 0.0f, -5.0f );
为什么这个向量里面最后的Z轴坐标必须是-0.5f呢?我觉得任何数字都可以啊!
肯定是我对世界坐标转换到视图坐标还理解不够
当然前提条件是要在物体正上方看.
------解决方案--------------------
view_ray = lookat - from,只要不是0当然可以是任意的(这样说也不是很严谨)
看看Introduction to 3D Game Programming with DirectX 9.0这本书,
里面有关于camera设置的详细介绍