Frage

Wenn ein Pixel-Shader unter Direct3D ausgeführt wird, tun die Grenzen auf Texturkoordinaten von MaxTextureRepeat auferlegt nur ein Problem werden während Anrufe zu Textur-Lookup-Funktionen wie Tex2D (), oder kommen sie ins Spiel zu jeder Zeit die Texturkoordinaten innerhalb der zugegriffen werden Shader?

Ich möchte wissen, ob es möglich ist, die MaxTextureRepeat Einschränkung zu vermeiden, indem sie vor ihnen so etwas wie frac () auf der Texturkoordinaten Aufruf an die Textur-Lookup-Funktion übergeben.

War es hilfreich?

Lösung

Texturkoordinaten sind bei nativer Interpolator Präzision. Auf Pixel-Shader-2.0-fähige Hardware, ist dies zumindest 24 Bit Gleitkomma- (oder vielleicht 32 Bits, nicht sicher). Intern werden die Berechnungen in Pixel-Shader muss mindestens 24 Bit Gleitkomma- sein. Die meisten modernen GPUs mit 32 Bit laufen Punkt precision floating.

Die MaxTextureRepeat ist die Fähigkeit der Textursampling-Hardware.

Also, ja, wenn Sie laufen nicht in Punkt Präzision Einschränkungen schweben, dann Begrenzung des Bereichs vor der Probenahme eine Art und Weise ist es, die Textur wiederholen Grenzen zu vermeiden.

Wo jedoch Frac von 0 auf 1 schaltet werden Sie große Steigungen bekommen, so an den Stellen, wird die GPU sehr niedrige Auflösung mip Ebene verwenden möchten. Dies kann kein Problem sein, je nach Ihrer Situation natürlich; aber es ist ein Punkt potenziellen Problems (s).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top