(1)組合出機器人
(2)做出可轉動的關節
(3)錄製動作
(4)回家作業:機器人
課堂:
1.使用3D Exploration
(1)下載3D Exploration (p.s 不要在家下載,第二次使用要收費)
(2)下載小葉老師的檔案(jsyeh.org/3dvg10)--->data.zip中有3D模型
(3)用3D Exploration開啟
(4)File-->Save as -->選取Open GL code(*.cpp)
(5)打開codeblocks-->OpenGLUT-->Remove main file-->讀入剛剛存取得cpp檔案
(6)執行
2017電腦圖學 Computer Graphics 授課教師: 葉正聖 銘傳大學資訊傳播工程系 每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
2017年5月30日 星期二
2017年5月1日 星期一
Week 08 HMTse的上課筆記
用codeblocks 開檔
把這兩行註解掉
/// (LPLOGPALETTE) lpPalette = (LPLOGPALETTE)HeapAlloc (hHeap, 0,
/// sizeof (LOGPALETTE) + (nColors * sizeof (PALETTEENTRY)));
/// (LPLOGPALETTE) lpPalette = (LPLOGPALETTE)HeapAlloc (hHeap, 0,
/// sizeof (LOGPALETTE) + (nColors * sizeof (PALETTEENTRY)));
2017年4月24日 星期一
Week08陳冠霖的上課筆記
本周課程:
先Google: NeHe Lesson32,到網站內最下面,下載Visual C++的範例。
解壓縮到桌面,點開資料夾,點擊lesson32.exe。
玩遊戲,要有聲音,Esc退出。
新增GLUT project。
在GLUT project增加程式碼,讓project檔能用滑鼠發出聲音,以下三步驟:
第一步:加入#include <mmsystem.h>標頭,用來乎交多媒體檔案。
第二部:增加滑鼠函式mouse, void mouse(int button, int state, int x,int y)//括號內(滑鼠是按鈕,x、y代表位置)
{
PlaySound("C:\\Users\\user\\Desktop\\Lesson32\\Data/shot.wav",NULL,SND_ASYNC);
} ///函式裡 PlaySound播放聲音,在""之間C:\\Users\\user\\Desktop\\Lesson32\\Data/shot.wav是資料來源,NULL代表沒有在目錄底下,SND_ASYNC代表非同步,圖案再轉音樂在播。///附註:要把檔案裡面的目錄裡面的斜線,從 \ 變成 \\ 或著變成 / 。
第三部: glutMouseFunc(mouse);///用來呼叫滑鼠函式mouse。
在GLUT project增加程式碼,讓project檔能用鍵盤發出聲音,不同按鍵發出不一樣的聲音,所以設定五個按鍵發出Do Re Mi Fa So,以下兩步驟:
第一部:增加鍵盤函式keyboard, void keyboard(unsigned char key,int x, int y)///括號內(鍵盤中的哪個鍵,x、y代表位置)
{
if(key=='1') PlaySound("Do.wav",NULL,SND_ASYNC);
if(key=='2') PlaySound("Re.wav",NULL,SND_ASYNC);
if(key=='3') PlaySound("Mi.wav",NULL,SND_ASYNC);
if(key=='4') PlaySound("Fa.wav",NULL,SND_ASYNC);
if(key=='5') PlaySound("So.wav",NULL,SND_ASYNC);
}///if(key=='?'), if用來判斷鍵盤括號裡key是否正確,正卻發出聲音,錯誤則沒聲音, PlaySound播放聲音,在""之間是資料來源或資料名子,NULL代表沒有在目錄底下,SND_ASYNC代表非同步。///附註:要把檔案裡面的目錄裡面的斜線,從 \ 變成 \\ 或著變成 / 。
第二部: glutKeyboardFunc(keyboard);///用來呼叫鍵盤函式keyboard。
將聲音的檔案放到freegult檔案中的bin資料夾裡,因為GLUT project裡面一定會載入freegult檔案。
在GLUT project增加程式碼,讓project檔能發出MP3, 以下四步驟。
第一部;加入#include "CMP3_MCI.h"標頭。///""代表放在同一個程式碼的目錄中,是自己設定系統沒有,<>代表系統原來就有設定。
第二部:CMP3_MCI mymp3;///宣告一個變數,叫mymp3。
第三部: mymp3.Load("C:\\Users\\user\\Desktop/aii.mp3");///載入mp3檔案,在"C:\\Users\\user\\Desktop/aii.mp3"之間是資料來源。///附註:要把檔案裡面的目錄裡面的斜線,從 \ 變成 \\ 或著變成 / 。
第四部:mymp3.Play();///播放mp3。
Week08 20170424 芷萱的課堂筆記
作業一:
Google : NeHe Lesson 32
void keyboard(unsigned char key,int x,int y) { if(key=='1') PlaySound("do.wav",NULL,SND_ASYNC); if(key=='2') PlaySound("re.wav",NULL,SND_ASYNC); if(key=='3') PlaySound("mi.wav",NULL,SND_ASYNC); if(key=='4') PlaySound("fa.wav",NULL,SND_ASYNC); if(key=='5') PlaySound("so.wav",NULL,SND_ASYNC); }
- 玩射擊遊戲
Google : NeHe Lesson 32
- 開始試玩遊戲
開啟CodeBlocks/New/Project..
利用GLUT專案

- 增加部分程式 讓視窗能出射擊聲
- 增加void keyboard{} 利用鍵盤發出鋼琴聲wav檔
void keyboard(unsigned char key,int x,int y) { if(key=='1') PlaySound("do.wav",NULL,SND_ASYNC); if(key=='2') PlaySound("re.wav",NULL,SND_ASYNC); if(key=='3') PlaySound("mi.wav",NULL,SND_ASYNC); if(key=='4') PlaySound("fa.wav",NULL,SND_ASYNC); if(key=='5') PlaySound("so.wav",NULL,SND_ASYNC); }

- 增加部分程式碼 讓視窗可以跑出mp3檔
Week08 林憶蓮的上課筆記
1.玩遊戲 射擊(確認有聲音)
Google: NehHe Lesson 32
下載 Lesson 32最下面
Visual C++ 的範例
解壓縮桌面 \Lesson32\lesson32.exe應用程式
Esc 退出遊戲
2.在Lesson32.cpp中 用PlaySound(...)
模仿:File-New-Projects. GLUT
-----------------------------------------------------------------------------------------------------------------------
加程式碼(製造點擊有聲音)
以下為片段
static void idle(void)
{
glutPostRedisplay();
}
const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };
const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };
#include <mmsystem.h>
void mouse(int button,int state,int x,int y)
{
PlaySound("C:\\Users\\user\\Desktop\\Lesson32\\data/shot.wav",NULL,SND_ASYNC);
///要把檔名裡面的目錄裡面的斜線,從\變成(A)\\ or (B) /
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitWindowSize(640,480);
glutInitWindowPosition(10,10);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutReshapeFunc(resize);
glutDisplayFunc(display);
glutKeyboardFunc(key);
glutIdleFunc(idle);
glutMouseFunc(mouse); //Add a mouse Function
glClearColor(1,1,1,1);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glEnable(GL_LIGHT0);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
glutMainLoop();
return EXIT_SUCCESS;
}
-----------------------------------------------------------------------------------------------------------------------
老師截圖參考
HW1:
HW2:
HW3:
訂閱:
文章 (Atom)






























































