OpenGL - 鼠标选择与拾取

看《OpenGL编程指南》里第13章选择与反馈,有些云里雾里,于是上网搜一些关于这方面的来看,终于觉得弄清楚一点了,在这里写下些我的理解。

首先推荐看一篇博文 http://blog.sina.com.cn/s/blog_4a9aa55c0100vu57.html (文章1),我是看了这个才明白的,然后又看了http://blog.sina.com.cn/s/blog_6923201d01011hur.html(文章2)里面的例子。还有一篇文章,非常强大的从矩阵和投影变换原理方面解释了选择的原理:http://hi.baidu.com/ayokawamadoka/item/74a9af254c063afb51fd8740 (文章三)。这里只说说我理解的一些部分。

1.glLoadName()和glPushName()

文章1和2的例子用到了glLoadName();,我开始不明白它与glPushName()的区别,后来查了下:

void glLoadName(GLuint name):
  用name取代名字栈栈顶的那个名字。如果栈是空的,刚调用过glInitName()后就是这样,glLoadName()生成一个GL_INVALID_OPRATION错。为避免这种情况,如果栈初始时是空的,那么在调用glLoadName()之前至少调用一次glPushName()以在名字栈中放上点东西。

void glPushName(GLuint name);
  将name压入名字栈。压入名字超过栈容量时将生成一个GL_STACK_OVERFLOW错误。名字栈深度因

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值