小编Jor*_*nes的帖子

简单的JOGL游戏在gtx 470上运行得非常慢

我一直在为我的计算机科学课做游戏.为简单起见,我刚刚制作了一组迷你游戏.为了好玩,我尝试在3d中制作经典Snake游戏的版本.物理和碰撞检测工作正常,在学校计算机(中等质量的Mac)上游戏运行非常顺利.但是,在我的家用电脑上,它以8 fps运行.我的家用计算机在带有最新驱动程序的gtx 470上运行,程序中的查询确认代码在带有opengl 4.2的gtx 470上运行.

这是渲染代码(在GLCanvas中运行)

 GL2 gl = ( drawable.getGL()).getGL2();
     /*System.out.println(gl.glGetString(GL.GL_VENDOR)+"\n"+
                gl.glGetString(GL.GL_RENDERER)+"\n"+
                gl.glGetString(GL.GL_VERSION));*/

     gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
    //Init camera
    gl.glMatrixMode(GL2.GL_PROJECTION);
    gl.glLoadIdentity();

    // Perspective.
    float widthHeightRatio = (float) getWidth() / (float) getHeight();
    glu.gluPerspective(75, widthHeightRatio, 1, 2000);

    double dX, dY, dZ;
    if (player.locs.size()==0)
    {
        dX=0.1*player.vel.x;
        dY=0.1*player.vel.y;
        dZ=0.1*player.vel.z;
    }
    else
    {
        dX=player.xHead-player.locs.get(0).x;
        dY=player.yHead-player.locs.get(0).y;
        dZ=player.zHead-player.locs.get(0).z;

    }
    player.up.normalizeDist();
    double xPos=4*dX-0.1*player.up.x;
    double yPos=4*dY-0.1*player.up.y;
    double zPos=4*dZ-0.1*player.up.z;
    double desiredDist=0.2;
    double totalDist=Math.sqrt(xPos*xPos+yPos*yPos+zPos*zPos);
    xPos=xPos*desiredDist/totalDist;
    yPos=yPos*desiredDist/totalDist;
    zPos=zPos*desiredDist/totalDist;
    double camX=player.xHead-xPos;
    double camY=player.yHead-yPos;
    double camZ=player.zHead-zPos;
    glu.gluLookAt(xWidth*(camX), yWidth*(camY),zWidth*(camZ), xWidth*(player.xHead+2*dX), yWidth*(player.yHead+2*dY), zWidth*(player.zHead+2*dZ), player.up.x, player.up.y, -player.up.z); …
Run Code Online (Sandbox Code Playgroud)

java opengl jogl

3
推荐指数
1
解决办法
513
查看次数

标签 统计

java ×1

jogl ×1

opengl ×1