キーボード ボタンを使用して平面 (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 を平行移動行列で対応する前方ベクトルに平行移動する必要がありますか?