【问题标题】:Opengl es2 Zooming and Panning SlowlyOpengl es2 缩放和平移缓慢
【发布时间】:2014-08-19 22:02:04
【问题描述】:

我正在使用 opengl 在 android 上显示 openstreetmap 数据,到目前为止一切正常,但是在使用相对较大的数据文件 (>10Mo) 时,我的缩放和平移功能不能顺利运行,它太慢了。 在渲染器中我有这些代码行

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);

我在 glsurfaceview 中使用 scalegesturedetector 来获取平移所需的比例因子和 x、y 位置 正如我所说,一切都非常适合非常小的数据文件

我哪里弄错了?

【问题讨论】:

  • 请进行分析并在此处发布最耗时的功能。

标签: android opengl-es


【解决方案1】:

不久前我终于得到了答案,也许有一天它会对某人有所帮助。缩放或平移功能没有任何问题,问题在于 draw() 调用的数量,这确实导致渲染速度非常慢。因此,使用 OpenGL ES 2 进行编程时唯一的规则是对 draw() 方法的调用最少,这将减少 CPU 和 GPU 之间的数据交换,这样做只会加快您的应用程序。您确实需要尽最大努力使用 GL_LINE 或 GL_POINT 等 OpenGL 例程来获得快速渲染!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    相关资源
    最近更新 更多