Texturwechsel
-
Jo servus,
ich hätte mal wieder was wo mich juckt, und zwar:Es heisst ja dass Texturwechsel ziemlich lange dauern, und man deshalb alle Teile mit gleicher Textur hintereinander zeichnet, sodass man seltener die Textur wechseln muss.
Die Frage is jetzt, wenn ich schreib:glBindTexture(GL_TEXTURE_2D,0); glBindTexture(GL_TEXTURE_2D,1); glBindTexture(GL_TEXTURE_2D,1); glBindTexture(GL_TEXTURE_2D,0);Wird die Textur dann 4 mal (jedes mal bei glBindTexture() ) oder nur 3 mal (Z.1,2,4) gewechselt?
Danke
-
Das hängt wohl vom Treiber ab. Aber ich denke schon, dass die gut genug optimiert sind. Und wenn die Textur im Videospeicher der Grafikkarte liegt, sollte das Wechseln auch nicht viel kosten.
-
vermutlich wird sie 4mal gesetzt, da die treiber meistens darauf optimiert sind am ende die best moegliche geschwindigkeit zu liefern und man moechte nicht, dass falls du so mart waerst nur einmal 0 und einmal 1 zu setzten, dass der treiber bloedsinnierweise immer wieder testet.
was am ende kostet sind die aufrufe an sich und das umstellen der ganzen pipeline. und wie Lt.T.R. sagte, richtig boese ist der upload ins vram.