-1
У меня проблема с подсветкой в библиотеке OpenGL. Сцена черная, свет невидимый, если GL_SPOT_CUTOFF меньше 125. Я предположил, что проблема касается направления источника света, но я попробовал множество вариантов как для позиции, так и для направления внимания. Вот мой код:Spotlight issue OpenGL
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 };
glPushMatrix();
glLoadIdentity();
GLfloat spot_direction[] = { 0.0, -1.0, 0.0 ,0.0};
GLfloat spot_position[] = { 1.0,1.0,0.0,1.0 };
glLightfv(GL_LIGHT1, GL_POSITION, spot_position);
glLightfv(GL_LIGHT1, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT1, GL_SPECULAR, light_specular);
glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 60);
glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, spot_direction);
glLightf(GL_LIGHT1, GL_SPOT_EXPONENT, 100);
glPopMatrix();
glEnable(GL_LIGHT1);
Похоже, что объект просто не достаточно близко к свету, на который он может воздействовать. Если он работает с отсечкой> 125, но не менее, ваш объект явно находится за пределами светового конуса. – ChrisF
Примечание: OpenGL, который вы используете, устарел почти десятилетие. Если вы не работаете над проектом истории, изучите современный OpenGL - иначе вы тратите свое время. – GraphicsMuncher
@GraphicsMuncher Эта версия openGL требуется. – james