gluPickMatrix和glReadPixels

本文介绍了gluPickMatrix函数的正确用法,澄清了该函数中参数代表的选择区域中心位置而非左上角位置的常见误解,并解释了颜色编码拾取过程中glReadPixel函数的正确使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gluPickMatrix的使用
2008年12月03日 星期三 23:40
void gluPickMatrix(GLdouble x,GLdouble y,GLdouble width,GLdouble height,GLint viewport[4]);

 

 

它是用来根据当前鼠标选择区域生成一个相应的投影矩阵的。这里面头两个参数不是这个选择区域的左上角位置,而是整个区域的中心位置。如果错把它当成左上角,选择的区域就会斜向上有个偏移。OpenGL红宝书上没有区域选择的例子,只有一个通过鼠标点击选择的程序,因而没有说明这个问题。

同样,在颜色编码拾取的时候,要通过glReadPixel这个函数读取当前在back buffer中的颜色信息:

void glReadPixels(GLint x,GLint y,GLsizei width,GLsizei height,GLenum format,GLenum type,GLvoid *pixels);

 

 

这里面的y实际上是整个区域的左下角位置,通常也很容易被人当成是左上角。另外,这些函数的纵坐标和OpenGL环境中的纵坐标是相反的,需要进行翻折。

转载于:https://www.cnblogs.com/frustrate2/archive/2012/08/17/2643490.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值