私はゲームを作っていますが、現在私のオーディオリスナーを働かせています。私はすべてをやったし、私はいくつかの音を聞くこともできますが、私のカメラの向き(定義されたクラス)は私のオーディオと一緒に働いていません。 Iveはこれを使って自分自身を実装しようとしました:ピッチヨーからのOpenALリスナーの方向性とロール
AL10.alListener3f(AL10.AL_ORIENTATION , cam.getPitch(),cam.getYaw(), cam.getRoll());
しかし、そのリソースは機能しませんでした。私のゲームの仕事をするために私は何ができますか?
OpenGLバージョン2.0(OpenAlバージョン2.0だと思います) ありがとうございました!
編集: 答えが理解できたら、それをフロートバッファーに入れる必要があります。だから、これは私が、ピッチとヨーと私のカメラのビュー行列を作成する方法である:
viewMatrix.setIdentity();
Matrix4f.rotate((float) Math.toRadians(pitch), rotateX, viewMatrix, viewMatrix);
Matrix4f.rotate((float) Math.toRadians(yaw), rotateZ, viewMatrix, viewMatrix);
Vector3f negativeCameraPos = new Vector3f(-position.x, -position.y, -position.z);
Matrix4f.translate(negativeCameraPos, viewMatrix, viewMatrix);
と私は現在、このisueに使用する方法:
ByteBuffer bb = ByteBuffer.allocateDirect(6 * 4);
bb.order(ByteOrder.nativeOrder());
FloatBuffer listenerOrientation = bb.asFloatBuffer();
listenerOrientation.put(0, cam.getViewMatrix().m01);
listenerOrientation.put(1, cam.getViewMatrix().m02);
listenerOrientation.put(2, cam.getViewMatrix().m03);
listenerOrientation.put(3, cam.getViewMatrix().m11);
listenerOrientation.put(4, cam.getViewMatrix().m12);
listenerOrientation.put(5, cam.getViewMatrix().m13);
AL10.alListener(AL10.AL_ORIENTATION, listenerOrientation);
AL10.alListener3f(AL10.AL_POSITION, cam.getPosition().x, cam.getPosition().y, cam.getPosition().z);
まあそれをmaby」は、この値を使用して
、あなたはより
pname = AL10.AL_ORIENTATION
と、このコードサンプルに似た二つのベクトルを含むvalue
で、alListener(int pname, java.nio.FloatBuffer value)
メソッドを呼び出すことができますカメラのビューマトリックスを自分の編集でどのように作成するかを示すのに役立ちます – Caspermartijn