|
|
D3DXMATRIX matWorld;
D3DXMatrixIdentity( &matWorld );
D3DXMatrixTranslation( &matWorld,12.0f, 0.0f, 0.0f );
g_pD3DDevice->SetTransform(D3DTS_WORLD, &matWorld);
/////////////////////////////////////////////////////////////////
D3DXMATRIX matView;
D3DXMatrixLookAtLH(&matView, &D3DXVECTOR3(0.0f, 0.0f,-30.0f), //Camera Position
&D3DXVECTOR3(0.0f, 0.0f, 0.0f), //Look At Position
&D3DXVECTOR3(0.0f, 1.0f, 0.0f)); //Up Direction
g_pD3DDevice->SetTransform(D3DTS_VIEW, &matView);
/////////////////////////////////////////////////////////////////
D3DXMATRIX matProj,matProjX;
D3DXMatrixPerspectiveFovLH(&matProj, D3DX_PI/4, 640.0f/480.0f, 1.0f, 500.0f);
g_pD3DDevice->SetTransform(D3DTS_PROJECTION, &matProj);
现在照相机放在了原点 z轴-30的地方
眼睛也在原点不动
我现在想做的是 眼睛,摄象机都保持在原点不动,就像是一个2D平面一样,而我想把这个定义在原点中心的正方形移动到视口中的某个点不能超出视口,而这个视口也就是我的窗口大小640*480
而网上查资料都说
D3DXMatrixTranslation( &matWorld,12.0f, 0.0f, 0.0f );
是在X轴上移动12个单位,那我如何能知道在我的视口范围类x轴上存在多少个单位?
难道3D坐标里面就没有界限之分吗?
http://www.andypike.com/tutorials/DirectX8/005.asp
关于矩阵变换的一个文章上面的图

他似乎已经把视口逻辑划分了几个区域,这些区域都是固定的吗?
我刚刚学,好象问的是很多,还是希望大家能够帮帮我. |
|