游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6652|回复: 7

请教DirectX能设置正交投影吗?还是只能透视投影?

[复制链接]

2

主题

10

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2004-4-1 22:25:00 | 显示全部楼层 |阅读模式
OpenGL里面可以用glOrtho进行正交投影(远处物体不变小,用于CAD等情况)
DirectX有没有类似功能啊??

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2004-4-1 23:59:00 | 显示全部楼层

Re:请教DirectX能设置正交投影吗?还是只能透视投影?

当然能了,具体查一下 sdk 文档。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20505
发表于 2004-4-2 03:25:00 | 显示全部楼层

Re:请教DirectX能设置正交投影吗?还是只能透视投影?

可以,修改顶点结构。

#define D3DFVF_CUSTOMVERTEX_2D  (D3DFVF_XYZRHW|D3DFVF_DIFFUSE|D3DFVF_TEX1)

struct CUSTOMVERTEX_2D
{
    D3DXVECTOR3 position; // The position
    FLOAT rhw;
    D3DCOLOR    color;    // The color
    FLOAT       tu, tv;   // The texture coordinates
};

这段是我以前写的,可能现在不适用,希望能做个参考。

2

主题

10

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2004-4-2 12:01:00 | 显示全部楼层

Re:请教DirectX能设置正交投影吗?还是只能透视投影?

谢谢各位大侠指点!
不过我的图形是3D的图形,只是不想用透视的方法去看。
我发现如果不设定观察方式(就是viewMatrix不设定等),系统默认的好像就是从Z轴正方向无限远向下看,等于我说的这个平行(正交)投影方式;一旦设定了观察方式,有lookAt之类的,就是一个透视投影了。问题是如果我想进行45度观察,但是又不想透视,怎么办呢?

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2004-4-2 13:23:00 | 显示全部楼层

Re:请教DirectX能设置正交投影吗?还是只能透视投影?

不是说让你查一下文档吗?算了,告诉你得了:

D3DXMATRIX matProject;
// 这个函数是设置正交投影矩阵
D3DXMatrixOrthoLH(&matProject, width, height, Znear, Zfar);
pD3dDevice->SetTransform(D3DTS_PROJECTION, &matProject);

2

主题

10

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2004-4-6 18:00:00 | 显示全部楼层

Re:请教DirectX能设置正交投影吗?还是只能透视投影?

谢谢您!俺是新新手,不太明白...下次我自己去查。。

3

主题

140

帖子

140

积分

注册会员

Rank: 2

积分
140
发表于 2004-4-10 10:46:00 | 显示全部楼层

Re:请教DirectX能设置正交投影吗?还是只能透视投影?

学习

0

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2004-4-10 20:34:00 | 显示全部楼层

Re:请教DirectX能设置正交投影吗?还是只能透视投影?

LocalToWorld, WorldToView, 和ViewToScreen
=====================
通常情况下,你需要设置LocalToWorld,WorldToView,和ViewToScreen。
如果你没有设,他们都是单位矩阵,也就是说。你的Local坐标,就是你的screen坐标。dx是左手系,y朝上,x向右,显然z就是朝里。

45度斜视是由WorldToView来决定的。你的相机是45度朝下的。你可以因此来生成你的WorldToView矩阵。正交是由ViewToScreen来指定的,是不是Ortho在这一步起作用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-16 16:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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