关于平移物体的问题.
D3DXMatrixTranslation(&matWorld,-12.0f, 0.0f, 0.0f);
g_pD3DDevice->SetTransform(D3DTS_WORLD, &matWorld);
这样就可以移动了。
我不明白的是窗口大小500*500,我将X设置为-12
这个正方形却移动到屏幕中间靠底部的边缘上,
请问这个设置是按照什么来计算的?
将x加1.0正方形就移动自身的一半高度,那我如何才能准确的将这个正方形移动到屏幕的最底下不多也不少?
按照什么来衡量或计算?
谢谢各位!
问题点数:50、回复次数:6Top
1 楼Bobby136()回复于 2006-03-06 09:26:17 得分 0
这个还与你的view矩阵,proj矩阵和渲染状态有关啊Top
2 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2006-03-06 10:28:06 得分 50
你设置的是world矩阵
物体在世界坐标系下的移动,和屏幕上具体显示的位置之间的关系不是那么简单的
如同楼上说道还涉及到 相机矩阵(view matrix)和投影矩阵(PROJECT matrix)
world matrix控制的只是物体在世界坐标系下的摆放的位置,好比一个房间
view matrix控制的是相机在世界坐标系下的位置和方向,从而决定了取景的范围
project matrix控制的是相机取景范围内的内容,如何在屏幕上显示
Top
3 楼miman_123(弥漫の香)回复于 2006-03-06 11:29:51 得分 0
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);
上次是因为D3DXMatrixLookAtLH的上方向设置错了所以X轴变成向下了.
现在照相机放在了原点 z轴-30的地方
眼睛也在原点不动
我现在想做的是 眼睛,摄象机都保持在原点不动,就像是一个2D平面一样,而我想把这个定义在原点中心的正方形移动到视口中的某个点不能超出视口,而这个视口也就是我的窗口大小640*480
而网上查资料都说
D3DXMatrixTranslation( &matWorld,12.0f, 0.0f, 0.0f );
是在X轴上移动12个单位,那我如何能知道在我的视口范围类x轴上存在多少个单位?
难道3D坐标里面就没有界限之分吗?Top
4 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2006-03-06 12:13:12 得分 0
影响屏幕位置的不仅仅是这两个矩阵
还有投影矩阵,你如果要达到2d的方式一样,就要使用Ortho这个正交投影方式
资料上说的x移动的单位是在世界坐标系下的
你要是实现的是屏幕坐标系下的,因此必须在正交投影方式下才可以实现Top
5 楼miman_123(弥漫の香)回复于 2006-03-06 18:00:12 得分 0
正交投影,会忽略Z值 原处的物体不会变小了
那么我要使物体像3D里面一样旋转可以吗?Top
6 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2006-03-06 19:28:22 得分 0
可以旋转,但是在视觉效果上和透视投影的效果不同
正交投影下,屏幕上不同部分之间的距离师等比的
透视投影下不同,中间的距离短,周边的距离大Top




