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模組
雖然在視點設定還有建築物設定上面一直遇到頗大的問題
但最後還是能完成設定的部分,不過原本想要做出的碰撞偵測
最後還是能夠穿越建築物,希望在最後的期末報告能夠完成的
就是這個部分。