Etwas gefrustet, weil ich mir gerade das NVidia Texture Pack runtergeladen hatte ( http://developer.nvidia.com/object/IO_TTVol_01.html ), dieses mir aber wenig nützte, weil alle Texturen im DirectX DDS Format vorlagen, habe ich mich hingesetzt und einen einfachen OpenGL DDS Loader von C nach Delphi konvertiert.
Der Loader ist denkbar einfach: die DDS Datei wird geladen und an die aktive Textur gebunden (in Carad wird das Ganze in einem TGraphic Abkömmling gekapselt, der sich das Bild wieder aus der Textur rausholt, sodass die ganze Konvertierarbeit an sich OpenGL macht).
Da die Unit sehr kurz ist, und keinen BaseGraph spezifischen Code enthält, stelle ich sie mal online - vielleicht nützt der Code ja dem einen oder anderen Texturlader.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pfft -da hast du recht. Ich war davon ausgegangen dass man die Texturen zumindest in Freeware oder Open Source verwenden kann, wenn sie NVidia schon online stellt - soo toll sind sie ja nun auch wieder nicht - was wieder mal zeigt, dass Lizenzbestimmungen tatsächlich auch zum Lesen da sind .
Immerhin funktioniert der DDS-Texturenlader einwandfrei (vorausgesetzt die der Grafiktreiber unterstützt S3TC Dekompression, was aber die meisten halbwegs aktuellen Windows OpenGL Treiber tun sollten, da dies ein fester Bestandteil von Direct3D ist) - das ARB ist bei komprimierten Texturen einen flexibleren Weg gegangen, der keinen Algorithmus vorschreibt, es dafür schwieriger macht komprimierte Texturen zwischen unterschiedlichen Grafikkarten zu transferieren (in der Praxis wird aber dennoch in fast allen Fällen S3TC verwendet).
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Danke für den tollen Loader, auch wenn das DDS-Format nicht unbedingt ein Muss ist, so hat es doch einige (aufgrund seiner Zielgruppe wohl logische) Vorteile ggü. anderen Formaten.
Ich finds z.B. ganz nett, dass man nun von Hand in einer Datei alle Mip-Map-Stufen einer Textur bearbeiten kann. Hab das dann auch mal schamlos ausgenutzt und ne einfarbige Texture gemacht bei der die Mip-Map-Stufen jeweils ne andere Farbe haben, um mal in Aktion zu sehen wie die Radeon je nach Winkel der Fläche anisotrop filtert.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ja, da gibts ja das nette DSS-Plugin, mit dem man diese Dateien sowohl laden als auch speichern kann. Alternativ ist das Plugin übrigens auch mit dem kostenlosen GIMP nutzbar, das mir aber aufgrund seiner von Windows so stark abweichenden GUI absolut nicht zusagt.
Das Teil strotzt übrigens nur so vor funktionen; quasi alles wovon ein 3D-Programmierer so Nachts träumt :
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Höh, das ist ja wirklich cool. An sich wäre mir Gimp ja sympathischer, da nicht kommerziell, werde mir das wirklich mal ansehen müssen.
Auf der NVidia Homepage gibt es auch C++ Code für den direkten Import und Export von S3TC Bilddaten (also ganz ohne OpenGL). Wäre eventuell direkt überlegenswert DDS als allgemeines Texturformat für BaseGraph zu verwenden (bis jetzt nehme ich 32 Bit TGA Dateien und ein proprietäres eigenes Format für 1D- und 3D-Texturen sowie Cubemaps).
Mal schauen, wieviel Aufwand das wäre - ganz glücklich bin ich nämlich nicht darüber, dass der DDS Loader S3TC OpenGL Unterstützung praktisch erzwingt (obwohl der Code dafür schön kurz ist).
Es wäre zwar kein Problem für den Im- und Export DirectX heranzuziehen, dann ist aber die schöne Linux-Kompatibilität futsch.
Mitglieder in diesem Forum: 0 Mitglieder und 111 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.