2012年6月11日 星期一

作業四 元智校園擬真3D空間場景

1.主題介紹:   元智校園擬真3D空間場景
2.內容:
設定光源
void prepare_lighting()
{
    GLfloat light0_ambient[4] = {0.5, 0.5, 0.5, 1.0};
    GLfloat light0_diffuse[4] = {1.0, 1.0, 1.0, 1.0};
    GLfloat light_specular[4] = {1.0, 1.0, 1.0, 1.0};
    GLfloat light0_position[4] = {128.5, 150, -268, 1.0};
    GLfloat light1_position[4] = {0, 150, -292.5};
   
    GLfloat globel_ambient[] = {0.5, 0.5, 0.5, 0.0};
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, globel_ambient);

    //light0
    glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);
    glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
    glLightfv(GL_LIGHT0, GL_POSITION, light0_position);
}

//設定材質, 環境光跟漫射光設定的反射值相同
void set_mat(GLfloat r, GLfloat g, GLfloat b)
{
    GLfloat mat_ambient[4] = {r, g, b, 0.0};
    GLfloat mat_diffuse[4] = {r, g, b, 1.0};
    GLfloat mat_specular[4] = {1.0, 1.0, 1.0, 1.0};
   
    glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
    glMaterialf(GL_FRONT, GL_SHININESS, 25.0);
}


3.心得:
           透過這次的作業我充分的學會了如何讀取3D模組

     雖然在視點設定還有建築物設定上面一直遇到頗大的問題

    但最後還是能完成設定的部分,不過原本想要做出的碰撞偵測

     最後還是能夠穿越建築物,希望在最後的期末報告能夠完成的

     就是這個部分。