2013-04-11 66 views
0

我有一箇舊的OpenGL項目,不涉及GLSL,現在 我重寫它,以便它使用GLSL。我有一個功能,當您移動鼠標時,相機會圍繞固定點旋轉 。我不確定 如何在我的新項目中使用這個函數,現在我使用GLSL和 而不是標準的OpenGL固定管道。我可以重複使用與GLSL相關的轉換代碼嗎?

這是函數,我不確定我是否可以使用相同的代碼 或者我將不得不重寫轉換以便它適用於GLSL?

void mouseMovePassive(int x, int y) 
{ 
    static int oldX=x, oldY=y; 

    rotateCamera(y-oldY, x-oldX); 

    int centerX = glutGet(GLUT_WINDOW_WIDTH)/2; 
    int centerY = glutGet(GLUT_WINDOW_HEIGHT)/2; 
    if(abs(centerX-x) > 250 || abs(centerY-y) > 250) 
    { 
     glutWarpPointer(centerX, centerY); 
     oldX = centerX; 
     oldY = centerY; 
    } 
    else 
    { 
     oldX = x; 
     oldY = y; 
    } 
} 
+0

有趣的功能是rotateCamera而不是您的輸入事件處理程序。請張貼那個的源代碼。由於缺乏信息,我們現在無法幫助您。 – datenwolf 2013-04-11 22:37:10

+1

這裏沒有足夠的信息來回答這個問題。我們只能猜測這些功能實際上做了什麼。 – 2013-04-12 02:18:47

+0

嗨,大家好。該代碼有點深刻,太多打擾你,但最終它得到了一個呼籲gluLookAt。所以我想現在我真正的問題是,我該如何處理gluLookAt調用,我如何在GLSL中重寫這樣的調用。我可以重複使用嗎? – user2225930 2013-04-12 17:32:21

回答

2

據我所知,gluLookAt工作在內置的矩陣類型。對於比opengl更新的版本,您需要重新編寫它或使用第三方庫。如果您使用的是C++,我相信glm庫已經內置了

相關問題