2016年5月9日 星期一

/Noshiro/Maya - GLUT - 鍵入

Blog內容的複習

--------------------------------------------------------------
1.
下載範例 - jsyeh.org/3dcg10
win32.zip  = > exe檔
data.zip  = > obj mtl檔
glut32.dll
*source.zip  = >glm.h
                          glm.c
                          transformation.c
如圖:


-----------
2.
然後用其檔案在Code::Block 開啟
將必須的設定和檔案設定好
注意將data資料夾複製


-------------
3.
之後如果要用其中的模型  要鍵入 然後
使用一個程式來控制它
這裡是寫一個myOBJ.cpp來控制
程式碼如下

#include <GL/glut.h>
#include "glm.h"
GLMmodel * pmodel=NULL;

void display()
{
    glClearColor(1,0,0,0);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    if(!pmodel)
    {
        pmodel = glmReadOBJ("data/porsche.obj");
        if(!pmodel) exit(0);
        glmUnitize(pmodel);
        glmFacetNormals(pmodel);
        glmVertexNormals(pmodel,90.0);
    }

    glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);

    glutSwapBuffers();
}
int main(int argc,char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("GLM GREAT!!");
    glutDisplayFunc(display);

    glutMainLoop();
}

而這裡是用車子做為範例
還要glm檔(要改cpp)

------------
4.
將其打光,將LIGHT加入

有角度問題
程式碼:

#include <GL/glut.h>
#include "glm.h"
GLMmodel * pmodel=NULL;

void display()
{
    glClearColor(1,0,0,0);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    if(!pmodel)
    {
        pmodel = glmReadOBJ("data/porsche.obj");
        if(!pmodel) exit(0);
        glmUnitize(pmodel);
        glmFacetNormals(pmodel);
        glmVertexNormals(pmodel,90.0);
    }
    glPushMatrix();
    glRotatef(90,0,1,0);
    glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
    glPopMatrix();

    glutSwapBuffers();
}
GLfloat pos[]={0.0,0.0,-1.0,0.0};
int main(int argc,char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("GLM GREAT!!");
    glutDisplayFunc(display);

    //光的程式碼
    glLightfv(GL_LIGHT0,GL_POSITION,pos);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);
    glEnable(GL_DEPTH_TEST);

    glutMainLoop();
}

----------------------------------------------
之後作業為
基礎要求: 有你的模型(maya要匯出OBJ檔)、貼圖、聲音、互動 (這個在本週日5/15要完成) 

1. 畫面截圖 (下次才要貼 YouTube錄影)
2. 文字說明檔 (txt檔, 裡面說清楚你想做什麼? 期待做出的成果像什麼樣子?(給圖或給別人的網址來參考) 你完成了什麼? 程式怎麼操作? 想要老師再多教什麼來幫你? 有什麼可以加分的東西要強調?) 

3. 精簡程式壓縮檔 (含 source code、專案Project設定檔、必要的素材檔(聲音、圖片)、程式執行檔) (可不附 freeglut 或 opencv 2.1 的 dll檔, 老師會準備好) (請先試過可執行, 別放不必要/沒用的檔案)





沒有留言:

張貼留言