我想繪製一個2D形狀,我試圖用gluProject在3D和2D座標之間進行轉換。基本上我的目標是在(200,200)上畫一個點,並且適當地畫出點(因爲起始位置是0,0,0)。gluProject給出錯誤的座標
我初始化gluProject這樣的 -
GLdouble modelView[16];
GLdouble projection[16];
GLint viewport[4];
glGetDoublev(GL_MODELVIEW_MATRIX,modelView);
glGetDoublev(GL_PROJECTION_MATRIX,projection);
glGetIntegerv(GL_VIEWPORT,viewport);
,我稱它在我生命的方法,這樣
double tx, ty, tz;
gluProject(0.0,0.0,0.0,modelView,projection,viewport,&tx,&ty,&tz);
cout<<"tx,ty,tz: "<<tx<<","<<ty<<","<<tz<<endl;
我得到的值是怪異(-9e61,-9e61 ,-9e61)。我猜這是因爲我乘以一個不同的矩陣比我應該是。有什麼建議?
嘗試打印'modelView','projection'和'viewport'並檢查它們的值是否合理。同時使用'glGetError'檢查OpenGL錯誤。 – Thomas