glProject得到的窗口坐标有问题,请高手指点
我在做opengl的拾取,在比较选择对象的深度时,需要用(glProject)将物体坐标转化为窗口坐标(winx,winy,winz),但转化后的winz的倒是能比较出大小,能够达到比较深度的目的,但winx,winy的值却不正常,从几千到负几千。比如一个三角形的三个点的窗口坐标,应该相差不大,而且和鼠标的坐标差不多,但我的程序却不是。
应该是中间的ModelMatrix和ProjMatrix矩阵的问题,但这两个矩阵应该怎么用,或者在对选择对象处理之前的什么地方使用?
有人说是平移、旋转、缩放引起的问题,我通过放缩视景体大小来实现缩放,通过改变视点位置和视线方向来实现平移、旋转,应该没有什么影响啊。后来我又改用glTranslate\glRotate\glScale来实现,问题依旧。
请高手指点,到底可能在什么地方出现问题。
代码太多,不方便全贴,如果需要哪部分,我再贴上来吧,先作揖了。