【问题标题】:Jogl animator always says FPS is 0Jogl 动画师总是说 FPS 是 0
【发布时间】:2013-05-05 07:44:44
【问题描述】:

我想在我的程序中将 FPS 打印到屏幕上。从getLastFPS 返回的数字始终为 0。我查看了FPSCounter.html#getLastFPS() 和其他一些示例,我相信这是调用获取 fps 的正确方法。我知道 fps 计数器处于活动状态,因为 getTotalFPSFrames() 返回一个增加的值。 getTotalFPSDuration() 总是说 0。

为什么会出错,我该如何解决?

public void display(GLAutoDrawable drawable) {

    float time=drawable.getAnimator().getLastFPS();

    GL2 gl =drawable.getGL().getGL2();
    gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);

    gl.glPushMatrix();
    gl.glMatrixMode(GL2.GL_PROJECTION);
    gl.glPushMatrix();
    gl.glLoadIdentity();
    int[] viewport =new int[4];
    gl.glGetIntegerv (GL2.GL_VIEWPORT, viewport,0);
    glu.gluOrtho2D (0,viewport[2], viewport[3], 0);
    gl.glDepthFunc(GL2.GL_ALWAYS);
    gl.glColor4f(1, 0, 0,1);
    gl.glRasterPos2d(30,30);
    glut.glutBitmapString(GLUT.BITMAP_HELVETICA_18, "FPS: "+time);
    gl.glDepthFunc(GL2.GL_LESS);
    gl.glPopMatrix();
    gl.glMatrixMode(GL2.GL_MODELVIEW);
    gl.glPopMatrix();

    //other 3d rendering
}

【问题讨论】:

    标签: java opengl jogl frame-rate


    【解决方案1】:

    您需要设置 FPS 计数器更新的频率。因此,例如在您的 init() 方法中添加以下内容:

    drawable.getAnimator().setUpdateFPSFrames(3, null);
    

    然后drawable.getAnimator().getLastFPS(); 将每 3 帧提供新的 FPS 计数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-29
      • 2013-01-02
      相关资源
      最近更新 更多