2017電腦圖學 Computer Graphics 授課教師: 葉正聖 銘傳大學資訊傳播工程系 每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
2017年6月30日 星期五
2017年6月5日 星期一
Week16 從前有一個下巴叫謝佩,的筆記(゚∀。)
上課目標:
- 在Excel中嘗試內差公式
- 利用Timer自動內插
- 鍵盤+滑鼠
1.開啟Excel並輸入0.1~1.0的數值在A行,並輸入公式「A2*??? + (1-A2)*???」
2. 拖拉公式至全部列
二、調整模型
1.宣告變數並設定角度
2.設定能用滑鼠和鍵盤控制
3.更改角度angle,不讓他變成鎖死的角度
三、利用茶壺來使用鍵盤和滑鼠控制角度
1.開起老師的程式碼,能使用1~4來控制
2.改程式碼,變成能夠存檔
程式碼:
if(key=='s' || key=='S'){
if(fout==NULL){///寫檔案的第3行, 如果是空的,第一次寫檔
fout=fopen("file.txt", "w+");///寫檔案的第4行, 真的去開檔案
printf("現在我產生一個file.txt的檔案在目錄裡面哦\n");
}
2017年5月22日 星期一
Week14 從前有一個下巴叫謝佩,的筆記(゚∀。)
2017年5月15日 星期一
Week13 從前有一個下巴叫謝佩,的筆記(゚∀。)
一、小考T-R-T關節旋轉
使用右手來判斷轉的方向
程式碼: (畫腿是由下往上)
glPushMatrix();
glTranslatef(0.4,-1.0,0); //(3)貼在正確的位置
glRotatef(angle,0,0,1); //(2) 對z軸作旋轉angle角度
glTranslatef(0.2,-0.5); //(1)把旋轉軸中心點,放在畫面的中間
drawLeg(); // (0)畫一個腿
glPopMatrix();
範例一:

範例二:

二、
(1) 安裝OpenCV2.1.0
(2)開啟檔案
(3) 隨意畫一張圖
(4) 對檔案按右鍵,選擇「Build options」

(5)進入介面後選擇「Search directories」,選擇「Compiler」然後Add檔案位置「C:\OpenCV2.1\include」
(6) 然後選旁邊的「Linker」,Add檔案位置「C:\OpenCV2.1\lib」
(7)到旁邊的「Linker settings」,選擇Add加入「cv210」、「cxcore210」、「highgui210」
(8)執行程式碼,出現剛才畫的圖
二、開起老師給的myEarth檔案,並出現一個旋轉的地球
2017年5月8日 星期一
Week12 從前有一個下巴叫謝佩,的筆記(゚∀。)
一、
2. 開啟GLUT Project,並複製老師的程式碼
3.新增程式碼:
float upX=0 , upY=1, upZ=0;
static void display(void)
angle+=0.01;
eyeX=cos(angle); eyeY=sin(angle);
4.修改ˋ新增
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60,1,0.001,10000);
///若沒有上面這行,茶壺會解體
glMatrixMode(GL_MODELVIEW);
5.做出可愛的會動的茶壺手臂
6.讓手臂出現的程式碼
程式碼:
glPushMatrix();
glTranslatef(0.3, 0,0); 掛上去
glRotatef(angle, 0,0,1); 旋轉
glTranslatef(0.3, 0,0); 定旋轉中心
<重複製作>
glPopMatrix();
2017年5月1日 星期一
Week11 從前有一個下巴叫謝佩,的筆記(゚∀。)
一、3D Exploration
1.打關鍵字「3D Exploration」,到網頁http://www.freespacemods.net/e107_plugins/download/download.php?view.129下載檔案
2.下載並安裝好 3D Exploration
3.到 http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/ 下載「data」,解壓縮到桌面
4.打開3D Exploration,並且點擊data資料夾匯入obj檔
5.Export Type 改成 Sample APP

6.用CodeBlocks開啟OpenGL檔,並remove掉原本的程式碼,點選add file加入soccerball程式碼
7. 註解掉太老舊的兩航程式碼
8.ˊ執行程式碼,會出現一顆自己放大縮小的足球
二、
1.套入模型,並存成obj檔


2.開啟老師給的檔案,並且把海豚的obj檔和MTL檔移進data資料夾裡,執行就可以看到海豚在轉
2017年4月24日 星期一
Week10 從前有一個下巴叫謝佩,的筆記(゚∀。)
一、試玩遊戲
1. 到 http://nehe.gamedev.net/tutorial/lessons_31__35/25010/ 下載lessons32
2. 解壓縮lessons32,並執行Lesson32應用程式,並試玩
3.最高到第九關,221分
4.開啟GLUT三個紅色東西的檔案,並將遊戲的音效加入裏頭
程式碼:
#include <mmsystem.h>
void mouse(int button, int state, int x, int y) /// 加入Mouse函數
{
PlaySound("C:\\Users\\user\\Downloads\\lesson32\\Lesson32\\Data/shot.wav",NULL,SND_ASYNC);
///把檔名位置裡頭的目錄的斜線,從\改成 \\ 或 /
}
glutMouseFunc(mouse); ///加入Mouse函數
5.
新增鍵盤函式,讓按下鍵盤的12345時可以發出do re mi fa so
程式碼:
void keyboard(unsigned char key , int x, int y)
{
if(key=='1') PlaySound("C:\\Users\\user\\Downloads\\music/do.wav",NULL,SND_ASYNC);
if(key=='2') PlaySound("C:\\Users\\user\\Downloads\\music/re.wav",NULL,SND_ASYNC);
if(key=='3') PlaySound("C:\\Users\\user\\Downloads\\music/mi.wav",NULL,SND_ASYNC);
if(key=='4') PlaySound("C:\\Users\\user\\Downloads\\music/fa.wav",NULL,SND_ASYNC);
if(key=='5') PlaySound("C:\\Users\\user\\Downloads\\music/so.wav",NULL,SND_ASYNC);
}
glutKeyboardFunc(keyboard);
6.加入MP3檔案 > 1.下載老師給的CMP3_MCI 放在專案目錄裡頭
2.加入程式碼使MP3檔可以撥放
程式碼:
#include "CMP3_MCI.h"
CMP3_MCI myMP3;
myMP3.Load("C:/Users/user/Downloads/IU.mp3");
myMP3.Play();
2017年4月17日 星期一
Week09 從前有一個下巴叫謝佩,的筆記(゚∀。)
一、
1. 先到http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/下載四個檔案
2.解壓縮並開啟
3. 嘗試開啟其他圖案
二、
1.解壓縮老師給的檔案,並自行繪製一個maya圖形,改成Object file


2.將圖套入老師給的檔案中,複製到data資料夾裡,並改程式碼的名稱
訂閱:
文章 (Atom)