如何优化3D显示块

时间:2015-07-11 21:25:14

标签: java block lwjgl minecraft

我正在尝试开发类似的Minecraft 这是我工作的截图:
screenshot
渲染是令人满意的,但是当我看着我的FPS时,它太可怕了:90 FPS!我正在渲染4 * 4 *块16 * 16 * 16块 这真的很糟糕...

为了渲染我的世界,我渲染我的块,渲染它们的块 我像这样渲染我的积木:

public void renderTop(){
    glTexCoord2f((0)/NBFACES+offs,(0+this.type)/NBBLOCKS+offs); glVertex3f(this.x       , this.y+TAILLE, this.z       );
    glTexCoord2f((1)/NBFACES-offs,(0+this.type)/NBBLOCKS+offs); glVertex3f(this.x+TAILLE, this.y+TAILLE, this.z       );
    glTexCoord2f((1)/NBFACES-offs,(1+this.type)/NBBLOCKS-offs); glVertex3f(this.x+TAILLE, this.y+TAILLE, this.z+TAILLE);
    glTexCoord2f((0)/NBFACES+offs,(1+this.type)/NBBLOCKS-offs); glVertex3f(this.x       , this.y+TAILLE, this.z+TAILLE);
}

public void renderBottom(){
    glTexCoord2f((0+1)/NBFACES+offs,(0+this.type)/NBBLOCKS+offs); glVertex3f(this.x       , this.y       , this.z+TAILLE);
    glTexCoord2f((1+1)/NBFACES-offs,(0+this.type)/NBBLOCKS+offs); glVertex3f(this.x+TAILLE, this.y       , this.z+TAILLE);
    glTexCoord2f((1+1)/NBFACES-offs,(1+this.type)/NBBLOCKS-offs); glVertex3f(this.x+TAILLE, this.y       , this.z       );
    glTexCoord2f((0+1)/NBFACES+offs,(1+this.type)/NBBLOCKS-offs); glVertex3f(this.x       , this.y       , this.z       );
}

 ...

如果他们没有邻居的话,我会面对每张脸 因此,如果我走过地面,我将看不到其他草地下方的街区
你知道如何优化我的渲染吗?那太弱了: - /
THX。

1 个答案:

答案 0 :(得分:0)

尝试使用背面剔除,截头剔除。这应该会以指数方式提升FPS。