2024電腦圖學二甲
2024電腦圖學 Computer Graphics
人智二甲
授課教師: 葉正聖 銘傳大學人工智慧應用學系
每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
2024年6月19日 星期三
2024年6月13日 星期四
week12
##week12-1_glm_gundam_handA_handB
0.安裝freeglut,把lib\libfreeglut.a複製成libglut32.a
1.File-New-Project,GLUT專案week12-1_glm_gundam_handA_handB
2.先安裝openCV,CodeBlocks要重開
3.要改環境Search directories->Compiler 增加 C:\OpenCV2.1\include
4.Search directories->Linker 增加 C:\OpenCV2.1\lib
Linker settings-> 增加 cv210、cxcore210、highgui210
5.載git hub把第11周的11-2 抓下來就可以了
6.myBody();刪掉,改成glutSolidSphere(0.1,30,30);
7.glRotatef(angle++,0,0,1);把旋轉刪掉不讓轉動
8.glRotatef(angle++,0,0,1);加回這個讓他轉動
9.把handB的程式碼加進去
10.改個glTranslatef()的座標
##week12-2_glm_gundam_upper_lower
用Notepad++ 改名稱改成week12-2_glm_gundam_upper_lower
多加兩行程式碼
GLMmodel * upperA = NULL;
GLMmodel * lowerA = NULL;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glDisable(GL_TEXTURE_2D);///把貼圖先功能關掉,不然手會被擋住
///myBody();
glutSolidSphere(0.1,30,30);
glEnable(GL_TEXTURE_2D);///再把貼圖功能開起來,才能draw
glColor3f(1,1,1);
drawUpperA();///(3)上手臂放好
glPushMatrix(); ///(0)
glTranslatef();///(3)再掛到上手臂的位置
glRotatef(angle++,0,0,1);///(2) z軸轉
glTranslatef(0,-0.2,0);///(1)
drawLowerA(); ///(0)
glPopMatrix(); ///(0)
glutSwapBuffers();///(0)
}
angle += da; 一直加da到一定角度就彈回去
if(angle>90) da=-1; 到90度就回彈,da會變成-1
if(angle<0) da=+1;到0度就回彈,da會變成+1
week12-3_glm_gundam_keyboard_angleID_mouse_motion_angle
glPushMatrix();
glRotatef(angle,0,0,1);
gltranslatef(0,-0.07,0);
drawUpperA();///(3)上手臂放好
glPushMatrix(); ///(0)
glTranslatef(-0.02,-0.09,0);///(3)再掛到上手臂的位置
///glRotatef(angle,1,0,0);///(2) z軸轉
glTranslatef(0,-0.21,0);///(1)
drawLowerA(); ///(0)
glPopMatrix(); ///(0)
glPopMatrix();
glutSwapBuffers();///(0)
week11
##week11-1_TRT_again
先設定環境
0.安裝freeglut,把lib\libfreeglut.a複製成libglut32.a
1.File-New-Project,GLUT專案week11-1_TRT_again
貼上10-12的程式碼再加上
glTranslatef(0.3,0.2,0);
glRotatef(angle++,0,0,1);
glTranslatef(0.15,0,0);
week11-2_glm_gundam_opencv_texture_lighting
1.File-New-Project,GLUT專案week11-2_glm_gundam_opencv_texture_lighting
2.先安裝openCV,CodeBlocks要重開
3.要改環境Search directories->Compiler 增加 C:\OpenCV2.1\include
4.Search directories->Linker 增加 C:\OpenCV2.1\lib
5.Linker settings-> 增加 cv210、cxcore210、highgui210
6.///GLMmodel * pmodel = NULL;改成/
7.GLMmodel * pmodel = NULL;
8.GLMmodel * handa = NULL;
9.GLMmodel * handb = NULL;
10.void drawmobel(void)->void drawHanda(void)
11.pmodel有這個的都改成handa
void myBody(){ ///我的身體
glPushMatrix();///備分矩陣
glColor3f(1,0,0);///紅色的
glutSolidCube(0.6);///mybody 但是空心變實心solid才能正確打
glPopMatrix();///還原矩陣
}
float angle = 0; ///加這行, 讓它轉動
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glDisable(GL_TEXTURE_2D);///把貼圖先功能關掉,不然手會被擋住
myBody();
glEnable(GL_TEXTURE_2D);///再把貼圖功能開起來,才能draw
glColor3f(1,1,1);
glPushMatrix(); ///加這行, 讓它轉動
glRotatef(angle++, 0, 1, 0); ///加這行, 讓它轉動
drawHanda();
glPopMatrix(); ///加這行, 讓它轉動
glutSwapBuffers();
田糾集跟你說你好
1.下禮拜(18周就是期末作品繳交了)
2.老師教了用茶壺程式碼找定位
有錄影
大致上就是從零開始打
///T
///R
///T
訣竅就是建立一個圓球找軸心
用茶壺程式碼找座標
偷座標
先做末梢
再drawbody()
訂閱:
文章 (Atom)
-
1.今天加入一個Blogger 2.創立一個自己的品牌 3.每周一篇,標籤(學號姓名,WeekXX) 4.第二節學到如何放圖片 5.老師教我們許多截圖法 6.實際在WebGL Water操作3D的球 (https://madebyevan.com/webgl-wate...
-
week16-1_sample_gluLookAt 在resize()函式 加入gluLookAt() 2想再按按鍵時看不同位置 if(key=='?') week16-2_glut_glutReshapeFunc_gluPerspective_gluLookAt...
-
1. week16-0_sample (1)安裝freeglut (2)安裝opencv,重開CodeBlocks --> 詳細去看 魚鱗電腦圖學Week05-1 (3) 打開新專案,命名為: week1 6-0_sample 2. 下載課本範例☆゚.*・。 (1)進...