游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1098|回复: 2

请大家来帮帮我,看看这个问题怎么解决.

[复制链接]

12

主题

26

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2006-3-6 12:00:00 | 显示全部楼层 |阅读模式
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
关于矩阵变换的一个文章上面的图

他似乎已经把视口逻辑划分了几个区域,这些区域都是固定的吗?

我刚刚学,好象问的是很多,还是希望大家能够帮帮我.

35

主题

161

帖子

161

积分

注册会员

Rank: 2

积分
161
发表于 2006-3-6 14:32:00 | 显示全部楼层

Re:请大家来帮帮我,看看这个问题怎么解决.

3D坐标投影成2D坐标就有界限了,
简单的正交投影:
x'= x + screenWidth/2 ;
y'=-y + screenHeight/2 ;
忽略z坐标。
可以看出,在正交投影中,3d坐标(x,y,z)被限制在屏幕范围内了。
透视投影一个道理。。。

12

主题

26

帖子

26

积分

注册会员

Rank: 2

积分
26
 楼主| 发表于 2006-3-6 19:09:00 | 显示全部楼层

Re:请大家来帮帮我,看看这个问题怎么解决.

请问 正交投影 除了忽略Z值外
还具备3D其他的一些属性吗?
比如旋转 时纹理的真实表现等?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 19:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表