2022年6月7日 星期二

尖🦉-圖學筆記 Week16

 ◇alpha內插公式:

    1. angle = alpha*新角度 + (1-alpha)*舊角度。

        alpha值為0.0~1.0。所以alpha=0 則為舊anglealpha=1 則為新angle,其他介於新舊之間。

 ◇interpolation 內插實作(讓動畫angle變動順暢):

    1.開新glut專案,利用上禮拜的程式week15_angle_again程式

    2. 寫入新的myInterpolate函式keyboard加入play鍵myRead函式寫入讓他能新舊角度交換。

        myInterpolate()函式:藉由新舊角度運算,算出每個angle。

        keyboard()函式:藉由 t=0 ,呼叫myInterpolation()函式,放入 ( t %30 )/30.0 運算會介於                                                 0.0~1.0之間(作為alpha值的運算),當我們 t 為30時,就又會變成0。

        myRead()函式:使新舊角度交換,並重畫顯示畫面,就能看到順暢的動作。

    3.因為原本要一直按p才能動,但我們想要他自動跑。

        將keyboard函式修改,並增加timer函式,讓他會依照時間呼叫自己。

 ◇攝影機觀察:

    1.藉由老師上課教材Projection.exe了解

    2. gluLookAt -> eye 是相機拍向人物的相機座標。(相機位置)

        gluLookAt -> center是相機拍攝哪裡。(可以專拍手或是專拍頭,對eye那個點做變動)

         gluLookAt -> up  是相機拍攝旋轉角度。(有點像是旋轉相機,對著center那個點旋轉)

專注拍攝哪裡(center)
拍攝角度旋轉(up)

    3.對下面command manipulation window視窗 右鍵 可選glOrtho看到拍攝框


 ◇攝影機:

    1.開新專案,留下static void resize()函式。

        static void resize()函式,可讓視窗變化的時候,3D物件的長寬會跟著視窗比例變化

        就不會壓扁3D物件了。

        aspect ratio 是長x寬比(x往右,y向下) ex: 1920x1080 , 1280x720 ,640x480 , 16:9 ,4:3。 

    2.先#include<GL/glut.h>

      修改resize()函式變成reshape()

      main函式利用glutReshapeFunc(reshape);呼叫reshape

   ◇攝影運鏡:

    3.加入motion()函式,讓我們能用滑鼠調整看的角度,感受到運鏡。

沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

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