opengl中鼠标拾取操作分析

本文介绍了OpenGL编程中鼠标拾取技术的工作原理和关键代码,通过投影变换阶段的拾取矩阵实现目标物体的选择。在MFC环境下,文章详细阐述了拾取过程,包括设置选择缓冲区、构建拾取矩阵、渲染物体和处理选中结果。
摘要由CSDN通过智能技术生成

     

   在进行Opengl编程时,通常会进行一些交互式操作,其中的鼠标拾取技术可以实现对目标物体的选取和判断,为开发者和用户带来便利。下面笔者就对这当中的一些核心代码进行总结和分析。

     Opengl中的拾取是对opengl管线的一个应用,所以这个过程并不是想象中利用射线求交来判断是否选中目标物体,而是利用投影变换阶段的拾取矩阵进行的。

 

     由于我的工程是在mfc环境下进行的,所以我只列出核心代码并进行分析,不过只要读者真正理解了这部分代码,相信这个功能也就很好的实现了。

 

     int  mouse_x ,mouse_Y;   //鼠标位置

     GLuint   buffer[512];         //设定一个选择缓冲区

      GLint    hits;                 //被选中的物体的数量

 

     void Selection(void //拾取

{

 

        GLint viewport[4];      //视口的大小,四个值分别为,x,y,width,height;

        glGetIntegerv(GL_VIEWPORT, viewport);     

        glSelectBuffer(512, buffe

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值