2024年6月6日 星期四

YT's 電腦圖學 Week16

 #week16-0_sample 

先準備上課的環境 

  • freeglut 安裝
  • OpenCV 2.1 安裝
  • 重開CodeBlock 設定 Compiler-Setting

  • Search directories 的 compiler 要加入 C:\OpenCV2.1\include
  • Linker 的 lib 要加入 C:\OpenCV2.1\lib
  • Linker 設定,要加入 cv210 、 cxcore210 、 highgui210
1. 下載老師範例

https://jsyeh.org/3dcg10/ 下載 data、win32


打開 Projection





 #week16-1_sample_gluLookAt 

1.  要改 resize() 函式 在裡面,加上 glutLookAt() 函式 
就可以看著左上方的圓球




2. 現在要做另一個修改,先把剛剛加的 第39行程式碼註解掉

if ( key == '1' ) 看左上方
if ( key == '2' ) 看上方
if ( key == '3' ) 看右上方


按 1


按 2


按 3








 #week16-2_glutReshapeFunc_gluPerspective_gluLookAt 

先看課本 Projection.exe 的範例

  • gluPerspective 透視投影
  • glOrtho 垂直投影
  • glFrustum 比較奇怪,我們通常不用他的投影法
        左、又、上、下、近、遠 共6組參數

  • gluPerspective ( 視角、長寬比、 z近、 z遠 )
  • fovy => field of view in y 視角
  • aspect ratio 長寬比

1. 貼上11行程式碼 , 再加上 8行 ,做出透視

2. 在 int main() 裡,加入 glutReshapeFunc(reshape);

加完 reshape 後,可自己隨意改變式窗大小,物體的比例不會跟著改變 !

3. 寫自己的 void reshape( int w, int h ) {...}





! glutInitWindowSize(... , ... ); ///加這行,可以隨意改變視窗長寬




 
 #week16-3_myTexture_id1_id2_glBondTexture 
 
若想要有 " 兩張貼圖 " ( 一張背景、一張給模型 )

1. 新增一個專案

偷 week05_rotating_earth / main.cpp 裡的程式碼
但執行會出錯,因為沒有圖檔 

2. 匯入自己的圖檔當背景圖





























沒有留言:

張貼留言