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

Aktuelle Zeit: Fr Jul 18, 2025 12:30

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



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

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hab ganz vergessen das du deine Lightmaps alle in einer Textur sicherst.Dann musst du aber (koste es was es wolle :wink: ) die Lightmaps mit einem Mindestabstand von einem Pixel in deine große Textur zeichnen, denn es liegt in der Art des biliniearen Filtering das über die komplette Textur interpoliert wird (sprich benachbarte Pixel miteinbezogen werden), und wenn eine Lightmap direkt ohne Abstand neben der anderen liegt, dann "bluten" deren Ränder in umliegenden Lightmaps herein, woher dann wohl auch deine schwarzen Ränder resultieren.
Um dieses Problem zu vermeiden, solltest du halt ganz einfach die Ränder der Lightmap duplizieren.Ich versuchs mal zu erklären wie ichs meine : Die Reihe links von deiner LM füllst du dann mit der ersten Pixelreihe deiner Lightmap statt mit schwarz, ganz genauso zeichnest du Reihe 33 in Reihe 34.Hoffe das war verständlich, und sollte so auch ohne Probs funzen.

P.S. : Haste dir mal das von mir ganz oben gepostete PDF angesehen?Der machts doch auch mit nem schwarzen Rand und hat damit keine Probs...evtl. macht der nur was beim Texturenfiltering anders.

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


Zuletzt geändert von Sascha Willems am Fr Aug 08, 2003 21:59, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 21:59 
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:
Um dieses Problem zu vermeiden, solltest du halt ganz einfach die Ränder der Lightmap duplizieren.Ich versuchs mal zu erklären wie ichs meine : Die Reihe links von deiner LM füllst du dann mit der ersten Pixelreihe deiner Lightmap statt mit schwarz, ganz genauso zeichnest du Reihe 33 in Reihe 34.Hoffe das war verständlich, und sollte so auch ohne Probs funzen.


Genau das hab ich versucht zu erklären *g* So mache ich es ja :)
Also kann's daran auchnet liegen :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 22:01 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Dann lass mal nur die Lightmaps anzeigen (ohne Basemap) und mach davon mal nen aussagekräftigen Screenshot.Evtl. kann ich dir dann besser helfen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 22:04 
Offline
DGL Member
Benutzeravatar

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

Bild

Interressant ist auch, desto näher ich an die "streifen" rangehe, desto mehr verschwinden sie *schaut verwirrt*

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 22:08 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Auf dem Screenshot sieht man direkt das es am Texturefiltering liegt und die Ränder in deine Lightmaps "hineinbluten".Un die Tatsache das die Streifen "etnfernungsabhängig" sind, liegt halt am MipMapping welches ja für verschiedene Entfernungen verschiedene Texturen erstellt.
Schau mal auf der Seite zum von mir geposteten Dokument ( http://users.pandora.be/BluePrint/thesis/ ) in der Downloadsektion nach, dort gibts nämlich das Lightmapsample, bei dem auch alle Lightmaps in einer Textur abgelegt werden.Evtl. findest du dort im Quellcode die Lösung deines Problems, die wohl irgendwo beim Texturenfiltering zu suchen ist.

Edit : Evtl. bringts auch was wenn du die Lightmapkoordinaten minimal skalierst, also z.B. statt S=1/T=1 einfach mal S=1.1/T=1.1 (Evtl noch kleineres Delta) nimmst.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 22:23 
Offline
DGL Member
Benutzeravatar

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

also ich wühl mich grad durch die C Dateien da... is ja horror *g*
Ich find nichmal die stelle wo er Texturen erstellt... (Der benutzt DevIL.. hab ich 0 ahnung von ;) )

Son of Satan hat geschrieben:
Edit : Evtl. bringts auch was wenn du die Lightmapkoordinaten minimal skalierst, also z.B. statt S=1/T=1 einfach mal S=1.1/T=1.1 (Evtl noch kleineres Delta) nimmst.

Wie meinst'n das??

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 22:25 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Aya hat geschrieben:
Wie meinst'n das??


Anstatt bei glTexCoord2f z.B. von S=0..1 und T=0..1 zu gehen, gehst du einfach hin und gehst von S=0..1.01 und T=0..1.01 (das Delta musst du halt solange variieren bis es passt), wodurch die Ränder (die ja sehr schmal sind) ausserhalb des Mappings liegen und so nicht mehr sichtbar sein sollten.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 22:27 
Offline
DGL Member
Benutzeravatar

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

aber damit die ränder ausserhalb des Mappings sind, müßte es doch eher so sein, oder? ->

von 0.01 .. 0.99

*schaut unsicher*

Au'revoir,
Aya~

PS: Hab mich nu in den C Dateien zurechtgefunden... der macht auch für jedes Triangle eine Textur, also nicht eine große... :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 22:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Aya hat geschrieben:
aber damit die ränder ausserhalb des Mappings sind, müßte es doch eher so sein, oder? ->

