2024年6月6日 星期四

探索比奇寶的十大奧秘 16

                                                     先安裝openCV,CodeBlocks要重開                                                                                            要改環境Search directories->Compiler 增加 C:\OpenCV2.1\include                                                                        Search directories->Linker 增加 C:\OpenCV2.1\lib

Linker settings-> 增加 cv210、cxcore210、highgui210



   去網站下載https://jsyeh.org/3dcg10/  這兩個檔案[data][win32]

windows.zip,data.zip 解壓縮,解壓縮後把data丟到windows

week16-1_sample_giuLookAt

gluLookAt(0,0,0, -2.4, 1.2, -6, 0, 1, 0);加上這行程式碼可以往那個地方看,相機照的位置


if(key=='1'){
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        gluLookAt(0,0,0, -2.4, 1.2, -6, 0, 1,0);
    }

if(key=='1'),用鍵盤1,2,3改相機的位置


week16-2_glutReshapeFunc_g;uPerspective_gluLookAt

gluPerspective 透視投影
glOrtho 垂直投影
glFrustum 比較奇怪,我們通常不用它的投影法
左,上,又,下,近,遠共六種參數
                                            fovy field of view in y視角
                                            aspect ratio 長寬比
                                            我們將要寫個程式,11行+8行,做出透視
                                                改變視窗不會讓裡面得物體比例改變


void reshape(int w,int h){
    glViewport(0,0,w,h);///設定視窗會看到的區域
    float ar = w / (float) h;///長寬比,寬常比
    glMatrixMode(GL_PROJECTION);///切換投影矩陣
    glLoadIdentity();
    gluPerspective(60,ar,0.01,100);///透視投影

    glMatrixMode(GL_MODELVIEW);///切換model view矩陣
    glLoadIdentity();
    gluLookAt(0,0,-2, 0, 0, 0, 0,1,0);
}



week16-3_myTexture_id1_id2_glBindTexture
想要有[兩張貼圖](一張背景,一張給模型)


 glBindTexture(GL_TEXTURE_2D,id2);///舞台背景
    glBegin(GL_POLYGON);
        glTexCoord2f(0,0); glVertex2f(-1,+1);
        glTexCoord2f(0,1); glVertex2f(-1,-1);
        glTexCoord2f(1,1); glVertex2f(+1,-1);
        glTexCoord2f(1,0); glVertex2f(+1,+1);
    glEnd();
    glBindTexture(GL_TEXTURE_2D,id1);///地球



glmScale(pmodel,1.0/24);一行就可以縮放一個比例










    

沒有留言:

張貼留言