Um die Normalen einer UV-Sphere zu testen, wird die Kugel scharf von links beleuchtet (Position -100, 0, 0). Ergebnis ist zunächst wie erwartet, links hell, rechts schattig dunkel (Ambientlicht nur schwach). Übergänge schön gleichmäßig. Das bleibt auch so beim Rotieren.
Anders, wenn ich das Teil mit glScale skaliere. Beim Vergrößern wird der Unterschied zwischen Lichtseite und Schatten immer geringer, beim Verkleinern erhöht sich der Kontrast, bis die linke Hälfte fast weiß ist, die rechte Hälfte fast übergangslos dunkel. Gibt es dafür eine Erklärung?
Ach ja, die Skalierung erfolgt in den 3 Dimensionen gleich, die Normalen haben wirklich die Länge 1, ich hab's überprüft. Das Licht wird nur zu Beginn einmalig eingestellt.
Danke. Im Prinzip war mir das schon klar, und ich hatte die Vektoren vor glNormal noch einmal normalisiert. Dabei bin ich aber einem Gedankenfehler aufgesessen. Der Aufruf von glScale war ja schon vorher erfolgt, und damit geschah auch das nachträgliche Normalisieren in einem verzerrten bzw. gespreizten Vektorraum und war somit unwirksam. glEnable (GL_NORMALIZE) hilft aber.
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.