我想使用键盘按钮在平面(y=0)上移动我的模型,但我遇到了以下问题:
我设法让他绕着他的 Y 轴旋转,但现在我需要让它朝着他面对的方向移动。如何检测和计算位移来构造合适的平移矩阵?
这是附加的代码,因为有些事情进展不顺利......
this.mouseMv = MatrixMath.lookAt(this.eyeX,this.eyeY,this.eyeZ,this.at,this.up);
Mat4 translate = MatrixMath.translate(this.position);
this.mouseMv = this.mouseMv.mul(translate);
this.mouseMv = this.mouseMv.mul(MatrixMath.rotationX(-90.0f));
this.mouseMv = this.mouseMv.mul(MatrixMath.translate(this.position);
this.mouseMv = this.mouseMv.mul(this.mouseAngle);
modeling.use(gl);
modeling.setUniformMatrix("model_view", this.mouseMv);
String part = "models/catbody.sgf";
Mat4 original = this.mouseMv;
for (Map.Entry<String, VertexBufferObject> entry : vboHashMap.entrySet()) {
String key = entry.getKey();
entry.getValue().bind(gl);
gl.glDrawArrays(GL3.GL_TRIANGLES, 0, SGFLoader.getNumVertices(key));
}
所以前向向量是来自我的 mouseMv 矩阵的 (8,9,10) 向量。现在要让模型朝着他所面对的方向前进,我应该通过平移矩阵用相应的前向向量平移 mouseMv 吗?