Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:51

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 151 Beiträge ]  Gehe zu Seite Vorherige  1 ... 4, 5, 6, 7, 8, 9, 10, 11  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 23:25 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Son of Satan hat geschrieben:
Danke für das Angebot, aber ich gehör halt eher zu den Proggern die lieber alles selbst machen, weshalb ich das auch auf eigene Faust implementieren werde.

Das' brav :)
Bin genauso, benutze in der regel keine einzige Fremd Komponente, will auch immer alles selber machen.. Is manchmal ein wenig stressig, aber.. man lernt schön bei ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 16, 2003 17:32 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

hab nochnen kleines PRoblem bei meinem Lightmapper gefunden, bzw eher bei meiner berechnung für den Schatten...

Wenn ich z.B. 2 Triangle habe die zusamme ein quadrat ergeben, dann kann es unter umständen (Wenn die beiden Tris ungünstig liegen) dazu kommen, das die schattenberechnung fehlschlägt... denn:

Wenn z.B. ein Lumel direkt an der stelle liegt wo die beiden Triangles zusammenliegen, dann geht der Lumel durch TriA und TriB.. also es trifft genau auf die linie zwischen diesen beiden... dadurch denkt die berechnung dann "Oh... TriB wird schatten auf TriA" was aber eigentlich garnicht so ist.

Meine lösungsansätze waren das ich getestet habe ob das Triangle welches gerade getestet wird das nachbar Tri vom aktuellen ist etc... hat zwar alles immer für diesen fall geklappt, aber dann gab es wieder probleme in anderen speziellen fällen... :(

Benutzt du denn auch für die Line/Triangle Intersection das von www.gametutorials.com??? Wenn nicht, bitte ich dich jetzt zum was weiß ich wievielten mal darum mir die dochmal bitte zu geben, bzw zusagen wo du sie herhast ;)

Oder hast du evtl ne andere Idee für das Problem?? (Welches, wenn du bei dir nicht was geändert hast auch auftreten müßte)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 16, 2003 17:47 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Das Problem tritt bei mir auch auf, und meine Ray-Triangle-Intersektion basiert auch auf der von www.gametutorials.com .Ich hatte bisher allerdings auch noch nicht die Zeit mich länger mit diesem Problem zu beschäftigen, aber wie kaum zu übersehen liegts an der Ungenauigkeit der Berechnungen.Deshalb würde es evtl. was bringen anstatt die Berechnungen auf Single-Basis (4Byte) auf Double- (8Byte) oder noch besser auf Extended-Basis (10Byte) durchzuführen, um so diese mathematischen Ungenauigkeiten aufgrund der unzureichenden Genauigkeit des Single-Datentyps zu vermeiden.
Wenn das nichts bringt wäre es evtl. auch ne Idee die Dreiecke zur Lightmapberechnung nur minimalst zu verkleinern, so dass es keine Kanten mehr gibt die sich treffen.Die so entstehenden Lücken werden dann wohl wahrscheinlich durch das Texturensampling und die recht niedrige Auflösung der Lightmaps eliminiert...ob das funzt kann ich allerdings nicht sagen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 17, 2003 17:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
also um das jetzt kurz zu sagen, denke ich, dass die zweite idee von sos einfach mal besser ist.
da fallen die ungenauigkeiten nicht wirklich auf, die durch den gebrauch von single entstehen.
ich bin zwar noch lange nicht soweit in diesem bereich, wie ihr, doch mit meinem halbwegs gesunden menschenverstand denke ich ist das eigentlich ganz leicht (nur minimale änderungen) zu erreichen und es gibt nicht mehr diese fehler.

einfach alle koords der tris um einen faktor etwas kleiner 1 multiplizieren und schon passt das eigentlich, wobei man dann gegen die original koords aller anderen tris testen sollte !!!!

rswm

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 18, 2003 13:34 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

klingt leicht, klingt logisch, klingt optimal - ist schwer :P

Ne, ernsthaft... Mir is klar wie es gehen soll und alles, nur bei der umsetzung hab ich grad ein paar probleme ;)

Nehmen wir ein Triangle das irgendwo in der landschaft steht... dieses Triangle wollen wir nun also um sagen wir mal 0.9 Skalieren (übertrieben)... Wie...??? einfach jeden Vertex mit 0.9 malnehmen geht schonmal nicht, denn dann wäre der Pivot (der punkt um den das Triangle Skaliert/Rotiert wird) in der mitte der Scene und somit würde das Triangle nur ein wenig näher zur mitte rutschen..

Wir müßen also den Pivot in die mitte des Triangles bekommen und das Tri dann um diesen Pivot skalieren..

und ich hab KA wie man das Mathematisch löst...:|

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 18, 2003 13:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Auch wenn ich kein gelehrter Mathematiker bin, hast du (wenn ich mich nicht gänzlich irre) die Technik um das zu realisieren bereits in deinem Lightmapper drin.
Das du nicht einfach alle Komponenten der Eckpunkte des Dreiecks skalieren kannst ist klar, allerdings musst du doch nur herausfinden auf welcher Ebene das Dreiecke liegt und kannst daran erkennen welche Komponenten zu skalieren sind, und das lässt sich ja ganz einfach übers planare Mapping rausfinden.Wenn dein Dreieck nun auf der YZ-Achse liegst, skalierst du genau diese Komponenten und lässt X unangetastet.

