最初に(それ自体の中心を中心に)回転させてから、それをある点に変換したいオブジェクトがあります。回転を保持するglm::quatと、変換する必要のあるポイントを保持するglm::vec3があります。
glm::vec3 position;
glm::quat orientation;
glm::mat4 modelmatrix; <-- want to combine them both in here
modelmatrix = glm::translate(glm::toMat4(orientation),position);
次に、レンダリング関数で実行します。
pvm = projectionMatrix*viewMatrix*modelmatrix;
glUniformMatrix4fv(pvmMatrixUniformLocation, 1, GL_FALSE, glm::value_ptr(pvm));
..そしてレンダリング...
残念ながら、回転を適用すると、オブジェクトは原点の周りを周回するだけです(原点から「位置」が遠いほど、軌道は大きくなります)。
私がポジションだけを申請するとき、それはうまく翻訳されます。回転のみを適用すると、原点に留まり、中心を中心に回転します(予想どおり)。では、両方を適用すると、なぜ奇妙になるのでしょうか。私は何か基本的なものが欠けていますか?