游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2316|回复: 6

关于选择、挑选,几天都没搞明白,敬请赐教.

[复制链接]

30

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
发表于 2006-5-16 11:48:00 | 显示全部楼层 |阅读模式
选择、挑选,想向大家讨点学习笔记、或学习资料或学习心得。请大家帮帮忙了。非常感谢。 [em7]

12

主题

162

帖子

175

积分

注册会员

Rank: 2

积分
175
发表于 2006-5-16 12:36:00 | 显示全部楼层

Re:关于选择、挑选,几天都没搞明白,敬请赐教.

您说的选择挑选是指如何用鼠标选中3D场景中的物体的意思吗?
我资料是很多,n G的英文电子书资料,不过只看了其中1/n本吧!
现在看的是Introduction to Direct3D9  里面有关于鼠标选取的章节,不过您好象看的是OpenGL吧,这方面的资料我就很少了!

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-5-16 16:51:00 | 显示全部楼层

Re:关于选择、挑选,几天都没搞明白,敬请赐教.

原理都是一样的,先把2D坐标映射到3D,得到一个射线向量,然后按深度顺序用射线去和场景中每个物体的包围网格求交就行了

55

主题

331

帖子

337

积分

中级会员

Rank: 3Rank: 3

积分
337
发表于 2006-5-16 21:48:00 | 显示全部楼层

Re:关于选择、挑选,几天都没搞明白,敬请赐教.

25894670 , 麻烦你给我发一些 D3D 里鼠标选择的资料。越多越好。不胜感激。

email: juedno2004@163.com

30

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
 楼主| 发表于 2006-5-17 21:59:00 | 显示全部楼层

Re:关于选择、挑选,几天都没搞明白,敬请赐教.

行行好!给点学习笔记、心得、资料吧:
gao_xudong2004@163.com

17

主题

85

帖子

85

积分

注册会员

Rank: 2

积分
85
发表于 2006-5-18 11:10:00 | 显示全部楼层

Re: 关于选择、挑选,几天都没搞明白,敬请赐教.

这是我以前看选择时简单写的一些,也许对你有用
一般实现选择可有下面三种方法:
选择模式,利用名字空间(缺点:需要绘制两次,不能精确选择)
利用颜色标记不同的物体(缺点:当物体多时不太好分配颜色)
利用gluUnporject()可以将屏幕上对应的2D坐标转换为3D

大家如果还有好的方法也请告诉我,谢谢!
其中前两种方法我是看得下面这个教程
http://www.lighthouse3d.com/opengl/picking/
第三中方法没有看到响应的代码,只是了解相应的思路,感觉在实际中很少用选择模式去判断物体是否选中,主要是需要绘制两次,会降低效率,不过NeHe的一个教程Alpha Testing里选择物体是也用这种方法。

下面是当时一个简单的总结:
Selection & Feedback
OpenGL有三种渲染模式:普通的渲染模式,选择模式和反馈模式。其中普通的渲染模式就像我们平常的一样,需要执行各种测试(Depth、Alpha、Stencil等),而选择模式并不实际的往FrameBuffer中写数据,它只将选择的结果记录在一个Select Buffer中(一个整形数组)。我们通过读这个整形数组可以获得一些信息,我们可以通过glInitName0以及glPushName()、glPopName()、glLoadName()对物体进行标示,从而确定我们选择了那个物体,最大允许标示的物体数目为64。在选择模式中,我们只能得到那个物体被选中的信息,当多个物体被选中时,我们可以比较它们的z坐标来决定那个物体离屏幕最近。在反馈模式中,我们可以得到更多的信息,比如被选择物体所有的顶点坐标、颜色值等等。这些信息被放在了一个Feedback Buffer中。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-5-18 13:22:00 | 显示全部楼层

Re:关于选择、挑选,几天都没搞明白,敬请赐教.

选择和挑选不光是转换为3D坐标以后就有效的,2D坐标是没有深度值的,所以得到的只是一个方向而非一个准确的3D坐标,还是要用射线和面片的相交判断来做。通过重心坐标可以得到一个线性方程组(分别对xyz),用系数行列式解法解出该方程就行了,D3DSDK有一个Pick的Sample,你可以参考一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 12:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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