The camera vector in postprocess material seems wrong?

I was trying to make a post process effect based on the world surface position.
So I used the method to reconstruct world position from the depth like I usually did in transparent materials.
But the results are not right and not steady. So after several checks I found that the camera vector node output is a little bit off .
To my knowledge, that post processing is actually a quad rendered before the camera?
It’s a little bit different to get the surface data when in post process.
But I mean after all UE gives us the node . Why is it “wrong”? How do I get the real scene camera vectors?


Hello? Anyone?

OK I just find out World Position node in PostProcessMat just gives you the scene world position.

I think I just happened to find out the reason why the camera vector is wrong at the first place. (Only in Post Process Material )
The camera vector might be calculated like this:


And the real cause is the “Absolute World Position” node which gives wrong coordinates when the view port screen percentage isn’t 100%:
Here’s the proof. I visualize the fractions of world positions. The left is the 100% and shows the right result.
And the right is 50%.


Normally ,it shouldn’t change the results if I decrease the percentage. It should get the same result with fewer resolutions. But it does. And affects all my world position based post processing effects, making them broken.
I guess it’s some camera properties related bugs.
But I didn’t find a way to fix that.

2 Likes

I have a similar problem, the camera vector in post process shows up as a circular area in 5.1. I also doubt they calculated the camera vector using world positon. Because if i put something in the scene, the circular area will break.


but anyone know how to do some trick things to hide that :face_with_raised_eyebrow:

That’s because the output vectors are at [-1, 1]. What are below 0 show you the black. You should check the fraction of the vector.
Or remap the value back to [0,1].

For anyone trying to find an answer to this, it appears the problem is when the post process is after tonemapping. If you change it to before tonemapping it will fix the camera vector offset.