顯示具有 10161000_藍閎楷 標籤的文章。 顯示所有文章
顯示具有 10161000_藍閎楷 標籤的文章。 顯示所有文章

2023年5月25日 星期四

Week15

 

第一個課堂練習:LookAt

  • 去到以下網站下載這兩個安裝包[data][win32],也可直接點擊!
  •  https://jsyeh.org/3dcg10/

  • 下載好之後,全部解壓縮,然後把data資料夾拉進去Windows資料夾


  • 然後點擊Projection.exe,顯示畫面如下:

  • 我們要來搞懂gluLookAt裡的所有內容在做甚麼

2023年5月4日 星期四

Week12

 

第一個課堂作業:

利用Cpp程式碼開啟檔案並寫入文字

  • 開啟CodeBlocks(17.12版本最佳)

2023年4月6日 星期四

Week08 讀入3D模型

 

 第一個目標:搞清楚3D模型

  • 去到以下網站下載這兩個安裝包[data][win32],也可直接點擊!
  •  https://jsyeh.org/3dcg10/

  • 下載好之後,全部解壓縮,然後把data資料夾拉進去Windows資料夾

  • 點擊Transformation.exe,如果成功開啟就是成功了!會閃退就請你重新嘗試看看!
  • 我們要來了解,3D模型是如何產生的,我們拿Porsche模型開刀

  • 打開data資料夾,找到porsche.mtl&&porsche.obj檔案

  • 利用Notepad++或者文字文件開啟這兩個檔案
  • 要來看看其中寫了什麼!
  • v 對應 vertex (頂點)
  • vt 對應 glTexCoord2f(tx,ty) (貼圖座標)
  • vn 對應 vertex normal (法向量)
  • f 對應 facet (面)





2023年3月23日 星期四

Week06 階層轉動

 

第一個程式:GLUT實作TRT robot2

  • 學校教室的2022葉正聖老師上課軟體內有內建freeglut-MinGW-3.0.0-1.mp.zip,如果用自己的電腦或者沒有,下載網站在下面~~(按一下圖片紅色文字那邊就會自動下載)
  • https://www.transmissionzero.co.uk/software/freeglut-devel/
  • freeglut-MinGW-3.0.0-1.mp.zip檔案解壓縮後,點選freeglut-MinGW-3.0.0-1.mp檔案夾,在選擇freeglut檔案夾,最後打開lib檔案夾會看到以下畫面
  • 接著把"libfreeglut.a"複製一遍貼上得到"libfreeglut - 複製.a"
  • 把"libfreeglut - 複製.a"重新命名為"libglut32.a",副檔名不用動,完成初始設定了,接下來就可以開啟CodeBlocks
  • 老樣子開啟CodeBlocks(17.12版本最佳)

  • 點選左上角"File",接著拖移屬標到"New",但是不要按下去!右邊浮現選項後,選擇"Project"

  • 進入Project後,不用滑至最下方,選擇"GLUT Project"開源軟件,然後按下視窗右上角的"Go"
  • 進入第一個畫面直接按下"Next",下一頁設定名稱(Project title)為"Week06-1_GLUT_TRT_robot2",(檔案位置推薦設定在桌面)即可按下"Next"
  • 第三頁不能急著按"Finish",點選那神奇的三個點"..."
  • 然後就會出現一個視窗
  • 什麼都不要做,沒錯就是這樣,然後按下"X"即可

  • 接下來會直接跳出選擇資料夾頁面,Just like this,選擇一整個"freeglut-MinGW-3.0.0-1.mp"裡的"freeglut"資料夾(不需對檔案點兩下,按一下選取後,直接按確定即可)

  • 恭喜你成功完成了前置作業,畫面是灰色空白的,到目前為止跟上禮拜一樣,程式碼還是GLUT的範例,請去左方"Projects",展開你的檔案名稱,展開"Sources",找到主程式"main.cpp"點擊兩下

  • 接著畫面會顯示範例程式碼,就是原本會跑出紅色球,紅色三角錐,跟紅色甜甜圈的那個

  • 不要懷疑!全部刪除!寫上屬於自己的程式碼~~
  • 首先寫上程式碼架構



2023年3月16日 星期四

 

第一個課堂作業:下載範例包並嘗試操作

  • 去到以下網站下載這兩個安裝包[data][win32],也可直接點擊!
  •  https://jsyeh.org/3dcg10/
  • 下載好之後,全部解壓縮,然後把data資料夾拉進去Windows資料夾

  • 點擊Transformation.exe,如果成功開啟就是成功了!會閃退就請你重新嘗試看看!

  • 這周我們要嘗試著把車子形狀拉高,然後再嘗試移動到右邊旋轉(先移動旋轉)
  • 以下為範例:

  • 再來先把車子選轉後移動(先旋轉移動)
  • 以下為範例:

第一個程式:GLUT實作旋轉

2023年3月9日 星期四

銘傳夜間部教你寫程式 Week04 旋轉

 

第一個課堂作業:下載範例包並嘗試操作

  • 去到以下網站下載這兩個安裝包[data][win32],也可直接點擊!
  •  https://jsyeh.org/3dcg10/

  • 下載好之後,全部解壓縮,然後把data資料夾拉進去Windows資料夾

  • 點擊Transformation.exe,如果成功開啟就是成功了!會閃退就請你重新嘗試看看!
  • 這個課堂作業要你用滑鼠往上往下滾動試看看操控數值
