游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5392|回复: 16

关于鼠标指针坐标到3D场景坐标的转换的讨论。

[复制链接]

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-7-14 22:49:00 | 显示全部楼层 |阅读模式
哦。题目是这样的:给定一个摄象机。包括摄象机坐标、倾角等相关数据。假如我在屏幕上单击鼠标。于是获得了一个2D坐标(平面),问:如何将他转换为3D场景的坐标?渲染环境为OPENGL。

我正在对这个问题进行数学描述。。让我们对此展开讨论吧。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20535
发表于 2004-7-15 00:55:00 | 显示全部楼层

Re:关于鼠标指针坐标到3D场景坐标的转换的讨论。

勾股定理行不行?
知道摄像机的位置应该可以计算出角度,然后摄像机和地面的距离,用三角函数可以算出斜边,在计算一下,不知道行不行。呵呵

37

主题

180

帖子

180

积分

注册会员

Rank: 2

积分
180
发表于 2004-7-15 08:18:00 | 显示全部楼层

Re: 关于鼠标指针坐标到3D场景坐标的转换的讨论。

2D MOUSE
--->取出camera dir 算出 moue dir

将mouse dir 导入地图 就可了吗

3

主题

16

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2004-7-15 17:24:00 | 显示全部楼层

Re:关于鼠标指针坐标到3D场景坐标的转换的讨论。

站长说的办法是可以的,但是精度不够高,推荐用gluUnProject,如果不想联接glu库,可以自己实现

33

主题

445

帖子

446

积分

中级会员

Rank: 3Rank: 3

积分
446
发表于 2004-7-15 19:56:00 | 显示全部楼层

Re:关于鼠标指针坐标到3D场景坐标的转换的讨论。

这个容易啊! 由3D建模坐标 ->3维变换->观察变换->投影变换->变换到windows坐标;

你把他用逆矩阵反回去就是了。

z 坐标在Z-缓冲里取。

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
 楼主| 发表于 2004-7-15 22:53:00 | 显示全部楼层

Re:关于鼠标指针坐标到3D场景坐标的转换的讨论。

哦哦哦你们的方法好实用啊。。。我的想法也是跟站长类似。。
不过比他的麻烦。。勾股定理的精度确实不太高。2D WINDOW坐标转换到3D坐标的X,Y平面有点烦。计算ING。。倒是Z-BUFFER好读取
另外说句,4楼的兄弟你那个GLU的函数我怎么没见过。。。

3

主题

16

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2004-7-16 15:47:00 | 显示全部楼层

Re:关于鼠标指针坐标到3D场景坐标的转换的讨论。

  kkkkk

6

主题

76

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2004-7-17 10:32:00 | 显示全部楼层

Re:关于鼠标指针坐标到3D场景坐标的转换的讨论。

由屏幕上的2D坐标,经过视图变换的反变换,就能找到投影平面上的点p,再计算一条射线,射线起点是视锥的起点,射线穿过点p,把这条射线转换到和物体同个坐标系下,这样就可以用射线和物体进行相交判断了

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
 楼主| 发表于 2004-7-17 14:45:00 | 显示全部楼层

Re:关于鼠标指针坐标到3D场景坐标的转换的讨论。

8楼的兄弟。如果是用“块”评接起来的地图你说的似乎可以使用。但是对于纯3D来说。。。。困难。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2004-7-19 11:46:00 | 显示全部楼层

Re:关于鼠标指针坐标到3D场景坐标的转换的讨论。

不是有人写过这个专题吗??
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-17 07:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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