2012-01-05 13 views
0

私はありえないがpushmatrix、popmatrixを存在することを知っている、と行列スタックは、loadidentityは、私が2.0に対応するために、既存の1.0から1.1エンジンを書き換えることができますどのようにのAndroidのOpenGL ES 2.0 glpushmatrixなど

など翻訳して回転?どのように私は世界で私MODELLを翻訳することができ、それが動作していない

void glRotate(float x, float y, float z) { 
    Matrix.setRotateM(mMMatrix, 0, x, 1, 0, 0); 
    Matrix.setRotateM(mMMatrix, 0, y, 0, 1, 0); 
    Matrix.setRotateM(mMMatrix, 0, z, 0, 0, 1); 

    Matrix.multiplyMM(mMVPMatrix, 0, mVMatrix, 0, mMMatrix, 0); 
    Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mMVPMatrix, 0); 
} 

void glTranslate(float x, float y, float z) { 
    Matrix.translateM(mMMatrix, 0, x, y, z); 

    Matrix.multiplyMM(mMVPMatrix, 0, mVMatrix, 0, mMMatrix, 0); 
    Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mMVPMatrix, 0); 
} 

glTranslate:

は、私が最初にこれを試してみましたか?

glRotateはZで回転します。私のオブジェクトは、x、yはまったく動作しません。

+ マトリックススタック/ glpush/glpopmatrixの実装方法は?誰でもシーマを持っていますか?

答えて

0

試行使用

Matrix.setIdentityM(mMMatrix、0);

を使用して行列変換を計算します。

Matrix.setRotateM()の代わりにMatrix.rotateM()を使用します。

0

私は約1年前と同じ問題がありました。

私はそれらの機能のほとんどを一から書いていました。私はそれが血まみれの混乱と非常にエラーを起こしやすいことを保証することができます。

OpenGLゴールドブック(OpenGL ES 2.0プログラミングガイド)のsamplesディレクトリにある "esTransform.c"ファイルから、非常に有効な実装を開始することをお勧めします。

ブックはこの1つである: http://opengles-book.com/downloads.html

コードはここにグーグルコードからダウンロードすることができます。 http://code.google.com/p/opengles-book-samples/

私は本を買うために、とにかくあなたを示唆して、それはすぐにあなたのOpenGLなっES 2.0バイブルとそれはとてもうまくいっています。

最終的に、生産に入る前に、ソースコードの使用ライセンスを確認してください。