2022年4月12日 星期二

獻祭肝臟的電腦圖學課堂筆記_week08

 

Week07:模型

範例 http://jsyeh.org/3dcg10
1. 下載網頁中的data, win32, source

2. 將windows解壓縮, data.zip/data丟進解壓縮後的windows資料夾


3.開啟Light Material.exe

#期中考複習

```
glPushMatrix();//備份矩陣
    glTranslatef(x, y, z);//移動
    glRotatef(angle, x, y, z);//旋轉
    glScalef(x, y, z);//縮放
glPopMatrix();//還原矩陣
```

打光的程式碼: (1) 打光的陣列, (2) 打光的函式


TODO: 寫 Blog (ing)


## step01-4 從 GitHub 拿出上週的程式!!! week06_light 

git 下載你上週的程式

git clone 下來 或在你的專案資料夾裡 git pull

把 week06_light\main.cpp 用 Notepad++ 開起來, copy

paste 到 week08_model 的 main.cpp

執行,會看到打光的黃色茶壼



## step02-1 把 source.zip 看裡面的3個程式 glm.h glm.c lightmaterial.cpp, 拿裡面的程式來用,便能讀入3D模型


step02-1_把 source.zip 看裡面的3個程式 glm.h glm.c 研究 lightmaterial.cpp, 拿裡面的程式來用,便能讀入3D模型, 要include 雙引號的 glm.h 要把 glm.c改檔名成glm.cpp 並加入專案, 再用 Notepad++研究學習lightmaterial.c的程式內容 .zip


1. glm.h 我們要 include 它

2. glm.c 改檔名 glm.cpp 要加入專案

3. lightmaterial.cpp 用 Notepad++ 研究"學習"


TODO: Blog (ing)

```C++

#include <GL/glut.h> //角括號,是系統的include裡 的檔案

#include "glm.h" //雙引號,同目錄裡 的檔案

```


```C++

GLMmodel* pmodel = NULL; //指到GLMmodel模型的指標,NULL代表還沒好

```


```C++

void

drawmodel(void)

{

    if (!pmodel) {

pmodel = glmReadOBJ("data/soccerball.obj");

if (!pmodel) exit(0);

glmUnitize(pmodel);

glmFacetNormals(pmodel);

glmVertexNormals(pmodel, 90.0);

    }


    glmDraw(pmodel, GLM_SMOOTH);

}///用來畫3D模型的程式碼, "學習它"

```


## step02-2 畫 3D 模型檔

step02-2_畫 3D 模型檔,要把 glutSolidTeapot()改成畫 drawmodel(), 要在下方Build Log 找你的 working dir 工作目錄 好像是 Desktop的freeglut的bin目錄, 在裡面放 data資料夾, 以便讀取 data的 soccerball.obj 模型, 再把glm.cpp 及 glm.h 放在 week08_model 目錄中, 再 Add files 把 glm.cpp 加到專案中.zip


1. (用哪一行程式?) drawmodel() TODO: 在 display()取代 glutSolidTeapot()

2. (檔案在哪裡?) 要在放 working dir 工作目錄裡!!!!

3. (在 CodeBlocks下方 藍色 Build Log 說我們的工作目錄在...)

4. (in C:\Users\...\Desktop\freeglut\bin\ )

5. TODO: 剛剛下載的 下載\data.zip 裡面的 data資料夾,整包放在 "工作目錄"

6. TODO: 把 glm.h 還有 glm.c (檔名改成 glm.cpp) 放到 week08_model 目錄

7. 注意: 副檔名要看到才行!!!! 

8. TODO: 在 week08_model 的專案中, Add 同目錄裡面的 glm.cpp


## step02-3 複習問問題




沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

一.     一樣先安裝且設定好freeglut,OpecCV, 開啟CodeBlocks建立新專案 week11_gundam,                 把 MyGundam.zip下載解壓縮後的data資料夾放到freeglut/bin裡面 把week09_openc...