Forum

Texture transform in dx11 works differently from dx9, help

hi all,
i’ve noticed a different behaviour about dx11 texture transform (in constant, gourad, phong ecc shaders), that i cannot understand.
my goal is to use a texture over a spread of objects. i’m attaching a better explaining patch, with the dx11 and dx9 same things in comparison. the dx9 behaviour is what i want to achieve in dx11. but i don’t know how

thanks all

texture transform in dx11 vs dx9 (13.1 kB)

In the constant shader I noticed I had to change the texcoords from a float2 to a float4 and then it worked as expected, I think thats probably your issue? (can’t look at you patch atm!)

mmm, nope seems all ok, float4

Tex transform needs to be fed with a reversed spread for Y transformation.
Until this get solved, you could use this workaround.

texture_transform_problem_mod.v4p (19.1 kB)

thank you h99, for my purposes your workaround is perfect, thank you ;)

hey h99,
after some testing i found your method was not completely correct (try for example to move the phase of linearspread or something like that.
but your patch pointed me out to the right direction, that is not reversing the y, but multiply by -1 it, as in the attached patch, thank youu ;)

texture_transform_problem_mod_correct.v4p (17.6 kB)

Ah sure, that is another way.
About phase, you talking about translate directions? Would you please give a bit more info?

yes, about phase i mean translating the pieces of the grid (or for example if it’s not a grid, but something more random, like a randompread, possibly in 3d).
Simply the reversed spread worked because the values was specular (negatives and positives) because the grid had 0,0,0 as center.

Eh yes, having random things will make it a real mess. Thank you.