筆記
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
沒有留言:
張貼留言