Allerdings kann ich keine Unterschiede ob mit oder ohne Filterung in der Darstellung erkennen. Wenn ich nach dem Abfragen von maxAnisotropy selbiges mit einem Showmessage ausgebe steht die Variable auf Null - ich schätze das ist nich normal.^^
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Wo aktivierst du da die Filterung?
Du lässt dir am Anfang des Renderns den Wert der Filterung geben und setzt sie am Ende wieder zurück. Da wird doch nie was aktiviert oder übersehe ich etwas?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Dieser Filterung muss für JEDE Textur extra eingestellt werden. Und dazu muss sie außerdem gebunden sein.
Extended und glGetFloatv? Float ist normal ein Single. Wenn der Wert in ein Extended geschrieben wird kann alles mögliche passieren. Allerdings ist die Filterung nur Ganzzahlig und deswegen kannst du da auch glGetIntegerv. Wenn du mit den typen probleme hast kannst du auch als typ. TGLfloat / TGLuint / TGLint etc benutzen. Das sind Typen die wir im Header schon definiert haben. Dann passiert so etwas nicht mehr so leicht.
Aja, ok, das mit den Typen hab ich behoben, jetzt hat sie den Wert 16. Allerdings scheint die Filderung auch zu wirken, wenn ich glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, maxAnisotropy); am Ende des Renderns aufrufe?!
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Der Wert für die Anisotrope Filterung bleibt doch erhalten, bis du einen anderen setzt.
So gesehen wirkt er nicht auf das erste gerenderte Bild aber ab diesem wirkt er, da am ende des renderns dann die Anisotropische Filterung aktiviert ist. Du musst sie also im prinzip nur einmal vor dem Rendern und danach nie wieder aktivieren, am besten direkt nach dem Laden der Texturen.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Ich glaube Lossy eX hatte Recht, ich merke grade dass sich das ganze nur auf eine Textur auswirkt. Da muss ich mich dann wohl nochmal mit gl3ds beschäftigen...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Solche Texturparameter werden immer auf die aktuell gebundene Textur angewandt. Daher kannst du nach dem Laden des Modells einfach alle Materialen deines 3D-Modells durchlaufen, dessen Textur (wenn es eine hat) binden und dann den anisotropen Filter setzen.
Das hab ich jetzt nicht genau verstanden. Nachdem also ein TAll3dsMesh vollständig erzeugt ist dessen Materiale durchgehen und glbindtexture aufrufen, sowie die texturparameter setzen.
Also vermutlich so: Schleife( ... glBindTexture(GL_TEXTURE_2D, Mesh.Material.TextureID); TexParamter; ) Richtig?!
Hm.. Irgendwie scheint das nicht zu funktionieren. Egal bei welchem meiner Modelle ich welche TexturID ausgeben lasse ist die immer 3553. Dementsprechend sieht man auch vom Filter nix - wie kann ich denn eine mit gl3ds bereits geladene Textur nochmal binden?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Du musst alle IDs im Array "Material" des Hauptobjektes durchgehn, also TAll3DSMesh.Material, evtl. hast du fälschlicherweise die Material-IDs der einzelnen Untermeshes genommen, das ist aber nicht die Textur-ID der Materialien.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Verändert sich denn im Bild was? Zur Not schau einfach mal zur Laufzeit in die Variablen oder in den Quellen der gl3ds nach wie diese Werte befüllt werden. Also ob es tatsächlich die Textur ID ist. Denn ich benutze die gl3ds nicht, weil ich keinen Bedarf an Models habe. Also kann ich nicht sagen ob das richtig ist.
PS: Im übrigen immer das Maximum zu setzen ist nicht so gut. Denn das kann durchaus auch auf die Performance gehen. Deswegen so etwas idealerweise durch den Benutzer einstellbar. Bzw wenn die Filterung nicht verfügbar ist darfst du sie natürlich auch nicht setzen.
Mitglieder in diesem Forum: 0 Mitglieder und 5 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.