2022年4月12日 星期二

電腦圖學筆記 week08

筆記

 1.jsyeh.org/3dcg10 下載

    windows.zip=>下載\windows\Light Material.exe

    data.zip=>下載\windows\data\3D模型

    source.zip 

    執行Light Material.exe今天的主角(打光/模型)

##step01-1

複習上次上課時的課本打光範例,確定大家可以執行。裡面的Light Material.exe有用到"打光、模型"是今天的主角

##step01-2 實作看看!(GLUT的範例,source.zip的範例)

2.freeglut Moodle下載/安裝,lib\libglut32.a

    File-New-Project,GLUT專案,偷他的程式放 Notepad++

##step01-3了解GLUT範例 sample.cpp 177行 做甚麼事

TODO: 開blog

```c++

#include <GL/glut.h>

```

GLUT callback?會被GLUT呼叫的函式

我們寫的那些display()keyboard()mouse()motion()函式

```c++

//期終考試題目

glPushMatrix();//備份矩陣

    glTranslatef(x,y,z);//移動

    glRotate(角度,x,y,z);//轉動

    glScalef(x,y,z);//縮放(有50分)
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看裡面的glm.h glm.cpp LightMaterial.cpp,拿裡面的程式來用,便能讀入3D模型

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++

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

```

```c++

void

drawmodel(void)

{

    if(!pmodel){

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

        if(!pmodel) exit(0);

        glmUnitize(pmodel);

        glmFacetNormals(pmodel);

        glmVertexNormals(pmodel);


        }

        glmDraw(pmodel, GLM_SMOOTH)

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

```

##step02-2畫我們的模型

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

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

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

4.( 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 複習


##step03-1 講解各種模式,可以自己改,再把專案week05_model File-Save Project 存檔,放到GitHub裡

##step03-2 

沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

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