Eisflamme hat geschrieben:Und jetzt wieder die naive Rückfrage: Wie greife ich direkt auf Texel zu?
Ich kenne das jetzt nur so, dass ich so einen sampler reinkriege, da wäre jetzt sampler1D logisch. Und dann nutzt man diese tex1D-Funktion, um Zugriff zu erhalten, aber sampelt das nicht quasi direkt?
Ich kenne mich mit CG nicht aus, aber
das hier klingt passend.
Schrompf hat geschrieben:Was Krishty mit "Laden, nicht samplen" meint, sind wahrscheinlich die dedizierten Load()-Befehle, die es seit Shadermodell 4.0 gibt. Es kann sein, dass es die im CG gar nicht oder nur unter anderen Umständen gibt. Und was ich gehört habe, soll der Load-Zugriff sogar drastisch langsamer sein als ein gezieltes Samplen mit Point Filtering.
Bei Direct3D und AMD laufen die ebenfalls durch die Sampler, sollten also in einer ähnlichen Liga spielen. Für CG hat eine flinke Recherche ergeben, dass das Lesen kleinere Cache Lines nutzt und an ein paar Cache-Stufen vorbeigeht, also für mehr oder weniger zufälle Lesezugriffe optimiert ist – ob wir es hier damit zu tun haben, kommt auf die Lokalität der Vertices an.