OpenGL的GL_Select模式的效率问题(转)

OpenGL的GL_Select模式的效率问题

http://www.cnblogs.com/hesicong/archive/2007/02/12/648647.aspx
每一本OpenGL入门的书都会讲到OpenGL的Select模式,它采用一种方法使得可以获取当前鼠标点选的几何图形。简单的来说这种方式就是首先调 整Projection矩阵,使得你透过从鼠标点选附近的一个正方形(大小可设置)看到的世界。然后开始绘制,当每一次绘制的时候都会判断你会不会看到。 如果看到,那么,你就是选择了这个几何图形了。更为具体的过程可以参见相关的书籍。
我重点要提到的是它的效率。
今 天我在弯管机程序里面多加了一些代码,实现可以选择机器的各个部件。但是发现每次点选的时候反应速度很慢,以至于我可以看到明显的停顿。而在直接渲染的时 候就没有这个问题,相当流畅。最后我用PerformanceCounter计时,一步一步的找问题的根源,发现在glRenderMode (GL_Select)设置以后,在执行相同的绘图指令会相当的慢。经我测试,在我6600GT显卡上,使用官方93.50驱动程序,渲染相同的画面,用 选择模式以后平均速度低于10%,也就是说渲染时间增加10倍以上。较为简单的图形渲染起来性能也低于普通渲染的30%。而这样所造成的后果就是严重的延 迟。
刚开始我以为是我程序优化的问题,然而即便所有的物体都使用显示列表,也存在这样的问题。我想到这可能是OpenGL实现上的问题。
晚上我把Quadro FX1100专业显卡(芯片和GeForce FX5700相同)装上以后,使用一样的93.50驱动,再进行测试。发现情况有所好转,选择模式下平均速度是正常渲染模式下面的60%左右。已经感觉不出延时。
然后我又在虚拟机下面进行测试,然而得到的现象却截然不同。虚拟机下面的SVGA显卡在选择模式下面的速度比正常渲染快10倍左右。
很是迷茫,毕竟选择模式下面要多一些操作,速度应该要慢一些,怎么会快这么多呢?虚拟机的测试可信么?是NVIDIA的驱动的问题么?网络上也有人提到MAYA在NVIDIA显卡上面模式东西的时候运行很慢,可能问题是出现在驱动上吧。
另外身边又没有ATI显卡,所以暂时不能用ATI显卡作测试。但从网络上很多人反馈得知,ATI也存在相同的问题。
解决方法也有,就是自己写相关的程序,看一个人的回帖说比较简单,而他用的是BSP数据结构,对于通用的程序可能不太适用吧。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值