Я не знаю, делаю ли я что-то неправильно или что-то пропускаю, но я хочу имитировать солнечный свет, как в солнечный день.
Когда объект направлен на направленный свет, он хорошо освещен и там нет проблем. Если я обойду объект и посмотрю на него, оно темное. Это не слишком темно, потому что я использую, GL_AMBIENT
но все еще слишком темно для солнечного дня. Если я увеличу значение, оно никогда не будет выглядеть лучше, потому что сторона объекта, обращенная к свету, будет слишком яркой.
И есть еще одна раздражающая проблема с окружающим освещением, когда я смотрю на заднюю часть объекта, я не вижу никакой формы, только простой цвет. Трудно объяснить, вот несколько фотографий:
Фронт объекта: http://i.stack.imgur.com/YW53X.png Фронт
объекта: http://i.stack.imgur.com/Qufha.png
Как вы можете легко видеть, лицевая сторона выглядит хорошо, вы можете увидеть форму этой красной вещицы. С обратной стороны, это просто, вы не можете увидеть ту же форму.
Теперь я знаю, что смотрю на заднюю часть объекта и смотрю в направлении света, и он должен быть темнее передней стороны. Но это не должно выглядеть так просто. Это не то, что мы видим, когда идем против солнечного света, глядя на какой-то объект, мы видим, что объекты формируют некоторую форму.
Как я могу иметь такой же (или похожий) эффект на OpenGL?
Мой свет в настоящее время определяется так:
float posLight0[4] = {-1.0f, 1.0f, 1.0f, 0.0f};
float ambLight0[4] = {0.5f, 0.5f, 0.5f, 0.5f};
glLightfv(GL_LIGHT0, GL_POSITION, posLight0);
glLightfv(GL_LIGHT0, GL_AMBIENT, ambLight0);