For the past year we have been working on a range of Cinematic Image Effects. When we started this project we had two main goals:
To develop a range of effects that would look great and help your products look amazing.
To make them blazingly fast and super easy to configure.
So that’s what we have done.
We have now combined the individual post-processing effects into a single, easy to configure, asset driven workflow. In essence, we have an über effect stack. This is great for a number of reasons:
What used to take a full screen pass per effect now takes significantly fewer passes. Processing takes up less frame time and you can spend more time rendering other things.
The stack has a well defined order. This ensures that post-processing is configured in the correct way and effects are applied in the correct order.
Asset based profiles make it easy to share post-processing configurations between scenes or projects and are easy to change on a per-platform basis.
In addition to this, we have also added a few new features compared to the existing effects and rewrote some of them:
Full ACES-compliant HDR color grading pipeline
New and improved Chromatic Aberration
Lens dirt effect
Histogram-based Eye Adaptation
Temporal Anti-aliasing
Camera Grain
Extensive debug and monitor tools
We’re releasing this beta to the public ahead of schedule in order to get some initial feedback and make sure everything works as it is supposed to before the official release, especially on the wide range of platforms that Unity supports.
This feature is now available in open source on Github. If you don’t want to bother with git you can download pre-built packages here. It requires Unity 5.4.1+ or Unity 5.5b6+ (previous betas are incompatible).
This is looking very niiiiice. One thing I’d like to mention for a future update, and I mentioned it on GitHUB as well, is that the SSR module isn’t taking background skybox information into account when it calculates reflection data. I hope this can be added to a future version as it is almost mandatory that skybox is included in reflections when viewing outdoor scenes.
SSR can’t reflect the skybox, it should be done using Reflection Probes or Planar Reflections (which can be used at the same time as SSR). There’s no way around it as the skybox is rendered after SSR is applied (which would be after the final geometry pass in deferred lighting).
Also keep in mind that SSR is a screen-space effect, meaning it has no way of knowing about something that’s not currently on screen. It’s not meant to provide complete reflections but to fake “contact” reflections.
@Chman interesting, I hadn’t considered that, but it makes sense. After doing some tests here I indeed see this to be the case… doing skybox through the reflection probe works very well.
This looks absolutely amazing - together with the upcoming incremental lightmapper it will bring Unity to new heights in visual quality.
I think I’d still take your SMAA over TAA though, TAA has the tendency to make everything vibrate like a Duracell bunny on a caffeine rush (at least it does so in Unreal).
A question with the asset based profile - am I still able to change post at runtime, such as colour grading? I had thought I could change it dynamically without a hard switch from a new profile… or does that not matter?
Congratulations, you guys really nailed it this time, please stick to this workflow, don’t throw away your hard work.
It’s perfect, the asset workflow is brilliant, all the effects are previewable in scene mode
I hope this ends up in Unity as a built-in plugin-less feature.
Some glitches here and there:
Time-driven effects (like Grain) still don’t update in Game View outside Play Mode, this is a very old nuisance.
TXAA not working both in forward or deferred rendering, gamma or linear space. Other settings: D3D11, no SMAA, no HDR.
SSAO is not consistent in screenspace and depth, with the effect fading towards the edges.
Some suggestions:
-More effects!
-Profile snapshots and drag and drop.
Can’t wait for final release
It’s fixed in the repository (if you don’t mind using Git) and will be in the next build.
Yes you can still change values at runtime via scripting and enable/disable features as you go. It will work just fine. We do have plans for the future to make this easier though.
That would require constantly updating the Game View, we don’t want to slow down the editor too much.
It’s TAA, not TXAA Could you give more details about how it’s not working exactly ?
That’s a screenspace effect. It only knows about what’s currently on the screen.
I’d like to point out that the eye adaption isn’t correctly adapting to scenes with an avg luminance above 1. Setting ‘max luminance’ to anything above 1 doesn’t change anything. Using the debug view, you can see the avg bar doesn’t go above 1 either. Removing the saturate in this code in EyeAdapation.cginc