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

Aktuelle Zeit: Fr Jul 18, 2025 15:16

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Wie effizient ist die TextureMatrix?
BeitragVerfasst: Fr Sep 14, 2007 13:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hi

Mal eine eher theoretische frage.
Ich lade meine Texturen so, dass ich sie vorher auf eine leere PowerOfTwo Surface packe. D.h. ich habe im Speicher dann eine Textur bei der u.U. rechts und unten was übersteht. Praktisch wäre es, wenn ich dann natürlich trotzdem das richtige Texturende mit glTexCoord2f(1.0, 1.0) erreichen könnte. Dafür könnt ich mir ja ganz gut die Texturmatrix einspannen.
Allerdings: Wie effektiv ist das setzen und verwenden der Texturmatrix? Ich müsste sie ja dann immer pro Bind neu setzen. Ist das noch effektiv?

Und nochwas:
Wenn ich Multitexturing verwende (jede Textureinheit hat ja ne eigene Matrix) wie wirkt sich dann ein aufruf vom "normalen" glTexCoord2f() auf, wenn alle Untis verschiedene Texturen haben?

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 14, 2007 14:09 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hmm...Naja... das Setzen einer Matrix ist jetzt nicht so schlimmt.

Ich denke dein Ansatz kann recht lohnenswert sein. (Eventuell könntest du dazu mal nen Test schreiben. Sowas könnte man durchaus als Studienarbeit an der Uni schreiben...)

Das eigentlich teure ist ja das binden der Texture (wenn ich mich nicht irre). Das laden der Texturematrix sollte dagegen vernachlässigbar sein. Aber wie gesagt: Ein Test bringt Klarheit.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 14, 2007 14:56 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ich denke es wird eher anders aussehen. Also du hast zusätzlich neben den sowieso immer vorhandenen TexturKoordinaten auch noch eine Matrix die du setzen musst. Das ist 1. eine größerer Datenmenge die Transportiert werden muss und 2. sollte man mit Matrixoperationen generell sparsam umgehen. Das gillt für alle Matrizen.

Für die Grafikkarte macht die letzendliche Berechnung keinen Unterschied, denn da heißt es immer Punkt * Matrix. Was davon jetzt anders ist spielt für die Berechnung ja keine Rolle. Aber ich denke, dass der Mehraufwand für das Setzen der Matrix sich schon bemerkbar macht. Genau weiß ich es nicht aber ich vermute mal stark, dass es keine Vorteile bringt.

PS: Was ich evtl auch nicht außer acht lassen würde. Wenn du eine NPOT dann überall als POT behandelst, dann könnte es leicht verwirrend sein, wenn du die irgendwann in einem Shader benutzt oder mal irgendwie anders und es dann urplötzlich nicht mehr hinhaut so wie es sollte. Weiß nicht genau wie ich das ausdrücken soll aber du benutzt etwas so als ob es etwas anderes wäre. Das ist nicht unriskant.

PPS: Ich lasse mich aber gerne vom Gegenteil überzeugen. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 14, 2007 15:03 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
njoa, dann würd ich in den shaderen eben auch die Matrixoperation auf den Texturkoordinaten durchführen, aber das mit der Geschwindigkeit ist nen argument... Aber vielleicht ist es langsamer, für jede geschickte Texturkoordinate nochmal ne Operation durchzuführen. Das wäre dann zwar auf der CPU, aber wieso nicht das von der Graka benutzen, was sowieso schon durchgeführt wird. Und letzendlich wäre es ja nur ein Scalef pro Bind...

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 14, 2007 15:31 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ja okay. Es wäre nur ein Skalierung. Wobei du da auch die anderen Stackoperationen berücksichtigen musst (Sichern/Wiederherstellen/Zurücksetzen). Aber da würde ich sagen geht probieren über philosophieren. Mit anderen Worten. Ich vermute es nur wie es sich verhält. Was im Endeffekt dabei raus kommt weiß man nicht so genau.

Aber mal etwas ganz anderes in den Raum geworfen. Greifst du auf die Texturen auch noch anderweitig zu oder nur von 0 - "1"? Weil wenn du nur von min - max darauf zugreifst, dann kannst du die Koordinaten beim Laden auch vorberechnen und in einem array ablegen. Wenn du dann deine TexturKoordinaten setzt kannst du stumpf das array an glTexCoord2fv übergeben. Damit würdest du 1. nichts mehr berechnen müssen und 2. müsste Delphi nur noch einen Pointerparameter an OpenGL übergeben. Was irgendwo auch eine Entlastung wäre.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 20, 2007 16:24 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
Das verwenden einer texturematrix ist mehr oder weniger unbedeutent. Nur sollte man diese multiplikationen beim programieren eines vertexshaders nicht vergessen (Sonst hatr die keinen effekt).


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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 | 16 Queries | GZIP : On ]