顯示具有 09160022_徐翌洋 標籤的文章。 顯示所有文章
顯示具有 09160022_徐翌洋 標籤的文章。 顯示所有文章

2022年6月7日 星期二

圖學筆記Week16

 本週課程內容:內插公式、動作內插、運鏡

內插公式:

alpha內插公式(alpha值0~1): angle = alpha*新+(1-alpha)*舊

alpha:0=>舊、alpha:0.5=>半新半舊、alpha:1=>新


動作內插

步驟:開啟新專案檔-->使用15週程式-->新增功能-->按下"p"能做動作-->myinterpolate函式功能:內插公式應用(如下圖)-->myRead函式功能:陣列值座新舊交換-->只按一次"p"動作連續(如下圖)



運鏡
eye=>相機移動
center=>物體移動
up=>相機、物體不動,畫面旋轉

步驟:開啟新專案檔-->aspect ratio長寬比(1920x1080)16:9、4:3-->reshape函式控制長寬比(如下圖)-->motion改變lookat參數(如下圖)



2022年5月31日 星期二

圖學筆記Week15

 本週課程內容:播放聲音、TRT存檔撥放

播放聲音

步驟:開啟新.cpp檔-->進setting>compiler>link-->add"winmm"

-->PlaySound("07072005.wav", NULL,SND_SYNC);只能撥放wav檔(如下圖)-->播放MP3格式(如下圖)


TRT存檔撥放
步驟:開啟上週TRT檔-->在keybord函式加if(key=='s')myWrite();(按下r儲存動作)


2022年5月24日 星期二

圖學筆記Week14

 本週課程內容:寫檔fprintf()、讀檔fscanf()、寫檔fprintf()+project、讀檔fscanf()+project

寫檔fprintf()

步驟:new empty file-->開啟檔案-->fprintf()-->關閉檔案


讀檔fscanf()

步驟:new empty file-->開啟檔案-->fprintf()-->fscanf()-->關閉檔案


寫檔fprintf()+project

步驟:開啟檔上週專案-->新增FILE * fout = NULL;和myWrite()函式-->void motion()函式中呼叫myWrite()函式


fscanf()+project

步驟:開啟檔上週專案-->新增FILE * fout = NULL,* fin =NULL;和myRead()函式-->void keybord()函式中加上if(key=='r')myRead();長按r重複做剛剛的動作



2022年5月17日 星期二

圖學筆記Week13

  本週課程內容:glRectf()函式、glRectf()手臂

glRectf()函式

步驟:開啟新專案-->輸入GLUT10行程式-->增加glRectf(右上X,右上Y,左下X,左下Y);(如下圖)-->加入紅色手臂放在 glPushMatrix();和glPopMatrix();之間(如下圖)-->先把手臂移到正中心(如下圖)-->加入對Z軸旋轉角度(如下圖)-->手臂掛回原來位置(如下圖)-->增加讓滑鼠移動能使紅色手臂旋轉void mouse、void motion(如下圖)







glRectf()手臂

步驟:開啟新專案-->運用上方的程式並在glPushMatrix();和glPopMatrix();之間加入一個完整的glPushMatrix();、TRT、glColor3f();、glRectf();、glPopMatrix();-->更改數值綠色手臂連在紅色手臂(如下圖)-->改TRT X的正負值達成鏡射(如下圖)-->增加void  keybord()函式後只要按下數字鍵0~3就可以選擇關節移動(如下圖)




2022年5月10日 星期二

圖學筆記Week12

 本週課程內容:旋轉、下周考試

步驟:進入老師的網站https://jsyeh.org/3dcg10-->下載Win32、data
-->解壓縮data到windows-->開啟Transformation.exe-->T(0.9,0,0),R(37,0,1,0)車子一致右方以中心為旋轉軸旋轉-->改變T,R順序會發現旋轉軸有不同(以螢幕、以車子)
-->進入https://120.125.80.50/GL/opengl_TRT_demo.html(空白鍵開始旋轉、移動Rotate看旋轉)-->移動轉軸到正確的位置可轉動(Rotate的角度)





