2013-05-21 26 views
0

我正在使用C++和openGl製作公寓。我只是在繪圖功能中聲明瞭一些基本的牆壁,屋頂和地板,當然所有的東西都可以工作,但是代碼很雜亂,這樣添加傢俱當然會非常痛苦。所以我問如何組織我的對象和格式繪圖功能?使用OpenGl組織C++中的公寓建模代碼

下面是當前的代碼:

// Floor and roof of room 1 
glBegin(GL_QUADS); 
    glNormal3f(0.0, 1.0, 0.0); 
    glColor3f(0.0, 1.0, 1.0); 
    glVertex3f(0.0, 0.0, 0.0); 
    glVertex3f(1.0, 0.0, 0.0); 
    glVertex3f(1.0, 0.0, 1.0); 
    glVertex3f(0.0, 0.0, 1.0); 

    glNormal3f(0.0, -1.0, 0.0); 
    glColor3f(0.0, 1.0, 0.0); 
    glVertex3f(0.0, 1.0, 0.0); 
    glVertex3f(1.0, 1.0, 0.0); 
    glVertex3f(1.0, 1.0, 1.0); 
    glVertex3f(0.0, 1.0, 1.0); 
glEnd(); 

// Walls 
glBegin(GL_QUAD_STRIP); 
    glNormal3f(1.0, 0.0, 0.0); 
    glColor3f(1.0, 1.0, 1.0); 

    glVertex3f(0.0, 0.0, 0.0); 
    glVertex3f(0.0, 1.0, 0.0); 

    glColor3f(1.0, 0.0, 0.0); 

    glVertex3f(0.0,0.0,1.0); 
    glVertex3f(0.0,1.0,1.0); 

    glNormal3f(0.0, 0.0, -1.0); 
    glColor3f(0.0, 0.0, 1.0); 

    glVertex3f(1.0, 0.0, 1.0); 
    glVertex3f(1.0, 1.0, 1.0); 

    glNormal3f(-1.0, 0.0, 0.0); 
    glColor3f(0.5, 0.0, 0.5); 

    glVertex3f(1.0, 0.0, 0.0); 
    glVertex3f(1.0, 1.0, 0.0); 
glEnd(); 

And so on for room 2 and door spots.. 

任何閱讀有關此主題的地方呢?

回答

1

您可以使用3D建模軟件,例如→Blender來定義您的幾何圖形等,然後我建議使用→Assimp加載導出的模型。還建議避免舊的固定功能管道 - 編寫自己的小場景圖引擎並管理您的矩陣和3d數學與→GLM