到 http://jsyeh.org/3dcg10 下載 data.zip、windows.zip、glut32.dll
將 data.zip 和 windows.zip 解壓縮
將解完壓縮的data資料夾和glut32.dull複製並貼到剛剛解完壓縮的wondows資料夾裡
打開 Light Material.exe
在左上角按右鍵,可以更換不同的模型
在左下角按右鍵,可以更換不同的Materials
右邊紅色框框內為打光的程式碼,我們可以用滑鼠將數值調整去看
(1) GLfloat light_pos[]={左/右,上/下,前/後,平行光/點光源} ///0為平行光,1為點光源
(2) 上面幾行程式碼是物體打什麼光
(3) 下面幾行程式碼是物體本身的顏色
Week 07 - Part 2 - 作業的範例
下載在網頁上下載的source.zip並解壓縮,打開解完壓縮的資料夾複製glm.c和glm.h兩個檔案
複製到今天建立的專案資料夾
將複製到專案資料夾的glm.c重新命名
將副檔名改為cpp,檔案名稱變成glm.cpp
回到codeblocks再專案裡面新增剛剛的glm.cpp檔案
在一開始加上兩行程式碼
#incldue "glm.h"///外掛,source.zip裡面
GLMmodel * pmodel = NULL;///宣告指標
對其中一個模型動手腳來看看,執行結果,右下圖藍色框框可以看見圖形被我們改成茶壺
glPushMatrix();
glTranslated(0,1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glutSolidTeapot(1);///改畫一個大小為1的茶壺
glPopMatrix();
接著打開用NotePad++打開source資料夾裡面的Transformation
利用搜尋功能,搜尋"glm"的第三個,並將紅色框框內的程式碼複製
回到CodeBlocks,把剛剛複製的程式碼,貼上,由下圖紅色框框可見,茶壺又被我們改成一台車子
glPushMatrix();
glTranslated(0,1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
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();
接著將不需要的模型刪掉,只留下我們要的車子,但卻發現,變成一台紅色平面的車子
對程式碼稍微做些修改,就可以看到一台只有正面的車子























沒有留言:
張貼留言