2014-04-30 69 views
1

我在我的3D項目中有一個攝像機,我試圖沿z軸在世界各地平移。相機定位在(0.0,50.0,-75.0),目標爲(0.0,1.0,0.0)。我只是想讓攝像頭從第一個位置移動到(0.0,50.0,75.0)的相反位置。攝像機不會移動,但座標正在更新

在我的構造函數中,我初始化了相機的位置,目標和向量。

_camPos = glm::vec3(0.0f, 50.0f, -75.0f); 
_target = glm::vec3(0.0f, 1.0f, 0.0f); 
_up  = glm::vec3(0.0f, 1.0f, 0.0f); 

在我的我的OnInit功能:

_viewMatrix = glm::lookAt(_camPos, _target, _up); // glm::mat4 _viewMatrix 

而且我的OnRender函數中:

_camPos.z += 0.05f; 

攝像機的位置更新,但在視覺上,攝像頭停留在同一個地方。 我的場景中有移動的物體在OnRender中進行更新,但相機本身不會移動。

回答

1

只是在每幀渲染功能中更新您的_camPos.z將不會執行任何操作。你還必須更新視圖矩陣。將_viewMatrix = glm::lookAt(_camPos, _target, _up);移到渲染函數中,您可能會看到一些結果。