我需要一些关于 OpenGL 中旋转任务的最佳方法的指示。我知道如何使用四元数在 3D 空间中旋转对象,我可以翻译它们,一切都很好。
但我想知道将不同对象的集合视为单个实体以进行旋转的最佳方法。例如,假设您有一张桌子,上面有物品。每个都有自己的平移和旋转,但现在我想旋转整个桌子和上面的所有东西,同时让房间里的其他物体保持原位。这意味着桌子外边缘的物体会旋转并围绕桌子的中心平移,而中心的物体可能会旋转但不会保持原位,或者根本不会平移太多,这取决于它们与桌面的距离。旋转轴。
似乎一个相当不雅的方法是单独旋转和平移桌子上的每个对象,以及桌子本身,知道旋转轴在哪里。也许这是唯一的好方法,但有没有一种技术可以为此目的“组合”不同的对象?