2014-04-23 2 views
0

opengl을 사용하여 android에서 openstreetmap 데이터를 표시하고 있습니다. 비교적 큰 데이터 파일 (> 10Mo)로 작업하는 동안 내 확대/축소 및 팬 기능이 원활하게 작동하지 않습니다. 느린. 렌더러 내부 나는 scaleFactor와와 X, 내가 모든 것을 매우 작은 데이터 파일OpenGL es2 느리게 확대/축소 및 패닝

와 완벽하게 작동 말했듯이 패닝에 필요한 y 위치를 얻기 위해 glsurfaceview에 scalegesturedetector를 사용


    echelle=OsmGLSurfaceView.mScaleFactor; 
    Matrix.orthoM(mProjectionMatrix,0, left/ (float)echelle, right/ (float)echelle,bottom/(float)echelle,top/ (float)echelle,1,25); 
    Matrix.translateM(mProjectionMatrix,0,6*OsmGLSurfaceView.mPosX/(float)echelle,-6*OsmGLSurfaceView.mPosY/(float)echelle,0); 
    Matrix.multiplyMM(mMVPMatrix, 0, mProjectionMatrix, 0, mViewMatrix, 0); 

    osmf.draw(mMVPMatrix); 

 

코드 줄이

어디서 이런 오류가 발생합니까?

+0

프로필을 작성하고 여기에 어떤 기능이 최고의 timeconsumer인지 여기에 게시하십시오. – MaM

답변

0

드디어 전 얼마 전 대답을 얻었습니다. 누군가 언젠가는 도움이 될지도 모릅니다. 확대/축소 기능에 문제가 없었으므로 draw() 호출 수가 많아서 렌더링 속도가 느린 경우가있었습니다. 따라서 OpenGL ES 2로 프로그래밍하는 유일한 방법은 draw() 메소드를 최소한으로 호출하여 CPU와 GPU 간의 데이터 교환을 줄이는 것입니다. 이렇게하면 응용 프로그램이보다 빠르게 수행됩니다. 빠른 렌더링을 얻으려면 GL_LINE 또는 GL_POINT와 같은 OpenGL 루틴을 사용해야합니다.

관련 문제