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;
}

沒有留言:
張貼留言