2024年3月25日 星期一

小賴week06

 #week06 打光

##week06-0_sample_code

1. 安裝freeglut, 將lib\libfreeglut.a複製成libglut.32

2. File-New-Project, GLUT專案,week06-0_sample_code

3.研究一下main.cpp程式碼177行 找到全部的light(光)相關程式

20行程式碼+8行

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專案, week06-1_lighting

2.先貼上11行GLUT的程式碼

3.再把剛剛的20行程式碼貼上去

4.會畫出一個立體的茶壺




##week06-2_lighting_glNormal3f

1.File-New-Project ,GLUT專案, week06-2_lighting_glNormal3f

2.貼上剛剛的week06-1_lighting的程式

3.打茶壺變成一個正方形

4.加上mouse 轉動這個正方形

...cpp
glBegin(GL_POLYGON);
    glNormal3f(0,0,1);
    glVertex2f(-1,-1);
    glVertex2f(+1,-1);
    glVertex2f(+1,+1);
    glVertex2f(-1,+1);
glEnd();
...


##week06-3_glm_obj_model

1.File-New-Project ,GLUT專案, week06-3_glm_obj_model

2.把11行程式GLUT, 先做出來

3.參考sources.zip 裡面的transformation.c

3.1 #include "glm.h"

3.2 GLMmodel * pmodel = NULL;

3.3 讀模型,畫模型

4. glm.h放到 week06-3_glm_obj_model目錄裡

4.1 glm.c放到 week06-3_glm_obj_model目錄裡,改檔名城glm.cpp

4.2專案,按右鍵,新增檔案,將glm.cpp加入專案

4.3將data資料夾,複製到\freeglut\bin目錄裡












沒有留言:

張貼留言