正規化された座標は -1 (左) と +1 (右) と -1 (下) と +1 (上) であることを知っています
このような:
しかし、これを適用した後:
私の onSurfaceChanged メソッドから
GLES20.glViewport(0, 0, width, height);
float ratio = (float) width / height;
Matrix.orthoM(mProjMatrix, 0, -ratio, ratio, -1, 1, 3, 7);
//The above line can be replaced with:
//Matrix.frustumM(mProjMatrix, 0, -ratio, ratio, -1, 1, 3, 7);
//But I get the same results with either frustumM or otrhoM
そして、これは私の onDrawFrame メソッドで
Matrix.setLookAtM(mVMatrix, 0, 0, 0, 3, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0);
(次に、mVMVPMatrix をカスタム クラスの draw メソッドに渡し、そこで回転および変換します)。
しかし、私の座標は変化しているようです - これは大まかに起こることです:
ご覧のとおり、x 座標が若干変更され、-1 と +1 が画面の端ではなくなりました (現在使用しているデバイスでは、外側の端が -1.7 と +1.7 になります)。
Y 座標は変更されません。
誰かが私が間違っているところを指摘していただければ幸いです。あるべきように-1から+1にする必要があります。
ありがとう