Seven 同學在論譠討論怎樣顯示MD2, 正好我以前在PSP 上有個MD2的類,我把它移植了過來,給大家參考一下或拿來玩玩。
在Wrapper 里,我也加了兩個新功能,一個是 Enable2D(),一個是 Enable3D(),方便我們混合2D/3D。
|  复制代码 
void Enable2D(){    int width = SCREEN_WIDTH;    int height = SCREEN_HEIGHT;        glViewport      (0, 0, width, height);        glMatrixMode    (GL_PROJECTION);    glLoadIdentity  ();    glOrthof(0, (float)width, 0, (float)height, 0, 100);    glMatrixMode    (GL_MODELVIEW);    glLoadIdentity();        glEnable                (GL_BLEND);    glEnable                (GL_TEXTURE_2D);    glDisable                (GL_CULL_FACE);    glDisable                (GL_DEPTH_TEST);    glDisable                (GL_LIGHTING);    //glDisableClientState    (GL_NORMAL_ARRAY);    }void Enable3D(){        int width = SCREEN_WIDTH;    int height = SCREEN_HEIGHT;    float aspect = (float)width/(float)height;        glViewport          (0, 0, width, height);    glScissor           (0, 0, width, height);        //glMatrixMode        (GL_MODELVIEW);    //glLoadIdentity      ();        glMatrixMode        (GL_PROJECTION);    glLoadIdentity      ();    InitPerspective     (60.f, aspect, 0.1f, 1000.f);        glMatrixMode        (GL_MODELVIEW);    glLoadIdentity      ();            glEnable           (GL_CULL_FACE);    //glDisable            (GL_BLEND);    glEnable            (GL_DEPTH_TEST);    //glEnable            (GL_LIGHTING);    //glEnableClientState (GL_NORMAL_ARRAY);        //glEnable(GL_NORMALIZE);    } | 
因為我們沒有用lighting,我把Normal Array 暫時弄走了。
這個例子,每格8秒會換到另一個動作。人的模型是732 面,槍是102面。