2013-02-26 164 views
0

我在翻譯正在繪製的對象時出現了一些問題。這是我的全部顯示功能。我似乎無法找到任何我做錯的事情。OpenGL翻譯

glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
glMatrixMode(GL_PROJECTION); 
glPushMatrix(); 
glLoadIdentity(); 
glOrtho(0, 720, 480, 0, -1.0, 1.0); 
glTranslatef(-0.5f,0.0f,0.0f); 

//drawing object here 

glPopMatrix(); 
glutSwapBuffers(); 
+4

怎麼了?你能指望什麼?發生了什麼? – 2013-02-26 13:05:10

+0

你是否在設置顏色? – kassak 2013-02-26 13:08:16

+0

還有,你知道你在翻譯屏幕的1/1440嗎?你畫的是相同尺寸的物體嗎? – kassak 2013-02-26 13:09:54

回答

2

你需要你做glOrtho後,開始修改模型視圖矩陣堆棧:

// ... 
glOrtho(0, 720, 480, 0, -1.0, 1.0); 

glMatrixMode(GL_MODELVIEW); 
glTranslatef(-0.5f,0.0f,0.0f); 
// ... 

但現在你glPushMatrixglPopMatrix正在修改不同的堆棧,所以glPopMatrix會導致錯誤。無論如何,你不應該需要這樣一個簡單的例子。

+0

非常感謝。其實就是這樣。我給出的例子很簡單,但我繪製的對象相當複雜。非常感謝你 – user2111311 2013-02-26 13:13:05

+0

現在,物體按預期移動到左側,但它每幀都會移動,直到它漂走。任何想法如何解決這個問題?我想將對象向左移動-0.5(這樣每個幀就會在那個位置)。我只想移動這一個對象。因爲還有更多正在繪製。 – user2111311 2013-02-26 13:43:54

+0

@ user2111311在每幀開始進行轉換之前,請確保您執行'glLoadIdentity()'。 – 2013-02-26 13:45:57