2017-03-11 78 views
0

我正在使用OpenGL在場景中繪製一個對象,但似乎無法讓它圍繞相機旋轉,而不是隻是在原地旋轉。旋轉相機周圍的物體並獲取變換後的座標?

我能做些什麼來讓它圍繞相機旋轉?我知道我可以在相機/視圖空間中繪製它,但是我需要從變形後獲取對象的位置和旋轉(以便我可以使用Bullet爲該對象提供剛體)。如果仍然可以從視圖空間中呈現的對象中檢索位置和旋轉,請忽略該帖子的第一部分。

換句話說,我怎麼可以移動和相機旋轉對象並獲取它從ModelMatrix所以座標和旋轉,我可以填補這些:

glm::vec3 objectPosition; 
glm::quat objectRotation; 

我見過類似的帖子網上說使用舊的OpenGL /而不是MVP框架,所以我不知道如何做到這一點。乾杯。

+0

您需要翻譯到_negative_相機位置,旋轉並翻譯回去。否則,將對象移動到原點,然後旋轉它只會圍繞它自己的軸。嘗試評論你的第一行。 – Psi

+0

我似乎沒有任何運氣。我試着先用-getPosition()進行翻譯,然後旋轉,然後翻譯成getPosition()(如果這就是你的意思)但沒有運氣。 –

回答

0

您是否嘗試過使用沒有投影矩陣的MVP2?投影矩陣將其濺到屏幕上。所以,解決這個問題可能會有幫助。

+0

這有一些......有趣的效果。它跟隨着相機,但旋轉和平移不再與運動相匹配。 –