2017年10月12日 星期四

周欣融 week05

複習上週課程

  1. 到老師個人網站下載data, win32, glut32.dll  --> link
  2. 執行Transformation.exe
結果:

移動

旋轉

縮放






















































-------------------------------------------------------------------------
Viewing
  1. 執行Projection.exe
glPerspective 參數解釋:
以角錐的方式投影
fovy:    field of view angle,視角角錐的角度
aspect: aspect ratio,視角角錐的長寬比例 
zNear: 相機(投影幕)的位置
zFar:    牆壁的位置

結果:




















glOrtho 參數解釋:
以平行的方式投影
left, right, bottom, top: 平行方塊的上下左右邊界,會影響投影比例
near: 相機(投影幕)的位置
far: 牆壁的位置

結果:




















glFrustum 參數解釋:
left, right, bottom, top:   平行方塊的上下左右邊界,會影響投影比例
near: 相機(投影幕)的位置
far: 牆壁的位置
**與glOrtho不同的地方,改變left, right, bottom, top可能會導致模型消失

結果:




















gluLookAt 參數解釋:
eye: 相機位置的x, y, z
center: 看出去的向量
top: 相機的up vector(相機平面的旋轉) x, y, z

結果:



















-------------------------------------------------------------------------

編譯Projection source code
  1. 按照前幾週所學,新增code blocks glut project
  2. 將source code的 projection.c, glm.c, glm.h新增到專案裡,.c檔改成.cpp
  3. 刪除原本的main.c
  4. 因為程式碼年代久遠,遇到strdup問題
    1. 解決方法一:將compiler flag改成gnu++0x
    2. 解決方法二:將compiler預設的c++11勾勾取消





結果:





-------------------------------------------------------------------------

Modify Projection source code
  1. 從moodle下載老師修改好的程式
  2. 執行
  3. 如果遇到freeglut的位置不對,右鍵點選.cbp檔,以文字編輯器開啟,修改freeglut路徑及可

結果:






沒有留言:

張貼留言