ich habe eine Art (sehr einfache) 3D-Engine geschrieben, in Verbindung mit einem Wavefront-Obj-Loader.
Allerdings gibt es irgendwie ein paar Probleme mit dem Lighting... Wenn ich die Objekte bewege oder rotiere, bewegt sich die lichtquelle mit - allerdings völlig irrational. Außerdem ist das Objekt teilweise stark unter- oder überbelichtet.
Woran könnte das liegen? Vielleicht kann jemand das Problem auch so schon lösen, vielleicht ist es auch altbekannt... ich habe nur oberflächlich in alten themen gestöbert.
Ansonsten füge ich natürlich auch einen Code bei, falls erwünscht.
Am Verzweifeln....
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Erstmal willkommen in der DP!
Zu stark unter-bzw. überbelichtet: Das liegt evtl. an Deinen Normalen. Diese sollten normalisiert sein, also alle die Länge 1 haben. Das OGL-Licht berechnet sich aus eben diesen und da fließt die Länge mit ein.
Zu dem Ball: Dieses Problem lässt sich auch durch die Normalen erklären. OGL berechnet das Licht vertexbasiert. Wenn nun eine Vertexnormale vom Licht abgewandt ist, dann ist dieser Vertex dunkel, ansonsten hell. Da der Ball aus einem Polygonnetz besteht und (wahrscheinlich) alle Normalen je Vertex senkrecht auf die Oberfläche stehen, ist der Winkel je Normale zur Lichtquelle ein anderer, und wenn das nun je 'Polygonlage' wechselt, dann franst das so aus.
Zu verschiebendem Licht: Die Reihenfolge der Lichtdeklaration spielt hier eine große Rolle. Je nachdem, wann das Licht aktiviert wird, isses statisch oder dynamisch. Z.B: kann man eine Taschenlampe definieren, indem man das Licht vor der Kamerainitialisierung setzt. Mehr dazu findest Du hier
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Vielen Dank für den Tipp mit den Normalen. Dadurch gelang es mir die eine Hälfte des Problems zu lösen. Die großen Hell-Dunkel-Unterschiede konnte ich durch Übergabe eines Specular-Lichtwertes beseitigen.
Die Normals berechne ich allerdings nicht, sondern lese sie aus der .obj-Datei ein. Dabei ist mir aufgefallen, dass die meisten Modelle, die ich selbst mit Blender erstellt habe, falsche Normalen besitze. Ist das Zufall oder irgendwie allgemein bekannt, dass das Programm beim Exportieren in Wavefront mit den Normalen Schwierigkeiten hat?
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Blender sollte eigentlich keine falschen Normalen exportieren. Zumindest mit dem Obj-Exporter.
Aber es macht einen Unterschied, ob die Normalen in Blender vor den Exportieren gesmoothed sind oder nicht.
Ansonsten kann ich dir mal meinen OBJ-Loader empfehlen. *werbung.mach* Der lädt alle von Blender exportierten Dateien wunderbar mit Texturen, Materials, Transparenz etc.
Vielleicht ist er ja ganz hilfreich für Dich.
Letzteres, ich bitte diesen Lapsus zu entschuldigen. Natürlich meinte ich DGL, aber leider sagt man ja nicht immer das, was man meint. Asche auf mein Haupt. Ich tus nie wieder, versprochen.
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ach DP ist ja auch keine schlechte Seite. Wir haben hier viele Leute mit nem DP Account. Andere trifft man ab und an bei DSDT (das ist keine RTL Sendung! ).
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
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.