Ich weiß nicht, ob ich etwas falsch mache oder etwas verpasse, aber ich möchte Sonnenlicht simulieren, wie an einem sonnigen Tag.
Wenn das Objekt dem gerichteten Licht zugewandt ist, ist es gut beleuchtet und es gibt dort keine Probleme. Wenn ich um das Objekt herum gehe und es wieder anschaue, ist es dunkel. Es ist nicht zu dunkel, weil ich es benutze, GL_AMBIENT
aber es ist immer noch zu dunkel für einen sonnigen Tag. Wenn ich den Wert erhöhe, wird er niemals besser aussehen, da die dem Licht zugewandte Seite des Objekts zu hell ist.
Und es gibt ein weiteres ärgerliches Problem mit dem Umgebungslicht: Wenn ich auf die Rückseite des Objekts schaue, sehe ich keine Form, sondern nur eine einfache Farbe. Schwer zu erklären, hier ein paar Bilder:
Objekt Vorderseite: http://i.stack.imgur.com/YW53X.png
Objekt Rückseite: http://i.stack.imgur.com/Qufha.png
Wie Sie leicht sehen können, sieht die Vorderseite gut aus, Sie können die Form dieses roten Dings sehen. Auf der Rückseite ist es einfach, Sie können nicht die gleiche Form sehen.
Jetzt weiß ich, dass ich auf die Rückseite eines Objekts und in die Richtung des Lichts schaue und dass es dunkler sein sollte als die Vorderseite. Aber es sollte nicht so einfach aussehen. Das ist nicht das, was wir sehen, wenn wir gegen das Sonnenlicht auf ein Objekt schauen. Wir sehen, dass die Objekte eine Form bilden.
Wie kann ich den gleichen (oder einen ähnlichen) Effekt auf OpenGL haben?
Mein Licht ist momentan so definiert:
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);