游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 初学3D

我求你们了,教教我吧

[复制链接]

2

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2006-11-20 20:02:00 | 显示全部楼层

Re:我求你们了,教教我吧

我没有DirectX的SDK,因为windows是盗版m$又不让我下载,我从一些网站下的一些sample都是用D3DXMatrixPerspectiveFovLH这类函数得到投影矩阵
可是我现在只有mingw用,根本没有d3dx9.h这个东西,我就打算自己搞
所以我想搞个单位矩阵确定一下我对d3d的理解

源代码我上个帖子发了没人看
xgreenclover德的方法试了没用

谢谢大家回复

2

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2006-11-20 20:06:00 | 显示全部楼层

Re:我求你们了,教教我吧

z值1,-1我都是了

变换不就是vertex * worldmatrix * viewmatrix * projectionmatrix吗?

9

主题

688

帖子

688

积分

高级会员

Rank: 4

积分
688
发表于 2006-11-20 20:11:00 | 显示全部楼层

Re:我求你们了,教教我吧

如果要让点的x和y坐标不变,应该使用正交投影矩阵而不是使用单位阵

9

主题

688

帖子

688

积分

高级会员

Rank: 4

积分
688
发表于 2006-11-20 20:15:00 | 显示全部楼层

Re: Re:我求你们了,教教我吧

初学3D: Re:我求你们了,教教我吧

z值1,-1我都是了

变换不就是vertex * worldmatrix * viewmatrix * projectionmatrix吗?

你忘记考虑视口变换了,如果加上视口变换,你那三个点的坐标估计跑出屏幕老远了。

2

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2006-11-20 20:23:00 | 显示全部楼层

Re:我求你们了,教教我吧

不是吧
你看这个交投影矩阵对不对
        D3DVIEWPORT vp;
        pd3dDevice->GetViewport(&vp);
        float w = vp.Width * 0.5;
        float h = vp.Height * 0.5;
        D3DMATRIX proj = {
                w, 0, 0, 0,
                0, h, 0, 0,
                0, 0, 0, 0,
                w, h, 0, 1
        };
        pd3dDevice->SetTransform(D3DTS_PROJECTION, &proj);

如果设成这样,那三角形真的就很大了

2

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2006-11-20 20:34:00 | 显示全部楼层

Re:我求你们了,教教我吧

原来还有视口变换啊
我把坐标改成
0,1, 1
1, -1, 1
-1, -1, 1
终于看到三角了,不过位置还不对

9

主题

688

帖子

688

积分

高级会员

Rank: 4

积分
688
发表于 2006-11-20 20:34:00 | 显示全部楼层

Re:我求你们了,教教我吧

1/w, 0, 0, 0,
0, 1/h, 0, 0,
0, 0, 0, 0,
1, 1, 0, 1

2

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2006-11-20 20:45:00 | 显示全部楼层

Re: Re:我求你们了,教教我吧

我是该去看书了

35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
发表于 2006-11-22 00:05:00 | 显示全部楼层

Re:我求你们了,教教我吧

晕,名字有意思!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 22:13

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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