SceneTexture: Scene input without post processing
How can I get a Scene Texture:PostProcessInput0 without post processing? The idea is to mask the effect to a portion of the screen, like they did here: https://forums.unrealengine.com/showthread.php?70143-So-Blurred-glass-material-is-impossible-in-Unreal-Engine-4&p=293408&viewfull=1#post293408
SceneColor is not working anymore. Here's a screenshot:
asked Oct 08 '15 at 08:33 AM in Rendering
Although this function worked in 4.8 this is no longer valid in 4.9. This the SceneTexture:SceneColor not working in 4.9 is by design.
As the source code is available I suggest you comment the error in code and quite likely you content will work again (if not the solution below would be needed). We are doing engine optimizations and this change prevents some optimizations which haven't been finished yet. Let me explain a bit: SceneTexture:SceneColor gives access to a intermediate rendertarget which is needed only during lighting. For postprocessing we want to free it and reuse the memory for the postprocessing. This is especially important for hardware like the XboxOne. I suspect many uses wanted to do color manipulations and did them by reading SceneColor - it seems the right thing to do. This goes wrong with TemporalAA as SceneColor is jittered and it looks bad. It also looks wrong with multiple PostProcessMaterials in a chain where you don't get the data from the one before. PostProcessInput0 has that data and that is why the error message mentions this. The PostProcessing UI doesn't make that clear and this is why we want to prevent that access. The correct fix would be to do reference counting on the SceneColor to keep it alive until no longer needed.
answered Oct 08 '15 at 05:01 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here