第一個程式:GLUT實作旋轉茶壺
  • 先把GLUT基礎程式碼寫出來:
  • 然後利用全域變數angle來設定等等的角度
  • 接著在 display()裡加入glRotatef(angle, 0, 1, 0) 就可以轉動angle度

第二個程式:GLUT實作旋轉茶壺並加上打光

2023年3月2日 星期四

銘傳夜間部教你寫程式 Week03 移動Translate

第一個課堂作業:下載範例包並嘗試操作

  • 去到以下網站下載這兩個安裝包[data][win32],也可直接點擊!
  •  https://jsyeh.org/3dcg10/

  • 下載好之後,全部解壓縮,然後把data資料夾拉進去Windows資料夾
  • 點擊Transformation.exe,如果成功開啟就是成功了!會閃退就請你重新嘗試看看!
  • 這個課堂作業要你用滑鼠往上往下滾動試看看操控數值

第一個程式:GLUT實作Translate

  • 學校教室的2022葉正聖老師上課軟體內有內建freeglut-MinGW-3.0.0-1.mp.zip,如果用自己的電腦或者沒有,下載網站在下面~~(按一下圖片紅色文字那邊就會自動下載)
  • https://www.transmissionzero.co.uk/software/freeglut-devel/
  • freeglut-MinGW-3.0.0-1.mp.zip檔案解壓縮後,點選freeglut-MinGW-3.0.0-1.mp檔案夾,在選擇freeglut檔案夾,最後打開lib檔案夾會看到以下畫面
  • 接著把"libfreeglut.a"複製一遍貼上得到"libfreeglut - 複製.a"

  • 把"libfreeglut - 複製.a"重新命名為"libglut32.a",副檔名不用動,完成初始設定了,接下來就可以開啟CodeBlocks
  • 老樣子開啟CodeBlocks(17.12版本最佳)

  • 點選左上角"File",接著拖移屬標到"New",但是不要按下去!右邊浮現選項後,選擇"Project"

  • 進入Project後,不用滑至最下方,選擇"GLUT Project"開源軟件,然後按下視窗右上角的"Go"

  • 進入第一個畫面直接按下"Next",下一頁設定名稱(Project title)為"Week03-1_GLUT_Translate",(檔案位置推薦設定在桌面)即可按下"Next"
  • 第三頁不能急著按"Finish",點選那神奇的三個點"..."
  • 然後就會出現一個視窗
  • 什麼都不要做,沒錯就是這樣,然後按下"X"即可

  • 接下來會直接跳出選擇資料夾頁面,Just like this,選擇一整個"freeglut-MinGW-3.0.0-1.mp"裡的"freeglut"資料夾(不需對檔案點兩下,按一下選取後,直接按確定即可)
  • 恭喜你成功完成了前置作業,畫面是灰色空白的,到目前為止跟上禮拜一樣,程式碼還是GLUT的範例,請去左方"Projects",展開你的檔案名稱,展開"Sources",找到主程式"main.cpp"點擊兩下

  • 接著畫面會顯示範例程式碼,就是原本會跑出紅色球,紅色三角錐,跟紅色甜甜圈的那個


  • 不要懷疑!全部刪除!寫上屬於自己的程式碼~~

  • 首先寫上程式碼架構

///#include <bits/stdc++.h>函式庫是一個包含近乎90%函式的一個函示庫(剛好這就是其中10%)母湯用
#include <GL/glut.h> ///(For Windows)
///#include <GLUT/glut.h>(For Mac OS)
void display()
{
    glutSolidTeapot( 0.3 ); ///畫出實心的茶壺
    glutSwapBuffers();  ///交換顯示出來
}
int main(int argc,char *argv[]) ///這個main()括號裡的程式碼可以程式讀取小黑內容
{
    glutInit(&argc, argv); ///啟用GLUT功能
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); ///GLUT顯示模式
    glutCreateWindow("Week03-1_GLUT_Translate"); ///要建立一個視窗,這是他的名稱
    glutDisplayFunc(display); ///要顯示的函示 display()
    glutMainLoop();  ///主迴圈卡在後面
}

    • 這個程式碼只會出現一個很蠢的茶壺
    • 補上三行程式碼(已標註紅色),讓茶壺變成有位移的AD茶壺
    • 以下為Week03-1_GLUT_Translate範例:

    第二個程式:GLUT實作使用滑鼠滾動Translate

    • 仿造以上開啟檔案方法開啟一個新的檔案,以下這一頁不須再點"..."來找尋"freeglut"資料夾,因為你剛剛找過電腦自動存檔了,除非重啟或者換一台電腦才需重新抓位置
    • 程式碼還是GLUT的範例,請去左方"Projects",展開你的檔案名稱,展開"Sources",找到主程式"main.cpp"點擊兩下
    • 全部刪除!寫上屬於自己的程式碼~~
    • 有了位移還不夠,還要能用滑鼠控制,我們要來寫讓他可以用滑鼠按左鍵移動的程式碼
    • 補上的程式碼會標註紅色
    • 以下為Week03-2_GLUT_使用滑鼠滾動Translate範例: