OpenGL拾取

原理介绍:http://www.iieeg.com/newscon.php?id=2415

http://www.programfan.com/blog/article.asp?id=47559

http://www.programfan.com/blog/article.asp?id=47558

http://blog.163.com/modingfa_002/blog/static/11092546620105252343720/

http://blog.youkuaiyun.com/zsc09_leaf/article/details/6785472

简单的步骤介绍:http://blog.youkuaiyun.com/xlzxlich/article/details/1639780

 

 

这个缓冲区只是一个整形数组

有名字是希望能够表示被击中的图元..

鼠标指针下会有一个小空间,然后检测这个空间下有哪些命名物体。

 

D3D中的颜色拾取

Qt OpenGL拾取对象是指在使用Qt框架开发OpenGL应用程序时,可以通过拾取操作来确定在OpenGL场景中的鼠标点击位置所对应的物体或对象。 实现这一功能的关键在于使用OpenGL提供的选择缓冲区(Selection Buffer)机制。首先,需要创建选择缓冲区,其大小应足够大以容纳可能被选中的所有对象。然后,使用glRenderMode(GL_SELECT)函数将OpenGL切换到选择模式。在选择模式下,OpenGL会将渲染结果写入选择缓冲区而不是屏幕。 接下来,通过设置选择缓冲区的视口、投影矩阵及渲染函数的参数,来定义拾取操作的范围和方式。例如,可以使用gluPickMatrix函数设置拾取操作的矩形范围;使用glOrtho函数或glFrustum函数设置拾取操作的投影矩阵。最后,调用绘制函数进行渲染,OpenGL会将渲染结果写入选择缓冲区。 当完成渲染后,需要将OpenGL切换回渲染模式(如glRenderMode(GL_RENDER))。然后,通过遍历选择缓冲区内容,解析渲染结果,并根据鼠标点击位置的像素坐标获取对应的物体或对象信息。可以根据需要使用OpenGL提供的函数,如gluUnProject或gluProject来转换坐标。 最后,根据获取到的物体或对象信息,可以执行相应的操作,如选中对象、显示对象信息等。 总结来说,Qt OpenGL拾取对象可以通过选择缓冲区机制实现,通过设置视口、投影矩阵和渲染函数的参数,将渲染结果写入选择缓冲区,然后解析缓冲区内容获取对应的物体或对象信息,最后执行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值