Hi! At Unity we are currently developing a number of new Image Effects. The idea behind these effects is that they should look amazing and scale to different hardware levels (where possible).
The effects currently in development are:
Screen Space Reflections
Tonemapping & Color Grading
New Antialiasing (SMAA)
Depth of Field
We will be adding more as we start to finish these current effects up.
Open Source development
Each of the listed effects are at a different phase of development, but we donāt feel that this should stop you from getting your hands on them now. For these new image effects we will be developing them, and shipping them, on a public bitbucket account, as well as periodically on the asset store. This means that the unity developers that modify these effects, as well as you (?) will be developing in the public space. We will be actively taking pull requests and engaging in discussion about issues and fixes. We would love to hear your feedback and see some pull requests from you.
Where to Download
You will be able to get the project either from BitBucket or the Asset Store. The version on the Asset Store will be periodically updated, and that version tagged in the main Effect repository.
Screen Space Reflections - We just missed the cutoff for 5.3 due to one or two outstanding issues. These have since been fixed. You should be able to use this effect now in your project and achieve desirable results. Note: This effect requires Deferred Rendering. Not designed for or tested on mobile.
Tonemapping & Colour Grading - Still in development, but in a decent beta state. Supports texture LUT and other custom grading settings.
Depth of Field - Still in development, but in a decent beta state.
SMAA - Still in development and buggy. We have had success in some scenes, but not in others. It might work well for your project but we are actively working on improving it.
Weāre looking forward to hearing your feedback on these effects, so get to it!
Iāve downloaded it, and screen space reflections are not working. It says itās not supported on this platform (DX11), and the SSR shader is missing. After a little investigation, Iāve found out that the ScreenSpaceRaytrace.cginc is completely missing from the package.
Yes, the asset store package didnāt work too, but the opensource repository has a working version. It looks great, and thank you for making it opensource.
Regarding post FX, I suggest that for PSVR, Rift and Vive, Unity implement a close-fit mesh around the eye parts so that post costs considerably less in VR mode. This is best implemented on Unityās side and should see a significant gain especially on PS4. Please consider these optimisations as most users will be unaware of them, and the shapes are different per VR device.
Other than this Iām super pleased with how things are going! Please keep it up
The new effects are great. Was pleasantly surprised by the tonemapping stuff. A couple of questions/feedback though.
White Balance is a bit ā¦ weird. I think it should be renamed to something like āTintā. I was expecting it needed a color to act as a white point, but it just seems it just tints the scene instead. It should either be renamed or maybe the functionality changed.
F-Stop works as it should, meaning lower values means more blur, yay!
The historigram in the tonemapper is so cool! Awesome! The only thing that hinders it, is the general slowness of the Unity GUI
Is there any work being done so that the filters can share resources? I was sort of expecting the ācinematicā effects to be one big filter, with mutlicompile defines to turn effects on off, so the can share resources.
Are you going to implement some sort of Motion Vector buffer? Please do. It seems every filter (Unity authored, or otherwise) has some sort of temporal filtering and each one creates its own buffer. Soon if you want to use multiple effects, you will also be generating multiple motion vectors. And everyoneās games will be going slowly because the engine will spend 50% of the time generating motion vectors (Iām exaggerating a bitā¦). You can spare us all from such a fate by implementing a motion vector buffer in Unity. Please. Think of all those poor CPU and GPU cycles youāll be saving.
Point 5 is the important part, it should probably be a quality setting define as it kind of needs to run when vertex shaders run if Iām not mistaken or in deferred part of MRT, I donāt know what method Unity is deciding on, but yes itās one of those things lots of things use including motion blur
With Temporal AA on the roadmap theyāll probably have to make one. Certainly with Temporal SMAA you need to construct such a buffer in the vertex shader phase of rendering.
Ah, I see. I thought it was SMAA without temporal filtering. I was looking into making my own temporal based AA but I decided against it for the reason of multiple buffers. I was hoping Unityās implementation wouldnāt have this limitation.
I agree, the white balance is a tinting tool. To get white balance from it, you have to sample your āwhiteā add 180-degrees to the hue value (or subtract) and then drop the saturation by about 50%. A bit of a hack, but it makes it work more like a WB control than a tint function. Iād like to have both. Tint and WB.
Hey any clues on how to get the screen space refections working? Iāve created a test project but I cant seem to get it working. Do you have to have a specific material on objects or something?