2011-05-13 66 views
1

我寫了一個Kinect的3D掃描儀和我想要顯示的點雲..的OpenGL glScale和glLoadMatrix

的點雲具有從Trackingsystem額外Transformmatrix ..

我用: 比例= 0.0005; glScaled(scale,scale,scale);

遇到問題,即x,y,z值範圍從0到10.000由Opengl削減由於剪切平面。

當我使用glLoadMatrix(trackingtransform);我沒有看到任何東西,即使我在loadmatrix後再次使用gsccale。

+0

你很模糊,充其量。 OpenGL沒有硬性限制,它被剪輯。我只是懷疑你沒有正確設置投影和模型視圖。請顯示一些代碼。最值得注意的是你在哪裏設置模型視圖和投影矩陣。 – datenwolf 2011-05-13 09:13:03

回答

0

glLoadMatrix替換您使用glScaled生成的矩陣。

如果要合併它們,請使用glMultMatrix而不是glLoadMatrix。

這就是說,我建議做datenwolf暗指的事情。使用投影矩陣設置映射您的使用場景(即0-10000範圍內的世界)的座標系,並保持模型視圖矩陣四處移動。

+0

* facepalm *我是新來的opengl。設置一個投影矩陣會節省我幾個小時..謝謝 – 2011-05-13 09:25:52

0

您可以直接縮放矩陣的點是,如:

glPushMatrix(); 
glScale(); 
-draw all your points... 
glPopMatrix();