2018年4月13日 星期五

Week07 欣儀的blog~~~

主題:打光
Part1 打光範例
1.先到jsyeh.org/3dcg10下載data、win32和glut32.dll

2.將windows資料夾解壓縮,然後把data和glut32.dll兩個丟進windows資料夾

3.點選Light Material就能開啟打光範例檔

 4.左上方的框格按右鍵可以更換模型

5.左下角框格為不同設定好的材質,或是也可以自己在右邊的地方調整數值

6.框起來的部分是調整燈光的位置

Part2 複習期中考考題
glPushMatrix();//備份矩陣
    glTranslatef(x,y,z);//移動
    glRotatef(angle,x,y,z);//轉動
    glScalef(x,y,z);//放大縮小
    glBegin(GL_POLYGON);//開始畫
        glColor3f(r,g,b);//顏色
        glNormal3f(nx,ny,nz);//(打光的)法向量
        glTexCoord2f(tx,ty);//貼圖座標
        glVertex3f(x,y,z);頂點
    glEnd();//結束畫
glPopMatrix();//還原矩陣

Patr3 作業三實作
1.先建立一個GLUT專案,week07_hw3

2.開頭先寫上兩行程式碼,程式碼如下:
#include "glm.h"///外掛,在source資料夾裡面
GLMmodel * pmodel=NULL;///宣告指標

3.要畫一台車子,因為我們的#include "glm.h"需的東西在source資料夾裡,所以要到jsyeh.org/3dcg10
下載source

4.將source資料夾裡的glm.c和glm.h兩個複製貼上到我們的week07_hw3的專案檔

5.把glm.c的附檔名改成glm.cpp

6.回到codeblocks增加file把glm.cpp加入

7.到source資料夾在transforms按右鍵選Notepad++開啟

8.接著搜尋關鍵字glm的第三個,就是我們要複製的程式碼,是畫出一台保時捷車的模型

9.在codeblocks的glPushMatrix()和glPopMatrix()中間的glutSolidConee註解掉,貼上剛剛複製的程式碼,程式碼如下:
glPushMatrix();
        glTranslated(0,1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        //glutSolidCone(1,1,slices,stacks);
        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);
 glPopMatrix();

10.將一開始下載的data資料夾複製到freeglut->bin

11.回到codeblocks執行,就能看到一台藍色的保時捷

沒有留言:

張貼留言