Я добавил источник света в свой проект JOGL, который, кажется, работает достаточно хорошо, когда объект неподвижен, когда я перемещаю камеру, она постепенно темнеет по мере вращения, чего я и ожидал, но как только он поворачивается на 90 градусов, экран гаснет. полностью черный, кто-нибудь знает, почему это так? Нужен ли мне другой источник света для другой стороны? Я надеялся, что он будет действовать как солнце, то есть освещать всю сцену, но будет немного темнее, когда камера находится с другой стороны объекта.
Освещение
float light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
float light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
float light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
float light_position[] = { 1.0f, 1.0f, 1.0f, 0.0f };
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_AMBIENT, light_ambient, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_DIFFUSE, light_diffuse, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_SPECULAR, light_specular, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_POSITION, light_position, 0);
gl.glEnable(GL2.GL_LIGHTING);
gl.glEnable(GL2.GL_LIGHT0);
gl.glDepthFunc(GL.GL_LESS);
gl.glEnable(GL.GL_DEPTH_TEST);
Во-вторых, когда камера вращается, некоторые формы, кажется, деформируются и выглядят как совершенно другие формы, то есть кубы поворачиваются как подушечки для булавок, стороны невероятно растягиваются, и это делает весь мой объект слегка деформированным. Есть ли простой способ изменить это? Я пытался возиться с gluPerspective
, и это, похоже, тоже не меняет того, что я хочу. Есть ли способ обойти это?