Actually I don’t think it’s very much of a math problem in the way you’re thinking (I’m not convinced it can be solved through blueprint rotational math), you’re talking about the shaking it does when you rotate the player camera right?
I’ve dug into it a bit, and I’m pretty sure it’s this little guy that’s the problem.
I’m sure you already know all this (you wrote it), I’m jus ttrying to quantify the problem.
But when you’re using viewportUV, that value changes whenever you move the camera which for some reason is fine when it’s the camera location that changes, but not when the camera rotates.
When the camera moves, the viewportUV moves with it, that’s fine, that’s what we want. When the camera rotates, the viewportUV rotates with it, that’s the root of our problems.
I kinda figured this out by using planar reflections, I noticed that with planar reflections the reflection doesn’t change no matter how you rotate the camera, it is purely position based, we want to have a fixed rotation based on the player camera position, regardless of it’s rotation, that’s what we need.
To try and solve it what we’re currently doing is rotating the scenecapture the opposite way the player camera is rotated to counterbalance this motion.
After trying to figure out a way to compensate for it better like for instance overcompensating like this (note the lerp):
Which admittedly had an effect (just not enough) something is niggling in my brain telling me that the only way to really solve this issue is to counter the rotation from inside the material, not the blueprint.
Somehow we need to make the screen position node just not rotate with the viewport (e.g. only update UV in relation to camera position, not rotation).
Maybe we can do this by using the camera position node somehow?
I am very green when it comes to using material blueprint though so I have basically no idea how to do this, just throwing you this idea since you seem more experienced with it.