2011-12-25 34 views
0

在我的代碼中,我無法根據對象設置照明的座標,所以我無法將照明固定在移動的對象上。我如何移動物體的光線如何使用opengl中的燈光旋轉我的對象

我有一個物體在0,0,-15的位置,當我按下右上方的左下方按鈕時,這個物體隨着光線移動而成爲羊羔物體。然而,儘管我將光(羊羔物體)放在0,0,-15的位置,並且將move_x和move_z座標作爲光的位置,但光線出現在不同的地方,並且它與我的物體不相連。這是我的代碼:

  glTranslatef(move_x,0,move_y); 
      float l0_pos_temp[] = {move_x ,-3, move_y ,1} ; 
      glLightfv(GL_LIGHT0, GL_POSITION, l0_pos_temp) ; 
      glTranslatef(0,-3,0); 
      Light(); 
     glPopMatrix(); 
+2

我很抱歉,但我不明白你在問什麼。你能否更詳細地解釋你想要達到的目標? –

+0

謝謝,我給出更多的細節 – lkalay

回答

0

要注意的重要一點是,glLightfv()由模型視圖矩陣的當前狀態的影響。調用glTranslatef(move_x,0,move_y)之前是 ,在設置燈光位置之前會通過(move_x,0,move_y)轉換燈光。

也許你想:

 glTranslatef(move_x,0,move_y); 
     float l0_pos_temp[] = {0.0f, -3.0f, -15.0f, 1.0f}; 
     glLightfv(GL_LIGHT0, GL_POSITION, l0_pos_temp); 
     glPopMatrix();