Direct3D中实现图元的鼠标拾取.docx
上传人:sy****28 上传时间:2024-09-14 格式:DOCX 页数:7 大小:67KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Direct3D中实现图元的鼠标拾取.docx

Direct3D中实现图元的鼠标拾取.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Direct3D中实现图元的鼠标拾取BY重剑,2004.5.28HYPERLINK"http://www.heavysword.com"重剑空间索引:HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"1、什么是拾取,拾取能做什么?"1、什么是拾取,拾取能做什么?HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"2、拾取操作的步骤和实现"2、拾取操作的步骤和实现HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"2.1.变换并获得通过视点和屏幕上点击点的射线矢量(Dir)"2.1.变换并获得通过视点和屏幕上点击点的射线矢量(Dir)HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"2.1.1确定鼠标选取点的屏幕坐标"2.1.1确定鼠标选取点的屏幕坐标HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"2.1.2得到Dir在观察坐标空间内的表示"2.1.2得到Dir在观察坐标空间内的表示HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"2.1.3转换Dir到世界坐标空间,并得到观察点在世界坐标系中的坐标"2.1.3转换Dir到世界坐标空间,并得到观察点在世界坐标系中的坐标HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"2.2使用射线矢量对场景中的所有三角形图元求交,获得三角形索引值和重心坐标。"2.2使用射线矢量对场景中的所有三角形图元求交,获得三角形索引值和重心坐标。HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"2.2.1D3D扩展函数实现求交"2.2.1D3D扩展函数实现求交HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"2..2.2射线三角面相交的数学算法"2.2.2射线三角面相交的数学算法HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"2.2.3拾取完成根据获得的中心坐标计算我们关心的常见量,。"2.2.3拾取完成根据获得的中心坐标计算我们关心的常见量HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"3、结束及声明"3、结束及声明HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"4、参考文献"4、参考文献HYPERLINK"http://dev.gameres.com/Program/Visual/3D/pick_2004_529.htm"\l"补充:重心坐标的概念"补充:重心坐标的概念3D交互图形应用程序中,常常要用鼠标去选择图形,其实现的机制基于鼠标拾取算法。本文主要讲述如何在D3D中实现图元的鼠标拾取。为了讨论简单,本文假定读者理解D3D坐标变换流程和基本的图形学知识,如果阅读有困难请参考相关资料。1、什么是拾取,拾取能做什么?首先,拾取操作指当我们在屏幕上用鼠标点击某个图元应用程序能返回该图元的一个标志和某些相关信息。有图形程序设计经验的人都知道,有这些信息就表示我们有了对该图元的控制权,我们可以删除,可以编辑,可以任意对待该图元,至于你到底想干什么,就是阁下自己的事了^_^。2、拾取操作的步骤和实现拾取算法的思想很简单:得到鼠标点击处的屏幕坐标,通过投影矩阵和观察矩阵把该坐标转换为通过视点和鼠标点击点的一条射入场景的光线,该光线如果与场景模型的三角形相交(本文只处理三角形图元),则获取该相交三角形的信息。本文讲述的方法除可以得到三角形的一个索引号以外还可以得到