2019年4月11日 星期四

06160123_Week8電腦圖學

🔺電腦圖學2019-04-11 Week08

(1)主題:貼圖 Texture

(2)範例:Texture.exe

(3)實作:OpenCV

(4)實作:OpenCV+OpenGL貼圖

(5)期中考:10行OpenGL程式



TODO:點名:Veyon Config > 服務 >啟動服務-
TODO:到小葉老師的網站3D Graphics download資料
download:window.zip  解壓縮 至window 
                    data.zip    解壓縮 data拉至window
                   glut32.dll   解壓縮 glut32.dll移至window資料夾

> 開啟 Window > Texture.exe 



       
> 開啟後會看見Texture.exe 視窗



> 框起來的部分是設定圖片四角的位置




> 框起來的部分可以任意更改圖片的框






#安裝 OpenCV2.1

Google Search:OpenCV 2.1找到第一個
裡面OpenCV-2.1.0-win32-vs2008.exe 安裝




1、要C:\openCV2.1目錄




2、要選Add PATH




3、裝好,才能啟動CodeBlocks



#安裝 GLUT

1、Search Freeglut > Download Freeglut3.0.0 MSVC Package Download freeglut 3.0.0 for MinGW

2、將檔案解壓縮後複製一個libfreeglut.a檔並重新命名為libglut32.a

3、開啟Code Blocks>新增一個新的專案>點選Glut project

4、命名專案>選擇資料存放區(C:\Users\user\Downloads\freeglut\lib)>Finish

5、於左側project開啟程式碼>執行


把程式碼全部刪光光

貼上前幾週學的茶壺程式碼

#include <GL/glut.h>

void display(){

    glutSolidTeapot( 0.3 );
    glutSwapBuffers();
}

int main(int argc,char**argv){

    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("06160123");
    glutDisplayFunc(display);

    glutMainLoop();

}

稍微修改一下程式碼  加上自己抓的貼圖(54-01.jpg)
抓下來的貼圖要記得存在  C:\Users\user\Desktop\freeglut\bin


#include <GL/glut.h>
#include <opencv/highgui.h> //貼圖需要

void display(){
    glClear(GL_COLOR_BUFFER_BIT |  GL_DEPTH_BUFFER_BIT);
    glutSolidTeapot( 0.3 );
    glutSwapBuffers();
}

int main(int argc,char**argv){

    IplImage * img=cvLoadImage("54-01.jpg"); //貼圖需要
    cvShowImage("opencv Window",img); //貼圖需要
    cvWaitKey(0); //貼圖需要

    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("06160123");
    glutDisplayFunc(display);

    glutMainLoop();

}


修改完之後還沒完成,還要做一些動作

1、在專案右鍵開啟Build options



2、在search > compiler > Add C:\OpenCV2.1\include



3、在search > linker > Add C:\OpenCV2.1\lib



4、 linker settings > Add cv210  cxcore210  highgui210


5、按F9執行,看結果 > 成功貼出地球
 
6、關閉地球視窗後,會出現黑底白身的茶壺






###圖學期中考(10行程式碼,須加註解)!!!

glPushMatrix();//備份矩陣 10%

    glRotatef( angle, x , y , z );//旋轉 30%
    glTranslatef( x , y , z );//移動 40%
    glScale( x , y , z );//放大縮小 50%

    glBegin(GL_POLYGON);
//開始畫 60%
        glColor3f( r , g , b );//顏色、色彩 70%
        glTexCoord2f( tx , ty );//貼圖座標 80%
        glNormal3f( nx , ny , nz );//打光的法向量90%
        glVertex3f( x , y , z );  //頂點 100%        
    glEnd();//結束

glPopMatrix();
//還原舉陣 20%


沒有留言:

張貼留言