游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4437|回复: 18

棘手的问题,关于投影变换

[复制链接]

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-1-15 16:35:00 | 显示全部楼层 |阅读模式
一个3D空间的物体,我怎么可以知道它被投影在屏幕的平面坐标x,y?
用什么样的算法可以实现?

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2007-1-15 17:13:00 | 显示全部楼层

Re: 棘手的问题,关于投影变换

也就是只到p(x,y,z) 怎么求s点?
sf_2007115171325.jpg

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-1-15 17:17:00 | 显示全部楼层

Re:棘手的问题,关于投影变换

设置投影时,有视野角度。这个角度很重要。
如果视野角度是 -45度 ~ +45度,宽高比是1:1,那么
屏幕上的(x,y) = 顶点上的( [x/z],[y/z] )

明白了吗?

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-1-15 17:20:00 | 显示全部楼层

Re:棘手的问题,关于投影变换

首先要确定这个投影的视野角度 Fovy,宽高比 Ration。然后,
s=( x/[Ration*tan(Fovy/2)*z] , y/[tan(Fovy/2)*z] )

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2007-1-15 17:29:00 | 显示全部楼层

Re:棘手的问题,关于投影变换

不太明白,能给段代码吗?

我本来想做文字公告牌,后来发现效果很不好(字看不清,大小很难控制),于是想到,用公告牌的坐标投到屏幕上得到x,y,然后直接在屏幕上输出文字,这一定行的通

现在知道了 p(x,y,z) 当前投影矩阵为 matView,我怎么求出S(x1,y1)的坐标啊?能说明原理吗?

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2007-1-15 17:45:00 | 显示全部楼层

Re:棘手的问题,关于投影变换

矩阵都出来了,直接乘一下就好。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-1-15 17:47:00 | 显示全部楼层

Re:棘手的问题,关于投影变换

当前投影矩阵为 matView?
俺不懂什么叫“矩阵”,因为头疼。
俺只喜欢用几何计算来得到 点的坐标。
SORRY,帮不了你了。

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2007-1-15 18:05:00 | 显示全部楼层

Re:棘手的问题,关于投影变换

不过你的公式有点价值,值得研究。我有点灵感了

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2007-1-15 18:06:00 | 显示全部楼层

Re:棘手的问题,关于投影变换

还是很感谢你!!

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2007-1-15 18:20:00 | 显示全部楼层

Re:棘手的问题,关于投影变换

直接用P*matView得到的是在平截头其次空间的坐标。剩下的要用snhun给方法了,继续研究....
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 06:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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