Hello !
I have weird stuff going on with motion vectors aswell. It’s not warping at all.
I tried in slate editor but unfortunately it doesnt seem to work when using the Material Function.
I exported the texture in exr, set my vector texture to “Vector Displacement” RGBA8
Im not quite sure about the specific texture format in unreal but i get that exact same diagonal motion in my vectors if i save it with the wrong compression type. (using cryengine) Our textures need to be 16bit uncompressed for it to work. (R16G16) Standard compressed 8bit will give me that broken result.
I tried every compression settings, it doesnt work. Strangely if I unplug the texture from the material function. It behave exactly the same. Tried to import from exr, tiff…
When I look at the forward motion vectors output, I got the exact same stuttering motion.
In the pic with your shader graph, the motion vector texture looks too bright. Is your empty space between frames set at 128,128,0? Anything other than 128,128,0 corresponds with a direction, depending on if it is brighter or darker than the neutral 128,128,0. (brighter goes one way, darker goes the other) It looks correct in the slate preview window. Is there some sort of gamma correction happening on the texture? It should be linear with no gamma correction.
Double-Click Flipboard-Node and fix the Bias Scale like described in the first post!
Instead of using the “Shader Estimate” from Slate as “Motion Vector Intensity” in Unreal, use the “Current Minimum”. I didn’t do this and then my Vectors where moving into the wrong direction.
from playing with this it seems like this works really well when the time is being scaled by factors of .1 or less. But if you go above this, it starts to break. Have you been able to find a solution for that?
Yes, this makes sense. What that math is attempting to do is change the output range of the texture from it’s default of 0 to 1, to a directional range of -1 to 1.
If you run through the math on the outer bounds, this is what it was doing before:
min = 0 + .5
= .5 * 2
= 1
max = 1 + .5
=1.5 * 2
=3
So the output range from this would be 1 to 3… not correct.
Sorry bit late to the party. Found another bug with this Material Function: it doesn’t seem to handle that number of rows is not the same as number of columns. You get some strange jittering between frames.
Didn’t have time yet to fix it. But just wanted to drop that here in case others tear their hair out after following all of these super helpful tips, and still having problems. (Like I did)
Also thanks for this thread. It really helped me out!
Just a caution to anyone doing this. I swear, every time I go to cobble together a vector flow shader I somehow forget to linearize the color for the vectors in the texture itself. You can easily talk yourself into thinking “it looks better than it did.” when it’s “kinda blending”
It should work flawlessly. If you set your distortion strength to something sorta high and the entire image goes swimming away diagonally…that’s a sign that you forgot to linearize your color and therefore half-white is not centered. (or its a sign you forgot to center something somewhere in the vector)
This message brought to you by the words “kinda” and “sorta”
Gotcha, thank you! I usually set my compressing setting (in Unreal) to VectorDisplacementmap and then adjust my Maximum Texture Size as needed when I’m doing flowmap stuff. Gives great results for me. I can’t remember if that setting auto uncheckes sRGB or not
Just a reminder that one of those constant bias in the function is wrong and needs to match the other ones to get the proper motion, Don’t know why unreal hasnt fixed it yet.
That intensity is a big problem if you dont get it right too.
Hi, I wanted to revive this thread and ask if anyone has used the most recent version of Slate? The video that @simonschreibt made is on an older version and the UI has changed significantly. I’ve gotten OFLOW maps out of slate but the results have been very poor on 4x4 textures.