2014-07-05 2 views
0

공식 안드로이드 튜토리얼 : http://developer.android.com/training/graphics/opengl/index.html을 따라 OpenGL 2.0을 사용하기 시작했습니다. 기본적으로, 나는 약간의 색깔이있는 다각형을 사용하는 나의 게임을 위해 복사와 붙여 넣기를 대부분 할 수 있었다 : https://play.google.com/store/apps/details?id=de.timedout.mosaic.appAndroid (Galaxy S3)에서 OpenGL 문제 - 공식 자습서 용 폴리곤 그리지 않음

나는 여러 대의 장치에서 게임을 테스트했고 효과가 있었다. 그러나, 나는 또한 삼성 갤럭시 S3 (안드로이드 4.1.2)에서 그것을 테스트하고 거기에만 배경과 다각형을 보여줍니다. 그러나 오류 메시지가 표시되지 않습니다. 좋아, 다시 공식 튜토리얼로 돌아가서 Galaxy S3에서 OpenGL 1.0과 OpenGL 2.0의 코드를 테스트하여 동일한 결과를 얻었습니다. 배경은 그려지지만 폴리곤은 없습니다! 동시에 시장에서 나온 다른 OpenGL 벤치 마크도 장치에서 잘 돌아갑니다. 튜토리얼의 공식 코드에 결함이 있음을 의미합니까? - 전 OpenGL 초보자입니다. 누군가이 문제에 대한 힌트를 얻었습니까?

답변

2

좋아, 그 이유를 찾았습니다. 모양은 z = 0.0f 평면에 배치됩니다. I 카메라가 다각형과 같은 Z = 0.0f를 평면에 있다고 이해

Matrix.setLookAtM(mViewMatrix, 0, 0, 0, -3, 0f, 0f, 0f, 0f, 1.0f, 0.0f); 

:로

static float triangleCoords[] = { // in counterclockwise order: 
     0.0f, 0.622008459f, 0.0f, // top 
     -0.5f, -0.311004243f, 0.0f, // bottom left 
     0.5f, -0.311004243f, 0.0f // bottom right 
}; 

카메라

정의된다. 일부 장치에서는 개체를 표시하지만 Galaxy S3에서는 GPU가 해당 장치를 표시하지 않습니다.

간단한 해결책은 카메라를 뒤로 또는 개체를 전경으로 약간 이동하는 것입니다. 나는 물건을 약간 움직이기로했습니다 :

static float triangleCoords[] = { // in counterclockwise order: 
     0.0f, 0.622008459f, 0.00001f, // top 
     -0.5f, -0.311004243f, 0.00001f, // bottom left 
     0.5f, -0.311004243f, 0.00001f // bottom right 
}; 

이제 모든 장치에서 매력처럼 작동합니다. 나는 이것이 동일한 문제를 가진 사람을 도울 수 있기를 바랍니다.