2017-03-11 77 views
0

我正在使用OpenGL在场景中绘制一个对象,但似乎无法让它围绕相机旋转,而不是只是在原地旋转。旋转相机周围的物体并获取变换后的坐标?

我能做些什么来让它围绕相机旋转?我知道我可以在相机/视图空间中绘制它,但是我需要从变形后获取对象的位置和旋转(以便我可以使用Bullet为该对象提供刚体)。如果仍然可以从视图空间中呈现的对象中检索位置和旋转,请忽略该帖子的第一部分。

换句话说,我怎么可以移动和相机旋转对象并获取它从ModelMatrix所以坐标和旋转,我可以填补这些:

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

我见过类似的帖子网上说使用旧的OpenGL /而不是MVP框架,所以我不知道如何做到这一点。干杯。

+0

您需要翻译到_negative_相机位置,旋转并翻译回去。否则,将对象移动到原点,然后旋转它只会围绕它自己的轴。尝试评论你的第一行。 – Psi

+0

我似乎没有任何运气。我试着先用-getPosition()进行翻译,然后旋转,然后翻译成getPosition()(如果这就是你的意思)但没有运气。 –

回答

0

您是否尝试过使用没有投影矩阵的MVP2?投影矩阵将其溅到屏幕上。所以,解决这个问题可能会有帮助。

+0

这有一些......有趣的效果。它跟随着相机,但旋转和平移不再与运动相匹配。 –