2023年4月20日 星期四

week10 余

    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的地方開啟他

main.cpp的程式碼改成下列的內容

#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裡面

就會出現旋轉中的鋼蛋了

然後再去修改一下圖片的方向垂直翻轉

變成這樣

鋼蛋就會變回正常的顏色了~~


用notepad++開啟week10-1_glm_gundam.cbp
working dir的地放都改成.

再將原本放入freeglut-bin的圖片和freeglut.dll拉入week10-1的資料夾



之後就可以直接在裡面開啟這個程式了

然後第三節課教了新的程式

老師也用maya展示給我們看

glutSolidSphere(0.1,30,30);///畫面政中心在這裡

glTranslatef(0,-0.1,0);///把手的旋轉中心放到畫面正中心

最後老師有傳了一個gundam的檔案給我們

一起存入GITHUB

最後在上傳到GITHUB
cd desktop
git clone https://github.com/dannyyu0521/2023graphicsb
cd 2023graphicsb
將檔案放入資料夾
git status
git add .
git status
git config --global user.email dannyyyu0521@gmail.com
git config --global user.name dannyyu0521
git commit -m "add week10"
git push

沒有留言:

張貼留言