Nie wiem, czy robię coś źle, czy coś pomijam, ale chcę symulować światło słoneczne, jak w słoneczny dzień.
Kiedy obiekt jest skierowany w stronę światła kierunkowego, jest dobrze oświetlony i nie ma żadnych problemów. Jeśli obejdę przedmiot i spojrzę na niego, jest ciemno. Nie jest zbyt ciemno, ponieważ używam, GL_AMBIENT
ale wciąż jest zbyt ciemno na słoneczny dzień. Jeśli zwiększę wartość, nigdy nie będzie wyglądać lepiej, ponieważ strona obiektu skierowana w stronę światła będzie zbyt jasna.
I jest jeszcze jeden irytujący problem ze światłem otoczenia, gdy patrzę na tył obiektu, nie widzę żadnego kształtu, tylko zwykły kolor. Trudno to wyjaśnić, oto kilka zdjęć:
Obiekt z przodu: http://i.stack.imgur.com/YW53X.png
Obiekt z tyłu: http://i.stack.imgur.com/Qufha.png
Jak łatwo zauważyć, przednia strona wygląda ładnie, widać kształt tej czerwonej rzeczy. Z tyłu jest prosty, nie widać tego samego kształtu.
Teraz wiem, że patrzę na tył obiektu i patrzę w kierunku światła, które powinno być ciemniejsze niż przednia strona. Ale to nie powinno wyglądać tak prosto. Tego nie widzimy, gdy patrzymy na światło słoneczne, patrząc na jakiś obiekt, widzimy, że obiekty kształtują się.
Jak mogę uzyskać taki sam (lub podobny) efekt w OpenGL?
Moje światło jest obecnie zdefiniowane w następujący sposób:
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);