Week10
今天上課先考了期中考還好有複習所以考得不錯...
今天的第一個程式先開啟week08-2的程式
過程中一樣要先解壓縮freeglut以及複製+改檔名
然後也要用week07所教的方法下載opencv:
按裝OPENCV過程要改選像改成ADD開頭的
按裝完成後重新開啟CODEBLOCKS
在setting工具列中開啟compiler
compiler的目錄要加C:\OpenCV2.1\include
Linker的目錄要加C:\OpenCV2.1\lib
Linker setting要加cv210,cxcore210,highgui210
去葉正聖老師的網站https://jsyeh.org/3dcg10/
下載sorce並解壓縮然後將裡面的glm檔案拉進這周的程式的資料夾
然後更改glm.c的檔名為glm.cpp並在codeblock week10的地方開啟他
#include <GL/glut.h>
#include "glm.h"
#include <opencv/highgui.h>
#include <opencv/cv.h>
#include <GL/glut.h>
GLMmodel * pmodel=NULL;
int myTexture(char * filename)
{
IplImage * img = cvLoadImage(filename);
cvCvtColor(img,img, CV_BGR2RGB);
glEnable(GL_TEXTURE_2D);
GLuint id;
glGenTextures(1, &id);
glBindTexture(GL_TEXTURE_2D, 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);
return id;
}
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
if(pmodel==NULL){
pmodel=glmReadOBJ("Gundam.obj");
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel,90);
}
glPushMatrix();
glRotatef(angle,0,1,0);
glmDraw(pmodel,GLM_SMOOTH | GLM_MATERIAL|GLM_TEXTURE);
glPopMatrix();
angle++;
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
myTexture("Diffuse.jpg");
glutDisplayFunc(display);
glutIdleFunc(display);
glEnable(GL_DEPTH_TEST);
glutMainLoop();
}
並將老師傳的圖片放入freeglut-bin裡面
就會出現旋轉中的鋼蛋了
然後再去修改一下圖片的方向垂直翻轉變成這樣
鋼蛋就會變回正常的顏色了~~再將原本放入freeglut-bin的圖片和freeglut.dll拉入week10-1的資料夾
之後就可以直接在裡面開啟這個程式了
然後第三節課教了新的程式
老師也用maya展示給我們看
glutSolidSphere(0.1,30,30);///畫面政中心在這裡
glTranslatef(0,-0.1,0);///把手的旋轉中心放到畫面正中心
最後老師有傳了一個gundam的檔案給我們
一起存入GITHUB
沒有留言:
張貼留言