2024年4月15日 星期一

week09 凱

 week09

#week09

##week09-0_sample

0.安裝freeglut, 將libfreeglut.lib複製成libglut32.a

1.FILE-NEW-PROJECT, GLUT專案,week09_sameple

##程式碼重新再利用

1.將上週的程式 github clone下來

    -在小黑git bash 裡面指令:

    -cd desktop (先進入桌面)

    -git clone : https://github.com/LAITING20030925/2024graphicsb

    -cd 2024graphicsb

    -start.

2.確認環境沒問題

    -安裝openCV要勾Add PATH, 裝在預設目錄

    -setting-compiler裡,要把 openCV的三個設定設好

    -上方第三個分頁 search directories 裡

        -compiler 加 C:\OpenCV2.1\include

        -Linker加 C:\OpenCV2.1\lib

     -上方第二個分頁 Linker Setting

         -cv210 cxcore210 highgui210

     -重新開啟coldblocks ,start 開始頁裡,有剛剛wek09-0_sample先點他

3.專案的設定是否需要修改


##開啟上週week07-1_obj_gundam_opevcv_texture

1.File-Open 點選剛剛git下載的WEEK07

2.選week07-2_obj_gundam_opevcv_texture

3.build&Run 看他執行成功了!


##week09-1_gundam_texture_lighting_rotate_lighting

0. 剛前一個目錄 week07-2_obj_gundam_opencv_texture整個copy 

1.再用notepad++ 開啟week09-1_obj_gundam_opencv_texture_lighting 目錄裡的.cbp檔

2.把打光的8行 貼在int main()前面

3.把打光的12+2行函式,貼到glutMainLoop()前面

4.glmDraw(pmodel,GLM_SMOOTH|GLM_TEXTURE)要刪掉中間的GLM_MATERIAL


為了讓畫面好看一點、打光澤亮、模型旋轉、我們做幾個修改

1.改變光的位置

const GLfloat light_position[] = { 2.0f, 5.0f, -5.0f, 0.0f };

2.在display()加入旋轉

float angle=0;

void display()

{

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    glPushMatrix();

        glRotatef(angle++,0,1,0);

    drawmodel(); ///glutSolidTeapot( 0.3 );

    glPopMatrix();

    glutSwapBuffers();

}

int main(...)

{...

    glutIdleFunc(display);///加入旋轉

...}



##week09-2_glutSolidCube_glutSolidTeapot_glutSolidSphere

1.File-New-Project, GLUT專案

2.加入11行 GLUT程式

3.程式碼

#include <GL/glut.h>

void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(-0.6,+0.3,0);
        glutSolidTeapot(0.3);
    glPopMatrix();
    glPushMatrix();
        glTranslatef(+0.0,+0.3,0);
        glutSolidCube(0.3);
    glPopMatrix();
    glPushMatrix();
        glTranslatef(+0.6,+0.3,0);
        glutSolidSphere(0.3,30,30);
    glPopMatrix();
    glutSwapBuffers();
}
int main(int argc, char *argv[])
{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("week09-2 glutSolid系列");

    glutDisplayFunc(display);

    glutMainLoop();

}



#include <GL/glut.h>
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(-0.6,+0.3,0);
        glutSolidTeapot(0.3);
    glPopMatrix();
    glPushMatrix();
        glTranslatef(+0.0,+0.3,0);
        glutSolidCube(0.3);
    glPopMatrix();
    glPushMatrix();
        glTranslatef(+0.6,+0.3,0);
        glutSolidSphere(0.3,30,30);
    glPopMatrix();
    glPushMatrix();
        glTranslatef(-0.6,+0.3,0);
        glutWireTeapot(0.3);
    glPopMatrix();
    glPushMatrix();
        glTranslatef(+0.0,+0.3,0);
        glutWireCube(0.3);
    glPopMatrix();
    glPushMatrix();
        glTranslatef(+0.6,+0.3,0);
        glutWireSphere(0.3,30,30);
    glPopMatrix();
    glutSwapBuffers();
}
int main(int argc, char *argv[])
{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("week09-2 glutSolid系列");

    glutDisplayFunc(display);

    glutMainLoop();

}







沒有留言:

張貼留言