这是初始化模型矩阵时的旋转代码:
_model = translate(_position) *
( rotate(_rotation.data[0], 1.0f, 0.0f, 0.0f) *
rotate(_rotation.data[1], 0.0f, 1.0f, 0.0f) *
rotate(_rotation.data[2], 0.0f, 0.0f, 1.0f)) *
scale(_scale);
基本上,我有一个3D级别,我想围绕同一个枢轴点旋转关卡和其中的所有对象。
我怎么能这样做?
答案 0 :(得分:1)
这通常通过三个矩阵的连接(即乘法)来完成:
T
:将所需的轴转换为原点(0,0,0)。R
:应用轮换。Tinv
:翻译回来。由于OpenGL矩阵的结构方式,正确的顺序为Tinv * R * T
。通过它预乘你的视图矩阵。