2013-02-20 3 views
1

Ive добавил источник света к моему проекту JOGL, который, кажется, работает очень хорошо, когда объект неподвижен, когда я перемещаю камеру, он постепенно становится темнее, когда он вращается, что и ожидалось, но как только поскольку он вращается на 90 градусов, экран становится полностью черным, кто-нибудь знает, почему это так? Нужно ли мне использовать другой источник света для другой стороны? Я надеялся, что это будет действовать как солнце, то есть осветит всю сцену, но будет немного темнее, когда камера находится на другой стороне объекта.JOGL - освещение/камера

Освещение

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); 

Во-вторых, когда камера поворачивается некоторые формы кажутся деформироваться и выглядеть совершенно разных форм, то есть кубики токарных подушечку для булавок, как, стороны растягиваются невероятное количество и его решений весь мой объект выглядит немного деформированным. Есть ли простой способ изменить это? Ive попытался возиться с gluPerspective, и это, похоже, не изменит то, что я хочу. Есть ли способ обойти это?

+0

Опубликовать [SSCCE] (http://sscce.org/). – genpfault

+0

Добавлен код освещения – thrash

ответ

0

Вы добавили диффузный и зеркальный свет к вашей сцене, но они не достигнут поверхностей, которые обращены в сторону от источника света. Вы можете добавить некоторый окружающий свет (в настоящее время установленный в 0, 0, 0 в фрагменте кода), чтобы все поверхности получили некоторое освещение.

Что касается деформированных фигур, то это действительно отдельный вопрос, и не хватает деталей, чтобы знать, почему это происходит.