Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Jdv hat geschrieben:
@Line-Triangle Intersection
Könnte man nicht einfach erst eine einfach Ray-Triangle intersection vom Lumel zum licht machen und erst wenn diese eine Intersection meldet dann noch einmal mit dem selben Triangle eine Ray-Triangle Intersection vom Licht zum Lumel aus machen. Wenn beide eine Intersection melden müsste doch das Dreieck genau zwwischen den beiden liegen?
Und wo liegt dann dort der Vorteil?Dann müsste man doch zwei Intersektionstests machen, und einer ist schon recht rechenaufwendig.Dadurch würdest du doch im Endeffekt nur die Anzahl der Berechnungen erhöhen, ohne irgendwie ein besseres Ergebnis zu bekommen.
_________________ - JALE - Just another little engine
<br>... it's not a bug it's a feature
<br><a href='http://www.JoachimdeVries.de' target='_blank'>http://www.JoachimdeVries.de</a>
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ich betätige much nur ungern als Archäologe, mache aber dafür auch nur ungern nen neuen Thread auf : Würde Interesse an meinem fertigen Lightmapper (mit Schatten) bestehen, der als Input 3DS-Dateien nimmt? Hab nämlich grade ein wenig am Lightmapper gewerkelt und den von ASE auf 3DS umgestellt. Fehlen tut da jetzt eigentlich nur noch ne ordentliche GUI und ne GL-Vorschau.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Da ich nicht mit DeleD arbeite wird as unwahrschneinlich. Aber eigentlich wollte ich die Sache mit zumindest halbwegs lesbarem Quellcode veröffentlichen, so dass eine Erweiterung auf andere Formate recht einfach werden sollte. Man muss im Endeffekt eigentlich nur die Dreiecks- und UV-Daten aus der Szene nehmen und in ein Dreiecksarray kopieren, anhand dessen dann die Lightmaps berechnet werden.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wenn du sowieso schon irgendwie DeleD-Maps laden kannst, wirds ein Kinderspiel sein den Source auf dieses Format zu erweitern, solange es natürlich UV-Koordinaten mitexportiert, die ja für die Berechnung der Lightmaps gebraucht werden.
Die GUI steht inzwischen, Schatten und Lightmaps werden generiert und die entsprechenden Koordinaten auch in eine passende Datei exportiert. Problematisch ist allerdings zum einen die Geschwindigkeit (ist halt im Endeffekt Raytracing, und dazu noch recht unoptimiret) und Schattenartefakte, die wohl im Endeffekt (wie hier im Thread angesprochen) durch Rundungsfehler entstehen.
Werd dann wohl die Tage ne vorläufige Version mit komplettem Source veröffentlicht, in dem sich dann die Leute die ihn brauchen an der Problembehebung probieren können. Hab dazu nämlich nicht sonderlich viel Lust, zumal ich momentan keine Verwendung für den Lightmapper habe, wollte aber den Quellcode nicht einfach auf der Paltte vergammeln lassen.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Das größte Problem ist immernoch die Sache mit den Dreiecksübergängen, denn da sieht man dann Lightmapartefakte, und ich bin immernoch am Rätseln wie man an denen vorbeikommt. Eine Umstellung auf ne höhere Präzision bei der Berechnung (von Single nach Extended) hat kaum was gebracht.
Ansonsten überlege ich mir grade noch wie ich die Lichtinformationen übernehmen. Hatte das bisher in ner externen Datei, werde aber wohl den 3DS-Loader so erweitern das er die Lichter aus der 3DS-Datei ausliest.
Könnte also noch ein wenig dauern, zumal ich die letzet Zeit an was anderem gewerkelt habe. Werd mich aber definitiv drum kümmern.
Registriert: Sa Nov 02, 2002 18:06 Beiträge: 299 Wohnort: Dresden
Wenn du einfach die Ränder wegschneidest? WUrde ja glaube ich in diesem Thread mal diskutiert. Also ich würde die Lightmaps bei der Berechnung ein wenig strecken und dann beim Zeichnen das nicht-benötigte wieder abschneiden.
_________________ "Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ne, das ist es ja. Man hat nicht an allen Kanten (wie man im Shot sieht) dieses Problem. Wenn du jetzt also alle Lightmaps einfach etwas "strecken" würdest, dann hätte man Löcher im Schatten.
Registriert: Sa Nov 02, 2002 18:06 Beiträge: 299 Wohnort: Dresden
Nein, ich meine schon bei der Berechnung der Lightmaps die Textur größer als das Dreieck an sich machen, dass sihc die Ränder überlagern. Da diese Artefakte immer an den Rändern der Textu auftreten würden diese Ränder dann sowieso abgeschnitten werden.
_________________ "Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ne, das bringts auch nicht. Besonders bei riesigen Flächen die nur aus sehr wenigen Dreiecken bestehen (z.B. ein riesiges Bodenquad) fällts auf wenn man das macht (habs grade getestet). Habe auch testweise mal die Dreiecke für die Lightmapberechnung etwas vergrößert (0.1 * Normalvektor zwischen Dreiecksmitte und Vertex), aber das führte zu noch schlimmeren fehlern. Mal sehen ob ich da irgenwie ne Lösung finde, wenn nicht gibts den Source so und jeder der ihn braucht (ich brauch den momentan z.B. eigentlich garnicht) kann sich dann selbst dran versuchen.
P.S. : Dem 3DS-Format merkt man langsam sein Alter an...für Omnilights wird z.B. keine Reichweite gespeichert, was also dazu führt das man die Lichtreichweite nicht aus der 3DS-Datei entnehmen kann.
Die Frage ist, ob es sich heutzutage überhaupt noch lohnt sich näher mit Lightmapping zu beschäftigen.(Der Thread ist ja auch schon etwas älter.) So ziemlich jede Karte kann in irgendeiner Weise Shader und da bringt's einem eventuell mehr wenn man gleich damit beginnt.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ja, da stimme ich dir 100% zu. Mir gehts eigentlich nur darum das der Code nicht auf der Platte vergimmelt, ich persönlich werde wohl für kein Projekt mehr Lightmaps nutzen.
Mitglieder in diesem Forum: 0 Mitglieder und 4 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.