2024年3月25日 星期一

Sean的電腦圖學日誌 week06

 const GLfloat light_ambient[]  = { 0.0f, 0.0f, 0.0f, 1.0f };

const GLfloat light_diffuse[]  = { 1.0f, 1.0f, 1.0f, 1.0f };

const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };

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


const GLfloat mat_ambient[]    = { 0.7f, 0.7f, 0.7f, 1.0f };

const GLfloat mat_diffuse[]    = { 0.8f, 0.8f, 0.8f, 1.0f };

const GLfloat mat_specular[]   = { 1.0f, 1.0f, 1.0f, 1.0f };

const GLfloat high_shininess[] = { 100.0f };


    glEnable(GL_DEPTH_TEST);

    glDepthFunc(GL_LESS);


    glEnable(GL_LIGHT0);

    glEnable(GL_NORMALIZE);

    glEnable(GL_COLOR_MATERIAL);

    glEnable(GL_LIGHTING);


    glLightfv(GL_LIGHT0, GL_AMBIENT,  light_ambient);

    glLightfv(GL_LIGHT0, GL_DIFFUSE,  light_diffuse);

    glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);

    glLightfv(GL_LIGHT0, GL_POSITION, light_position);


    glMaterialfv(GL_FRONT, GL_AMBIENT,   mat_ambient);

    glMaterialfv(GL_FRONT, GL_DIFFUSE,   mat_diffuse);

    glMaterialfv(GL_FRONT, GL_SPECULAR,  mat_specular);

    glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);


##week06-1_lighting

1.File-New-Project,GLUT專案

2.貼上11行GLUT程式

3.20行程式拿來用

4.畫出立體茶壺



##看課本範例
jsyeh.org/3dcg10 下載 source windows data,開啟Light Material.exe


##week06-2_lighting_glNormal3f
1.新專案
2.貼上week06-1
3.把茶壺變正方形
4.加上mouse轉動正方形

##week06-3_glm_obj_model
1.File-New-Project, GLUT專案, week06-3_glm_obj_model
2.把11行程式GLUT,先做出來
3.參考 source.zip 裡面的transformation.c
3.1. #include "glm.h"
3.2. GLMmodel*pmodel=NULL;
3.3.讀模型、畫模型 void drawmodel(void)這個函式
4.將檔案準備好:
4.1. glm.h放到week06-3_glm_obj_model目錄裡
4.2.改檔名glm.cpp
4.3.專案,按右鍵,新增檔案,將glm.cpp加入專案
4.4.將data資料夾,複製到 桌面\freeglut\bin執行目錄裡
4.5.把glutSolidTeapot(0.3);換成drawmodel();


沒有留言:

張貼留言