私は360画像をレンダリングしているので、カメラの前にオブジェクトや十字線を追加したい(広告掲示板の概念)というアプリケーションを作っています。カメラの前にオブジェクトを置く方法
私はスタックオーバーフロー自体から多くの疲れを持っていますが、私は私がやろうとしている私のコードは以下のことをどうやって行うことができるか考えていませんでした。
Vector3 position;
float[] newPosition4 = new float[4];
position = obj.getPosition();
float[] posVec4 = {0, 0, -8, 0.0f};
float[] HeadViewMatrix_inv = new float[16];
Matrix4 HeadViewMatrix4 = new Matrix4();
HeadViewMatrix4.setAll(getCurrentCamera().getViewMatrix());
HeadViewMatrix4 = HeadViewMatrix4.inverse();
//Copy matrix to HeadViewMatrix array,
HeadViewMatrix4.toFloatArray(HeadViewMatrix_inv);
//Translation of viewMatrix
Matrix.multiplyMV(newPosition4, 0, HeadViewMatrix_inv, 0, posVec4, 0);
obj.setPosition(newPosition4[0], newPosition4[1], newPosition4[2]);
だから誰でも私を助けることができます。
ありがとう!私は私の360画像である世界の行列を見ることができるビュー行列をゲットしています。画像のビューを取得できるように現在の行列を削除するとその画像にオーバーレイを追加します。あなたの話しが自由であれば、スカイプやGmailで話すことができます。 –
こんにちは、これで私を助けてください。 –
あなたはビルボードをスクリーンスペースに入れたいので、スクリーンスペースでレンダリングするためにビュー変換も投影マトリックスも必要ありません。 Maticが提案した座標と非常に小さなz値を使用して、仮想カムの前でレンダリングします。 (つまり、xとyは標準化されたデバイス座標=スクリーンスペース座標になり、zは区間[近平面、遠方平面]のビット範囲の非線形奥行き値です。 – StarShine