von 0.01 .. 0.99

Sorry...liegt wohl am Wetter :evil: .Natürlich soll es S=0.01..0.99 und T auch 0.01..0.99 sein.Da musst du dann mal ein wenig variieren bis es passt.

Aya hat geschrieben:
PS: Hab mich nu in den C Dateien zurechtgefunden... der macht auch für jedes Triangle eine Textur, also nicht eine große... :(

Tolles Suppe...da frag ich mich echt warum der Autor groß von einer Textur rumplappert und das groß und breit in seinem Dokument inklusive Screenshot zeigt.
Probiers halt mal mit den Texturkoordinaten, wenns dann immernoch ned klappt, suchen wir halt ne andere Lösung.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 22:48 
Offline
DGL Member
Benutzeravatar

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

Aya's Newsticker, Live vom Ort des Geschehens! *ticker* *ticker* :)

Also... ich hab nu nen bissel rumgespielt mit den Koordinaten, aber so wirklich klappen tut es damit auchnet... :(

Aber ich hab ne neue entdeckung gemacht.. *g*
Ich habe mal einfach um was zu testen um jede Lightmap einen Grünen rahmen gezogen:
Bild

Das ganze sieht dann so aus:
Bild

Es stimmt aus jeder blickrichtung und von überall, keine einzige Kante mehr drin, auch nirgendwo kommt was rotes zum vorschein... kann mir das jetzt mal wer erklären? *g*

Au'revoir,
Aya~

EDIT: Halt, alles zurück... auch bei den grünen linien sieht man manchmal rote stellen.. die Kanten sind wahrscheinlich auch da, nur halt getarnt, weil ja nun alle kanten gleichfarbig sind... :(

EDIT EDIT: *g* Ich bin ja auch blöd ... selbst auf dem Screenshot sind rote stellen :P


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 23:09 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hab eben nochmal was rumprobiert mit den Koordinaten verschieben... hab es wie mir eben aufgefallen ist, vorhin immer an der falschen stelle gemacht :oops:

Also ich hab die Koordinaten nun soweit verschoben das die äußerste Reihe der Lightmap (also der grüne rahmen) nichtmehr sichtar ist wenn man von oben draufguckt...

Desto weiter ich die fläche nun drehe, desto sichtbarer werden die Grünen kästchen.. und wenn ich fast waagerecht auf die fläche gucke, sieht man sogar schonwieder rote stellen...

und 2 Pixelreihen auf jeder seite kann ich doch schlecht wegschneiden, sieht ja dann doof aus :(

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 23:14 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich hab jetzt nach ner recht intensiven Suche im Netz zu diesem Thema eigentlich nichts brauchbares gefunden.Zwar hab ich einiges im Bezug auf das Packen der Lightmaps in eine Textur gefunden, dort wird allerdings nirgendwo etwas im Bezug auf das Texturesampling gesagt, es sieht also schlecht aus.
Evtl. solltest du deshalb mal mit dem Texturesampling rumspielen und es auch mal ohne MipMapping probieren.Ansonsten kann ich dir nur mal empfehlen die verschiedenen Möglichkeiten die dir glTexParameter bietet auszutesten.
Momentan legt mein Lightmapper noch alle Lightmaps einzeln ab, weshalb ich dir bei deinem Problem nicht konkret weiterhelfen kann, aber sobald ich auch dieses Feature in meinem Lightmapper hab, werd ich dem Problem mal genauer auf den Grund gehen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 23:20 
Offline
DGL Member
Benutzeravatar

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

ok, ich werd mal alle möglichen kombinationen testen *g*

@Feature einabauen: Also bei mir ist sind der Lightmapper an sich, und der LightmapManager getrennte Klassen/Units... ich könnte dir wenn du möchtest den LightmapManager schicken.

Bei dem mußt du nur bei der erstellung sagen wieviele Lightmaps kommen, und wie groß diese sein werden.

Code:
  1. LightmapManager:=TLightmapManager.Create(TriCount,32);


dann mußt du nur jede einzelne Lightmap im BMP-Format als Stream übergeben:

Code:
  1. LightmapManager.AddLightmap(LightMapTexCoords,BMPStream);


und am ende einmal ein .CreateLightmap aufrufen :)

Schon haste deine große Lightmap + Texturkoordinaten und kannst damit anstellen was du willst *g*

Willst's mal haben???

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 23:22 
Offline
DGL Member
Benutzeravatar

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

Ich hab jetzt das MipMapping rausgenommen, klappt einwandfrei wunderbar ohne irgendnen roten strich... :)

Da hätte man früher mal drauf kommen können *g*

*hüpft fröhlich rum*

Au'revoir,
Aya~

PS: Ich schick dir den LightmapManager trotzdem gern ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 08, 2003 23:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
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.

_________________
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 ... 3, 4, 5, 6, 7, 8, 9 ... 11  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder 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.008s | 15 Queries | GZIP : On ]