[发明专利]一种在图形处理器上拾取三维几何图元的方法在审
申请号: | 200810103054.5 | 申请日: | 2008-03-31 |
公开(公告)号: | CN101271585A | 公开(公告)日: | 2008-09-24 |
发明(设计)人: | 李胜;汪国平 | 申请(专利权)人: | 北京大学 |
主分类号: | G06T15/00 | 分类号: | G06T15/00;G06T15/20 |
代理公司: | 北京君尚知识产权代理事务所 | 代理人: | 贾晓玲 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 图形 处理器 拾取 三维 几何 方法 | ||
技术领域
本发明是关于海量图元的快速选择和拾取方法,具体涉及一种图形处理器GPU上的三维几何图元的拾取方法。
背景技术
图形拾取是实现一个图形编辑系统的关键技术之一,所谓图形拾取就是从纷繁的图中选择某一图形的过程,其目的是只对该选中的图形进行平移、修改、放缩、旋转和删除等交互操作。图形拾取方式包括:单体拾取和块拾取两种方式。单体拾取是用鼠标直接点取单个图形的过程,而块拾取则是用矩形框把要拾取的图形对象包围起来的方式,是一种范围拾取。块选取方法往往通过判断框内各图形的矩形边界包围盒(Bounding box)是否包含在矩形框中,如包含在其中,则被拾取;否则便不被拾取,属于一种粗糙的拾取方式。图形的拾取现有的方法有两类,一类是三维图形绘制标准OpenGL提供的拾取机制,另一类是基于屏幕射线求交的拾取方法。
1、OpenGL选择机制(字体修改了)
OpenGL为了解决拾取问题,提供了一种基于名称堆栈的命中记录的选择机制。主要步骤为:定义选择物体和清空名字堆栈,定义记录存储数组,进入选择模式,进行选择。在OpenGL中,拾取物体是利用拾取矩阵和投影变换,将拾取的范围限制在鼠标热点的有效区中,一旦触发鼠标事件就进入选择模式并将有效区初始化,最后利用拾取矩阵拾取有效区内的物体。有效区的定义由glPickMatrix()函数来完成。一旦拾取成功,就以记录的形式返回与拾取物体相关的信息,并生成一个记录表示一个物体被命中。
但是这种机制使用限制较多,尤其是对于图元数据量较大的几何形体或者场景,往往会因为名字堆栈的溢出而无法成功实现。而频繁的名称堆栈的压入与弹出操作会严重影响拾取的效率。此外,OpenGL的选择拾取机制使用较为麻烦,需要在正常绘制模式和选择绘制模式之间进行切换。
2、屏幕射线求交拾取法
射线求交拾取法是通过获取鼠标在屏幕上的点击点,经屏幕坐标转换得到投影点,以视点为起点,经投影点构造一条垂直指向屏幕的射线。由于所有显示在屏幕上的三维物体都位于视域体之内,因而只需要判断这条射线与场景中的哪个物体相交。经过相交检测算法即可选择得到与该射线相交的几何图元。
屏幕射线拾取算法的过程如下:得到鼠标点击处的屏幕坐标,并将其转换为客户区坐标,实现视区反变换;然后,通过投影矩阵和观察矩阵把该坐标转换为通过视点和鼠标点击点的一条射入场景的射线,该射线如果与三维场景模型的图元相交,则获取该相交图元的信息。因此从数学角度来看,只要得到射线的方向矢量和射线的出射点就确定了射线方程,最后就可以利用射线判断其与空间一个图元是否相交,从而实现图元的选取。
这种方法应用于几何体的块拾取时,则需要将屏幕上的n个点击点所对应的n条射线构成一个选择体。然后通过算法来对每个点进行判断处理,在选择体内部的点为所要拾取的几何图元。该方法对于复杂的待选择几何图元,判断三维空间中图元是否位于三维的选择体内部的算法极其复杂,需耗费大量的计算资源,耗时也非常巨大,其块拾取算法在实际系统中几乎没有应用价值。
随着2000年以后可编程图形硬件的引入,基于GPU(Graphics Process Unit)的通用计算已经成为当前许多研究人员关注的热点。可编程性使得人们可以充分利用GPU上提供的顶点处理器、片元处理器或者几何处理器,设计一些算法通过整个图形流水线来完成特定的任务。基于GPU的通用计算已经广泛应用在代数计算、流体模拟、数据库操作、图像处理和几何计算中。当前主流的显卡芯片制造厂商nVIDIA和AMD(ATI)也不断推出新的图形硬件架构,为GPU通用计算提供有力的支持。2006年底,AMD(ATI)公司发布了新一代图形硬件流处理器(Stream Processor),专门针对金融分析、地质分析、生命科学等应用领域。nVIDIA则在G80芯片上使用了CUDA(Compute Unified Device Architecture,统一计算设备构架),以胜任复杂的通用计算的要求。
当前图形硬件设计的趋势是在图形处理器中提供更多的可编程性。在传统的图形流水线中,几何光照处理和像素渲染过程仅仅能完成非常有限的一些渲染效果,而且一旦完成后如果需要改变效果,需要在CPU端计算好改变后的状态,再次将图元和像素调入流水线进行处理。当图形硬件有了可编程结构,可以随时改变顶点的坐标,重量,法线,颜色,纹理坐标,雾和点大小等数据,而且不需要CPU介入,完全由图形芯片执行。可编程性最大的好处是灵活性,设计人员可以根据需求制定不同的指令操作,将各种特效组合使用,从而产生千变万化的逼真效果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810103054.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:光学成像
- 下一篇:低碳型铬锰钨抗磨铸铁