Я не знаю, чи роблю щось не так, чи щось не вистачаю, але я хочу імітувати сонячне світло, як у сонячний день.
Коли об’єкт стикається із спрямованим світлом, він добре освітлюється і там немає проблем. Якщо я обходжу об’єкт і дивлюся на його назад, темно. Це не надто темно, тому що я використовую, 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);