2
好吧,我想模仿手電筒的行爲。就目前而言,我只是想讓聚光燈出現在球體上。現在下面的代碼工作,但它只適用於GL_SPOT_CUTOFF
設置爲180時,它創建一個統一的光分佈 - 不是我要去的。如果我嘗試將其設置爲任何其他值,則它會停止工作。這裏是我已經啓用照明和已完成所有初始化的東西代碼openGL聚光燈問題
GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat light_pos [4] = {5, 2, -10, 1.0};
glLightfv (GL_LIGHT0, GL_SPECULAR, mat_specular);
glLightfv (GL_LIGHT0, GL_POSITION, light_pos);
glLightf (GL_LIGHT0, GL_SPOT_CUTOFF, 20.0f);
glLightf (GL_LIGHT0, GL_SPOT_EXPONENT, 100.0);
GLfloat spotDir [] = {0.0, 0.0, 0.0};
glLightfv (GL_LIGHT0, GL_SPOT_DIRECTION, spotDir);
glutSolidSphere (2, 20, 20);
glFlush();
glutSwapBuffers();
。所有表面法線都是從glutSolidSphere計算出來的,所以不知道還有什麼可能會失敗......有什麼想法?