2015 電腦圖學 Computer Graphics 授課教師: 葉正聖 銘傳大學資訊傳播工程系 每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
2015年5月6日 星期三
WEEK10_CASH
今天學到的是要把圖片貼在茶壺上...
貼上去之後長這樣
程式碼
#include <opencv/highgui.h>
#include <GL/glut.h>
#include <opencv/cv.h>
float angle=0;
void display()
{
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0,1,0);
glutSolidTeapot(0.8);
glPopMatrix();
glFlush();
angle+=0.1;
}
void myInit()
{ IplImage * img = cvLoadImage("image.jpg"); ///讀圖
cvCvtColor(img,img, CV_BGR2RGB); ///轉色
glEnable(GL_TEXTURE_2D); ///貼圖
GLuint id; ///貼圖ID
glGenTextures(1, &id); /// 產生貼圖ID
glBindTexture(GL_TEXTURE_2D, id); ///綁定貼圖ID
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
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);
} ///貼圖影像資料設定
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutCreateWindow("3D");
glutDisplayFunc(display);
glutIdleFunc(display);
myInit();
glutMainLoop();
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言