0.1 下載freeglut
0.2 安裝OpenCV
1.1 開新專案week11-1_TRT_again
1.2 複製week10-1
1.3
float angle=0;
void myArm(){
glPushMatrix();
glColor3f(0, 1, 0); ///綠色的手臂
glScalef(1.5, 0.5, 0.5); ///寬變1.5,高度變0.5倍
glutWireCube( 0.3 ); ///方塊
glPopMatrix();
}
void display(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
///glTranslatef(-0.6, +0.3, 0);
myBody();
glPopMatrix();
glPushMatrix();
glTranslatef(0.3, 0.3, 0); ///掛到肩上
glRotatef(angle++, 0, 0, 1); ///轉動
glTranslatef(0.45/2, 0, 0); ///把旋轉中心,放正中心
myArm();
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char *argv[]){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
}
2.1 開新專案weel11-2_obj_gundam_opencv_texture_lighting
2.2 專案按右鍵,add file ,加入glm.cpp
2.3 專案按右鍵,properties,build targets,execution working dir裡改成小數點
2.4 用git clone複製整個week09-1專案(整個資料夾)﹑並改檔名為week11-2_obj_gundam_opancv_texture_lighting
2.5 用codeblocks打開,project-properties改title
2.6 MAYA,File,Import,Gundam.obj
2.7 只留左右手臂匯出hand1.obj、hand2.obj
2.8 回codeblocks改模型檔名
3.1 複製整個week11-2資料夾,改week11-3_obj_gundam_hand1_hand2,裡面的.cbp檔也改成這個檔名
3.2 複製手臂們的 .obj、.mtl 模型檔到 week11-3 的目錄
3.3 codeblocks開啟week11-3的.cbp檔
3.4 修改程式
GLMmodel * pmodel = NULL; ///加的程式,有顆指標,指到模型檔
GLMmodel * hand1 = NULL;
GLMmodel * hand2 = NULL;
float angle=0;
void drawmodel(void){
if(!pmodel){
pmodel = glmReadOBJ("Gundam.obj");
if(!pmodel) exit(0);
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel, 90.0);
}
glmDraw(pmodel, GLM_SMOOTH | GLM_TEXTURE);
}
void drawhand1(void){
if(!hand1){
hand1 = glmReadOBJ("hand1.obj");
if(!hand1) exit(0);
glmUnitize(hand1);
glmFacetNormals(hand1);
glmVertexNormals(hand1, 90.0);
}
glmDraw(hand1, GLM_SMOOTH | GLM_TEXTURE);
}
void drawhand2(void){
if(!hand2){
hand2 = glmReadOBJ("hand2.obj");
if(!hand2) exit(0);
glmUnitize(hand2);
glmFacetNormals(hand2);
glmVertexNormals(hand2, 90.0);
}
glmDraw(hand2, GLM_SMOOTH | GLM_TEXTURE);
}
void display(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidSphere( 0.1, 30, 30);
glPushMatrix();
drawhand1(); ///glutSolidTeapot( 0.3 );
glPopMatrix();
glutSwapBuffers();
}
3.5 加上TRT
void display(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidSphere( 0.1, 30, 30);
glPushMatrix();
//glRotatef(angle++, 0, 1, 0);
glTranslatef(-0.3, 0.3, 0); ///掛到肩上
//glRotatef(angle++, 0, 0, 1); ///轉動
glTranslatef(-0.45/2, 0, 0); ///把旋轉中心,放正中心
drawhand1(); ///glutSolidTeapot( 0.3 );
glPopMatrix();
glPushMatrix();
//glRotatef(angle++, 0, 1, 0);
glTranslatef(0.3, 0.3, 0); ///掛到肩上
//glRotatef(angle++, 0, 0, 1); ///轉動
glTranslatef(0.45/2, 0, 0); ///把旋轉中心,放正中心
drawhand2(); ///glutSolidTeapot( 0.3 );
glPopMatrix();
glutSwapBuffers();
}
沒有留言:
張貼留言