2012-01-05 3 views
0

나는 밤은이 pushmatrix, popmatrix 존재 알고, 매트릭스 스택, loadidentity가, 나는 2.0와 함께 작동하는 기존 1.0-1.1 엔진을 다시 쓸 수있는 방법안드로이드 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 Gold Book (OpenGL ES 2.0 프로그래밍 안내서)의 samples 디렉토리에있는 "esTransform.c"파일에서 매우 효과적인 구현을 시작하는 것이 좋습니다.

이 책

은이 하나 가 http://opengles-book.com/downloads.html

이 코드는 여기 구글 코드에서 다운로드 할 수 있습니다 http://code.google.com/p/opengles-book-samples/

내가 책을 구입하는 당신을 어쨌든 제안이 될 빠르게 OpenGL을 ES 2.0 성경과 그것은 아주 잘 끝났습니다.

결론적으로 말하면 프로덕션 환경에 들어가기 전에 소스 코드의 사용 라이센스를 확인하십시오.