Java 在Android GLES 1.0中渲染时,对象会抖动。

Java 在Android GLES 1.0中渲染时,对象会抖动。,java,android,opengl-es,Java,Android,Opengl Es,我在修复游戏引擎中的bug时遇到了一些问题 我的问题是,当我在场景中移动相机时,我看到我的hud元素在晃动。 仅当我的相机通过手指滑动移动时,错误才会出现。 当我在更新方法中改变它的位置时,一切似乎都很好 Render方法(从主活动中的onDrawFrame()调用): 移动方法(从主活动中的onTouchEvent调用): 我认为这是重要的代码。但我看不出我能改变什么。 如果有人有任何想法,请分享;) 就个人而言,我会将drawScene更改为 public void drawScene(GL

我在修复游戏引擎中的bug时遇到了一些问题

我的问题是,当我在场景中移动相机时,我看到我的hud元素在晃动。 仅当我的相机通过手指滑动移动时,错误才会出现。 当我在更新方法中改变它的位置时,一切似乎都很好

Render方法(从主活动中的onDrawFrame()调用):

移动方法(从主活动中的onTouchEvent调用):

我认为这是重要的代码。但我看不出我能改变什么。
如果有人有任何想法,请分享;)

就个人而言,我会将drawScene更改为

public void drawScene(GL10 gl)
{
    // Clear scene
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
    // Move left top corner of camera to specified point
    gl.glTranslatef(-camera.getX(), screenManager.getScreenHeight() - camera.getY(), 0f);
    // Render all objects from the scene
    root.renderObjects(gl);
    // Fixed position for HUD elements
    gl.glLoadIdentity();
    // Render hud to the screen
    hud.renderObjects(gl);
    gl.glLoadIdentity();
}
看看是否有帮助。问题可能是在renderObject期间更改摄影机位置(例如,从外部线程),甚至浮动不够精确

public void onPointerMove(TouchPointer pointer, TouchPointer historicalPointer)
{
    Point p = new Point(pointer.getRawTouchPoint());
    p.subtract(historicalPointer.getRawTouchPoint());
    camera.moveBy(p);
}
public void drawScene(GL10 gl)
{
    // Clear scene
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
    // Move left top corner of camera to specified point
    gl.glTranslatef(-camera.getX(), screenManager.getScreenHeight() - camera.getY(), 0f);
    // Render all objects from the scene
    root.renderObjects(gl);
    // Fixed position for HUD elements
    gl.glLoadIdentity();
    // Render hud to the screen
    hud.renderObjects(gl);
    gl.glLoadIdentity();
}