2008-12-02 91 views
4

我正在使用OpenGL ES進行2D遊戲。我正在使用正交投影,因爲它使2D的東西變得簡單。現在我想創建一個簡單的3D效果,比如繞Y軸旋轉一個精靈(就像封面流)。如果我理解正確,那麼在正投影中就不能這樣做。有沒有可能做到這一點,而不會搞亂其餘的代碼?像在框架中間切換投影,將當前幀圖像作爲背景並在背景上方繪製3D東西?使用OpenGL的2D遊戲中的3D效果

回答

6

是的,這是可能的:只需保存舊的投影矩陣,加載一個新的投影矩陣,並在完成後恢復舊投影矩陣。

void DrawScene() 
{ 
    Draw2DStuff(); 

    glMatrixMode(GL_PROJECTION); 
    glPushMatrix(); // Save old projection matrix 
    gluPerspective(...); // Load new projection matrix 

    Draw3DStuff(); 

    glMatrixMode(GL_PROJECTION); 
    glPopMatrix(); // Restore old projection matrix 
} 

只是要小心深度緩衝 - 2D和3D之間切換時的渲染,以便得到正確繪製的東西,你可能需要玩的深度緩衝設置。