Proper texcoords in a post processing material

I’m having hard times understanding meaning of tex coordinates and the proper way of sampling in the post processing material.

I tried to sample the texture and wire it to the output of the post material so that the texture covers the whole screen. First, I haven’t wired anything to TextureSample UV at all and the result looked wrong - the texture is not fully shown on the screen. Wiring TexCoord node didn’t help too, the texture is still shown partially. I noticed that if I resize the editor window I get more of the texture and ultimately I only get the whole texture on the screen if I launch the project in the new window AND maximize it.

My understanding of the post-fx materials is that geometry in this case is either fullscreen quad or triangle with appropriate UV coords, but obviously it doesn’t work this way. I’m puzzled by the TexCoord node content.

Then I found ScreenPosition node and also wired it to the TextureSample. And still the results was the same - clipped texture was shown. With this node I’m even more confused as ScreenPosition in my understanding should contain coords well… in screen space which is [0…RenderTargetWidth]x[0…RenderTargetHeight] and is not directly usable for texture sampling, but somehow it gives similar result as wiring TexCoord node. As usual documentation about this node totally suck and doesn’t help at all.

Then I tried to sample SceneTexture:PostProcessInput0 and output it as the result. It works OK if I drop the UV param. Then I wired TexCoord and SceenPosition to the UV param and everything still was OK. Is SceneTexture node ignores UV parameter or what? If not why in this case these two nodes give correct result? If yes, why do we have it?

Summarizing all the confusion in questions:

  1. What is the content and usage of the TexCoord node in the post processing material
  2. What is the content and usage of the ScenePosition node in the post processing material (and the difference to TexCoord)
  3. What is the proper way to sample regular texture so that it is FULLY displayed on the screen in the post processing material
  4. What is the proper way to sample SceneTexture node (if there is any need to wire UV param at all…)

I’ve tried to look into the generated HLSL code, but unfortunately it doesn’t contain all the functions and simply is of no use.

I’m saddned again by how post processing in UE4 works. So far it gave me tons of the headache, confusion and limitation. I really hope it’ll get some treatment in the future.