2023年5月10日 星期三

Code Talker Week13

 STEP 01

1.至https://jsyeh.org/3dcg10/下載data,解壓縮並將裡面的AI.obj匯入maya

2.試著把他分解拆掉,可以用刪掉+ctrl Z的方式確認是否選取到該部件的全部,選取後匯出成obj檔案

STEP 02

1.打開gitbash,使用git指令從雲端上下載上禮拜的final_project,從CodeBlock打開他的cbp檔案

2.從上面的project,選properties,進到project settings,點擊右下的build options,再進入Search directories,Compiler更改路徑至freeglut\include,Linker更改至freeglut\lib,之後把freeglut放進final_project裡解壓縮

STEP 03

1.稍微修改上周程式碼,刪掉茶壺,並改造成下列樣子:

#include <stdio.h>

#include <GL/glut.h>
#include "glm.h"
GLMmodel * head = NULL;
GLMmodel * body = NULL;
GLMmodel * uparmR = NULL;
GLMmodel * lowarmR = NULL;

FILE * fout = NULL;
FILE * fin =NULL;
float teapotX=0, teapotY=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        if(body==NULL){
            body = glmReadOBJ("model/body.obj");
            glmUnitize(body);//待修
        }
        glmDraw(body, GLM_MATERIAL);
    glPopMatrix();
    glutSwapBuffers();
}
執行測試是否能看見身體

註:因為有用到glm,所以要把glm.h和glm.cpp一併放進final_project資料夾,並且要點擊彩色方塊,Add file>glm.cpp

2.我們想要控制顯示出部分的大小,並且加上了頭,因此將待修的部分改成下列程式碼的樣子:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glScalef(0.2, 0.2, 0.2);
        if(body==NULL){
            head = glmReadOBJ("model/head.obj");
            body = glmReadOBJ("model/body.obj");
        }
        glmDraw(head, GLM_MATERIAL);
        glmDraw(body, GLM_MATERIAL);
    glPopMatrix();

3.再來我們打算加上鍵盤控制,

沒有留言:

張貼留言