How do I change PostProcessVolume's BlendWeight at runtime?
I have an unbound PostProcessVolume with a priority of 0 that provides global setting for my scene, and then another PostProcessVolume with a priority of 1 that covers a specific area. Right now when the camera enters the second volume its settings are applied immediately with no apparent blend. I already know about the BlendRadius setting which allows blending over distance as the camera approaches the volume, but in this use case I actually need the blend to occur over time, not distance.
I have a bit of C++ code which gets a APostProcessVolume* reference to the volume and updates its BlendWeight property each Tick to ramp the effect in and out... but this has no effect whatsoever. It seems like the BlendWeight property isn't actually queried at runtime at all...? Or is cached off somewhere else, or something.
Looking through the headers for APostProcessVolume, FPostProcessVolumeSettings, and FPostProcessSettings reveals some getters, but no setters and no equivalent of a Refresh() or Apply(). I can't see how this value is ever actually consumed by anything.
I have already confirmed that I am actually hitting the code that updates the value, and that I'm updating it with correct/expected values. The renderer just seems to... not care?
I've looked through the official postprocess documentation but it is quite sparse, and appears to be out-of-date and/or inaccurate (e.g. referencing a "Blendables" array that doesn't exist, multiple TODOs noted in the documentation, etc.) It's not helpful at all.
How is this supposed to work?
asked Jul 07 '17 at 08:45 PM in C++ Programming
Follow this question
Once you sign in you will be able to subscribe for any updates here