I've converted my old Shader Replacement Jittery outline over to the Post Processing Stack. It no longer requires a second camera and a shader replacement pass and a render texture! Hooray!
I've also made up a bunch of other outline variations that you can play around with. I've separated them out into different post processing effects to keep things lighter, but if there's a combination or variation that you'd like but isn't there, let me know and I can put it together for you.

You'll need to have the PPV2 installed (via the Package Manager on newer version of Unity? - Windows>Package Manager>PostProcessing). It's also available via github ( https://github.com/Unity-Technologies/PostProcessing/tree/v2 ) - I believe these are the same?
And then once you set up a Post Process Volume, you can add the outlines from the "Add effects..." button.
I'll eventually port all these over to the newer PostProcess stacks for the scriptable rendering pipelines once Unity inevitably retired the current system.

Let me know if you have any issues in the comments or on discord. Thanks again for all the support!
PS:
I'm also working on a outline effect where the outlines are restricted (mostly) to the interior of the objects, which will help a lot with things like the Light Direction colour variation and allow for other interesting effects, like the outline colour changing with depth (so distant outlines could match the sky colour for example) - at the moment because the outlines are half inside, half outside, any colour variation based on depth or normals ends up splitting the line into two - the inside part and the outside part.
I'll also make up a version which uses a texture for the noise breakup, instead of generated noise - that will make it easier to add in your own breakup textures and get some more unique effects I imagine.
UPDATE: First version of the files had the filenames slightly incorrect, and so weren't serialising properly, oops sorry! Fixed now.
UPDATE UPDATE: Version 3 now actually has all the materials. Third time's the charm. (v4 incoming no doubt shortly)
TROUBLESHOOTING:
Okay, so, the PPV2 stack, being optional, and available via the Package Manager, or via Github, creates some interesting problems with sharing these files. Problems that other people who create Post Process effects seems to have found ways around, but I still have to figure out.
I'm sorry that this might be harder than it needs to be!
Until I figure this out, here's a rundown on how to get the example files working, if they're not already.
First thing's first: Get the PPV2 stack installed. You can either go to the Windows menu in Unity, then Package Manager, then in the package manger, find "Post Processing" and Install it.
OR If you want to, you can also grab it from the Unity github page here: https://github.com/Unity-Technologies/PostProcessing/tree/v2
Just click the green "Clone or Download" button, then Download Zip, and unzip the "PostProcessing-2" into your assets folder. You don't need to do this if you already have it from the Package Manager though, doing both will double up the files and it won't work.
Now hopefully.... HOPEFULLY, once the PPV2 is installed, the scripts on the camera will hook themselves up, and all will be well. But if not, you'll want to add a Post Process Volume, and a Post Process Layer to the camera. Check "Is Global" on the 'Post Process Volume' script. Match up the Camera Object Layer with the 'Layer' in the 'Post Process Layer' script. AND THEN, you *should* be able to drag and drop in the "PostProcessOutlines.asset" file that's sitting in the base of the "PostProcessOutlines" folder, and drop it into 'Profile' slot in the 'Post Process Volume' script.
There's also a potential issue with the PPV2 that could pop up, where you can get NullReferenceExceptions
specifically:
NullReferenceException: Object reference not set to an instance of an object UnityEngine.Rendering.PostProcessing.AmbientOcclusion.IsEnabledAndSupported (UnityEngine.Rendering.PostProcessing.PostProcessRenderContext context) (at Assets/PostProcessing-2/PostProcessing/Runtime/Effects/AmbientOcclusion.cs:90)
and to fix it you may have to remove the Post Process Layer script on the camera, and then add it back on again. Yay, Unity!
Let me know if anything is confusing or not working and I'll help you fix it asap though.
Work In Progress: I'm attempting to make a single pixel (no AA) variant of this effect, but so far falling short. I think the best approach is to use the partial derivatives (DDX, DDY and fwidth) but I'm not very familiar with them yet and I can't get an unbroken line. I'll play around with it more in the future though. If anybody has any ideas, let me know! Thanks.

far few giants
2021-06-30 11:55:04 +0000 UTCPuck Loves Games
2020-01-22 04:40:09 +0000 UTCHowie Day
2020-01-21 21:51:10 +0000 UTC