2017年11月2日 星期四

Leo 學習筆記 Week08

Texture相關函式範例


1.下載好相關的檔案(data.zip, windows.zip, glut32.dll, source.zip)解壓縮到正確的位置。


2.調整texture.exe中的參數並觀察結果
glTexCoord2f為貼圖的座標,左下座標為0, 0
glVertex3f為圖形的座標,左下座標為-1, -1
glColor4f為改變貼圖的色調1, 1, 1, 1為白色


安裝openCV


1.下載OpenCV-2.1.0-win32-vs2008.exe
2.安裝時要勾選Add openCV to the system path


第一個openCV程式


1.新增一個console project


2.在main貼上以下程式碼
#include <opencv/highgui.h>

int main()
{
    IplImage * img=cvLoadImage("earth.jpg");
    cvNamedWindow("hello");
    cvShowImage("hello", img);
    cvWaitKey(0);
    return 0;
}

3. 設定專案的build option

search directories>>>linker


linker setting


search directories>>>compiler


4.執行後結果

結合openCV和glut


1.新增一個glut專案
2.將build option的參數調整成和上面一樣

轉動地球範例


此範例的重點為貼圖,以下為貼圖程式碼

int myTexture(char *filename)
{
    IplImage * img = cvLoadImage(filename); ///OpenCV讀圖
    cvCvtColor(img,img, CV_BGR2RGB); ///OpenCV轉色彩 (需要cv.h)
    glEnable(GL_TEXTURE_2D); ///1. 開啟貼圖功能
    GLuint id; ///準備一個 unsigned int 整數, 叫 貼圖ID
    glGenTextures(1, &id); /// 產生Generate 貼圖ID
    glBindTexture(GL_TEXTURE_2D, id); ///綁定bind 貼圖ID
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); /// 貼圖參數, 超過包裝的範圖T, 就重覆貼圖
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); /// 貼圖參數, 超過包裝的範圖S, 就重覆貼圖
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); /// 貼圖參數, 放大時的內插, 用最近點
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); /// 貼圖參數, 縮小時的內插, 用最近點
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img->width, img->height, 0, GL_RGB, GL_UNSIGNED_BYTE, img->imageData);
    return id;
}









沒有留言:

張貼留言