2015-07-11 18 views
0

我正在努力開發一個像我的Minecraft。
這是我工作的截圖:
screenshot
渲染效果令人滿意,但是當我看着我的FPS時,這太可怕了:90 FPS!我正在銷售4 * 4 * 16 * 16 * 16塊的塊。
這真的很不好...

爲了渲染我的世界,我渲染了我的塊,它們渲染了它們的塊。
我渲染我的塊這樣的:每個面

如何優化3D顯示塊

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

... 

Actualy,我渲染塊面,如果他們沒有得到鄰居。
所以,如果我穿過地面,我不會看到其他草塊下面的塊。

你知道我該如何優化我的渲染?這太弱了: -/
Thx。

回答

0

嘗試使用背面剔除,frustrum剔除。這應該可以成倍提高FPS。

+0

謝謝,背面剔除已經在我這裏解釋。但是我不發展最後的選擇(我會)。遮擋剔除也可能很酷:-) – Antoine