下周考試
T(物體放在絕對位置)_R(旋轉角度)_T(旋轉中心放到正中心)
glPushMatrix();
glTranslatef(-0.5,-0.9,0);
glRotatef(angle,0,0,1);//angle=45
glTranslatef(-0.8,0.9,0);
gluthand();
glPopMatrix();

旋轉
步驟:開啟codeblocks新增專案-->基礎十行+TRT(如下圖)-->調整T-R-T讓紅色茶壺到正確的位置(如下圖)-->在glPushMatrix();和glPopMatrix();之間再加入一個glPushMatrix();glPopMatrix();作為手臂和手肘(如下圖)-->複製正負號改變可做左右手(如下圖)





2022年5月3日 星期二

圖學筆記Week11

 本週課程內容:3D模型、MAYA模型切割、特定軸轉動

3D模型

步驟:開啟codeblocks新增專案-->到teams上下載myGundam.zip-->匯入鋼蛋的貼圖(如下圖)-->把week09週的texture程式放在上面、GLUT10行程式放下面

-->main()的glutMainLoop()之前加入myTexture("data/Diffuse.jpg");-->把茶壺貼上鋼蛋的貼圖(如下圖)-->把source下載(glm.c(.cpp要改名)、glm.h、transformation)-->放入專案目錄中-->右鍵傳案add file加入glm.cpp-->把鋼蛋模組匯入程式中(下圖有反白的程式)-->貼圖顛倒(小畫家反轉貼圖)-->開啟3D功能與3D深度測試




完成圖



MAYA模型切割

步驟:開啟MAYA、obj檔-->上網看老師的MAYA模型切割

特定軸轉動

步驟:開啟codeblocks新增專案-->輸入程式(如下圖)


完成圖



2022年4月26日 星期二

圖學筆記Week10

 本週課程內容:背景貼圖、地球貼圖

背景貼圖

步驟:進到Moodle下載opencv2.1.0(path:環境目錄的路徑)-->開啟codeblocks新增專案-->做出上週texture的專案圖片放入freeglut\bin

(如下圖)-->把茶壺改掉-->定四個角座標(逆時針)作背景貼圖(如下圖)



成果圖


地球貼圖
步驟:開啟codeblocks新增專案-->使用上方專案為基底-->設定球體和二次曲線(如下圖)-->產生貼圖於球體上(如下圖)-->改變視角(如下圖)



成果圖






2022年4月19日 星期二

圖學筆記Week09

 本週課程內容:貼圖、結合opencv和opengl

步驟:進入老師的網站https://jsyeh.org/3dcg10-->下載Win32、data
-->解壓縮data到windows-->開啟Texture.exe

貼圖

步驟:進到Moodle下載opencv2.1.0(path:環境目錄的路徑)-->開啟codeblocks新增專案-->輸入程式(如下圖)-->settings-compiler-search directories(compiler:add-C:\OpenCv2.1\include Linker:add-C:\OpenCv2.1\lib )-->Linker settings(add cv210 cxcoore210 highgui210)-->把圖片放在專案資料夾中-->執行程式(如下圖)


結合opencv和opengl

步驟:開啟codeblocks新增專案-->整合程式(期中十行+本週新程式)-->把圖片放到freeglut/bin-->執行程式(如下圖)-->進老師網站(https://gist.github.com/jsyeh/5ed01210559721ec71b659b3ffed2dd7)-->下載程式
-->加上剛剛寫好程式-->執行程式(如下圖)
要改成圖片檔名






VERY BEAUTIFUL, VERY POWERFUL

一.     一樣先安裝且設定好freeglut,OpecCV, 開啟CodeBlocks建立新專案 week11_gundam,                 把 MyGundam.zip下載解壓縮後的data資料夾放到freeglut/bin裡面 把week09_openc...