2021年5月5日 星期三

08160581薑餅 圖學筆記 week11

 

2. 目標: 建出自己的 Transformation.exe
2.1. File-New-Project, GLUT專案 (設好 freeglut)
2.2. source.zip 裡的檔案加進去...
     glm.h 放同目錄 (桌面的week11_model專案目錄)
     glm.c 改檔名成 glm.cpp
     transformation.c 內容放到 main.cpp
2.3. 把 glm.cpp 放入專案
     左邊Project裡, Add檔案, glm.cpp加入



設定自己的transformation專案
把transformation專案開起來
4. 親手打造 20行程式 (copy啦)
4.1. #include "glm.h" //要雙引號用同目錄的.h檔, 使用外掛
4.2. GLMmodel * pmodel; //使用指標pmodel
4.3. 畫模式, 使用 glm系列的函式
     glmReadOBJ(), glmDraw() ....
   ====以上3個copy自 transformation.c, 以下copy你的github
4.4. void display()
4.5. int main()
做出來ㄌ
const GLfloat light_ambient[]  = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[]  = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 2.0f, 5.0f, -5.0f, 0.0f };
const GLfloat mat_ambient[]    = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[]    = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[]   = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };

    glEnable(GL_DEPTH_TEST);
    glEnable(GL_LIGHT0);
    glEnable(GL_NORMALIZE);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_LIGHTING);
    glLightfv(GL_LIGHT0, GL_AMBIENT,  light_ambient);
    glLightfv(GL_LIGHT0, GL_DIFFUSE,  light_diffuse);
    glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
    glLightfv(GL_LIGHT0, GL_POSITION, light_position);
    glMaterialfv(GL_FRONT, GL_AMBIENT,   mat_ambient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE,   mat_diffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR,  mat_specular);
    glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);

加上打光程式
用老師給的檔案開剛但模型










沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...