Das dürfte rein theoretisch funzen, aber die Angaben sind wie immer ohne Gewähr... :wink:

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 18, 2003 13:50 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ja... aber das kann immernochnicht klappen :(
Denn nehmen wir an das Dreieck liegt bei den Koordinaten 5,5,5... dann rutscht es auf alle fälle richtig mitte wenn wir irgendeine Koordinate mit 0.9 malnehmen...

Au'revoir,
Aya~

PS: Ich hab die sache mit den Pivots in meiner Engine ja schon drin (siehe der Editor), nur ist es da mit Matrix Multiplikation etc gemacht... als notlösung könnte man das evtl umbasteln.. *guckt nachdenklich*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 25, 2003 01:50 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
hi,

mir ist grad noch eine sache aufgefallen... ich hab es grad eingebaut das bei meinem Editor die Lightmaps mitgespeichert werden und, wenn ich da in die Datei mit den TexturKoordinaten reinschaue steht da ein paarmal NAN drin.. Hast du ne idee woran das liegt??? (Was bedeutet NAN eigentlich genau??)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 25, 2003 02:12 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
NAN = Not a Number

Das bedeutet das irgendwo bei deinen Berechnungen etwas nicht klappt (z.B. Division durch Null), bei mir ist das Problem allerdings noch nicht aufgetreten.

Zitat:
Beschreibung

Mit NaN (Not a Number = keine Zahl) können Sie in Delphi einer Gleitkommavariable einen Wert zuweisen, der keine Zahl darstellt. Verwenden Sie NaN nicht in Vergleichsoperationen. Mit der Funktion IsNan können Sie prüfen, ob eine Variable oder ein Ausdruck den Wert NaN hat.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 25, 2003 02:26 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ok.. hab den fehler schon gefunden... es konnte u.U. ein Div By Zero geben (wieso mäckert Delphi da nicht??), wodurch wohl das NAN kam.. :)

Au'revoir,
Aya~

PS: Willst du mir nicht dochmal deine ICQ Nummer geben? *g* Ich langweile mich zu tode.. is niemand mehr on zum reden :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 25, 2003 14:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Aya hat geschrieben:
ok.. hab den fehler schon gefunden... es konnte u.U. ein Div By Zero geben (wieso mäckert Delphi da nicht??), wodurch wohl das NAN kam.. :)


In der OpenGL-Unit wird die FPU so konfiguriert, das sei bei einer Division durch Null keine Exception mehr auslöst, denn wenn dem so wäre würdest du mit solchen Meldungen überhäuft werden.Das ist dann auch der Grund warum Delphi dir eine solche Exception nicht mitteilt.

Delphi-Hilfe hat geschrieben:
Es ist zum Beispiel empfehlenswert, alle Gleitkomma-Exceptions zu deaktivieren, wenn OpenGL zur Darstellung von 3D-Grafiken eingesetzt wird. Rufen Sie dazu (vor dem Aufruf einer OpenGL-Funktion) in der Ereignisbehandlungsroutine für OnCreate des Hauptformulars Set8087CW(0x133f) auf.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 04, 2003 22:15 
Offline
DGL Member
Benutzeravatar

Registriert: Do Aug 01, 2002 13:25
Beiträge: 32
Wohnort: Niedersachsen
Hi,

ich habe gerade versucht mir den Lightmapper von SOS runterzuladen. Allerdings ist es mir nicht so ganz gelungen. Könnte mir jemand sagen wo ich den herbekomme? (incl. Source)

Vielen Dank

_________________
- 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>


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 04, 2003 22:21 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Habs grad probiert, und bei mir funzt der Download ohne Probleme.Schick mir mal ne PM mit deiner E-Mail-Adresse, und dann schick ich dir den Quellcode.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 05, 2003 16:57 
Offline
DGL Member
Benutzeravatar

Registriert: Do Aug 01, 2002 13:25
Beiträge: 32
Wohnort: Niedersachsen
Hi SoS,

vielen Dank für die Mail.. hat mir sehr weiter geholfen.

http://www.joachimdevries.de/Download/Datenblatter_Download/datenblatter_download_16.html

_________________
- 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>


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 05, 2003 19:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Nett zu sehen, das die "Konkurrenz" aus dem D3D-Lager doch noch (zumindest ein wenig) aktiv ist :wink:

Hab übgrigens grade noch ein im entsprechenden Flipcode-Artikel angesprochenes Feature in meinen Lightmapper integriert, welches die generierten (Light)Shadowmaps noch nachträglich weichzeichnet, und so den doch etwas störenden Trepffenstufeneffekt minimiert.Dabei wird von einem Pixel und seinen acht Nachbarn einfach der Mittelwert gebildet, also ein recht simpler Weichzeichnungsfilter.
Recht gut sichtbar wird dieser Effekt auf folgendem Screenshot (klicken zum Vergrößern), welcher links die Szene mit den weichgezeichneten (Light)Shadowmaps zeigt, und rechts ohne :
Bild

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 151 Beiträge ]  Gehe zu Seite Vorherige  1 ... 4, 5, 6, 7, 8, 9, 10, 11  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 10 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 15 Queries | GZIP : On ]