[RELEASED] PRISM 2 - Realistic All-In-One Post-Processing for Unity - Now with Render Graph & URP Support

Will be waiting for the benchmarks. I hope you do have an old or a cheap phone (low-end Android device). Don’t forget to turn off Vulkan API cause LWRP works slower with that than on GLES2/3.

1 Like

Hello, I’m working on my game in LWRP for mobile, according to the conversation above, can I conclude that PRISM V3 does not fully support LWRP yet?

1 Like


https://drive.google.com/open?id=1st3fRIfm9-_LiTrt3A8vRzf89nr01iE9
Hello, after import PrismV3, I got a batch of errors.(check the screen shot link abovt please)
For example:
Assets\PRISMV3\Scripts\PRISMSceneEffects.cs(99,16): error CS0104: ‘BoolParameter’ is an ambiguous reference between ‘UnityEngine.Rendering.PostProcessing.BoolParameter’ and ‘UnityEngine.Rendering.BoolParameter’

I try to remove “using UnityEngine.Rendering;” form head and all the errors disappear.
But Unity shows another error:
Invalid editor window LogWinInternal.LW_MainWindow
UnityEditor.EditorApplicationLayout:SetPlaymodeLayout()

After resetting my layout, everything seems to work fine for the moment.
But I’m still wondering if what I did to fix those errors was the descent and why I got them in the first place?

I’m using Unity 2019.2.0f1, PostPorssessing Stack 2.3 was installed before import PrimsV3.

Another very important question to me:
I couldn’t find ACES mode in tonemapping like what Unity has in PPV2.

It seems to me that the only thing I’m allowed to twist is gamma under tonemap tab.
Can we set tonemapping to ACES mode in Prism3 for now?

I will fix that either way for the next update, haven’t seen it on my end but an easy enough tweak.

An option also coming in the next update - I PMed you the link to the new PRISMTonemapping.hlsl for now (anyone else that wants it can also PM me) - it uses a different implementation of ACES to PRISMv2.

Thanks a lot for your response.

After hours of testing, I have to say the performance seems bad to me. I don’t know if I did something worry, but this is what happened in my case:

The performance is worse than PPV2 on my iPhone7 and iPad pro, with Color correction & bloom on, my game runs below 48 fps ( it was able to run at 60 fps with PPV2 bloom but will overheat the device in 5 mins, that was the reason I was looking for some PP that’s more mobile devices friendly) Even only with color correction On, my game still doesn’t reach 60 fps(runs at 60 fps with PPV2’s color grading).

Any idea about my case? Did u test on mobile devices and compare the performance to PPV2? What are you result?
Did I miss anything?

Thanks.

You did miss something, although it’s my fault for not clarifying in the guide. PRISM’s Ultra HD Color Correction (ie. all the sliders) is heavy on mobile, and built for desktop and console as a real “Ultra-HD” color correction pipeline. You should use PRISM.LUT to perform the exact same corrections and it will be equivalent in performance to Unity’s as that’s exactly what they do on the backend as well.

With that said, in my testing, even using PRISM.Color, I see a 3fps difference below Unity’s on my Nokia in quite a demanding scene. Here’s screenshots - and if I try and make Unity’s PPv2 bloom look even nearly as good as PRISMs, it can’t get close in performance:

PPv2

PRISMv3

Unfortunately since Unity doesn’t support GPU pass profiling on Android , and I don’t have an iOS device to test on directly, it would be great if you could PM me with some screenshots of how your PRISM inspector is setup, I would like to see if this could be a Metal bug I’ve run into. These are generally easy to narrow down after testing out a few different implementations of the same shader.

Big wins for mobile users of PRISMv3 coming in the newest update, that is being submitted to the Asset Store this week! In keeping in line with the roadmap of January updates to mobile optimization, I’ve trimmed a lot of low-hanging fruit that should drastically increase performance on lower-end devices when using less effects (for context, the issue that @ was experiencing, after digging, was actually because every combination of PRISM on mobile was still trying to do a full CIELAB color conversion and performing every color correction step even with just LUTs. This has now been fixed).

Results:
PRISM - Bloom + CC (LUT) - 32fps, high quality


PPv2 - Bloom + LUT - ~32fps, low quality

Today I received a question from a PRISM user around how to get their scene looking like something from GTA. The first best thing to do in that regard is to hire some AAA artists from Rockstar, but the next best thing is to use PRISM, so I’ve gone ahead and put together this quick tutorial that covers how to setup a very similar post-processing pipeline to that which is used in GTAV.

As always though, for best results with any post-processing, remember - the better your base scene is, the better results you will get with post-effects!

1 Like

hi guys, I was wondering how fast is the NNAO compared to the regular MSVO of the unity post processing stack, I’m thinking of buying PRISM v3 primarily for this AO solution but only if it is at least on par with the Unity stack performance, cheers!

1 Like

Hello guys! We want to invite you our new teaser of The End of the Sun game announcing Kickstarter campaign where we use PRISM :slight_smile:
If you are interested in, add your email here. https://www.endofsun.com/crowdfunding/

1 Like

Very excited to show off PRISM’s upcoming new HDRP support today! Now that Unity’s API has finally stabilized somewhat, PRISM now has an experimental beta that is working in 2019 HDRP. Currently, not all effects are implemented, but now that some are, it should be relatively easier to continue adding the rest from the stack.

A quick sneak peek:
gaseousdevotedbeaver

Very early testing also seems to indicate that Unity did a good job with the HDRP custom post-processing backend (finally), with approx ~15% CPU time reduction vs. equivalent PRISM effects on the old legacy render pipeline from my testing. Once all effects from PRISMv3 are in, I’ll be posting some stats.

For those that want early access to this beta version (and currently hold a PRISMv3 key) - PM me! Excited to release this one, and continue PRISM’s legacy as the longest-supported single all-in-one post-processing solution for Unity!

1 Like

Recently purchased this package and am getting multiple shader errors on Import, and a black screen in the Demo. We’re on Unity 2019.2.20f1, iOS:

Shader error in ‘Prism/UI/PrismUIBlur_Brightness’: failed to open source file: ‘Assets/PRISM/Shaders/Prism.cginc’ at line 31 (on glcore)

Shader error in ‘Hidden/PRISMStackEffects’: incorrect number of arguments to numeric-type constructor at Assets/PRISMV3/Resources/PRISMLensDefects.hlsl(155) (on glcore)

Shader error in ‘Hidden/PRISMStack’: incorrect number of arguments to numeric-type constructor at Assets/PRISMV3/Resources/PRISMLensDefects.hlsl(155) (on glcore)

Shader error in ‘Hidden/PRISMBokeh’: incorrect number of arguments to numeric-type constructor at Assets/PRISMV3/Resources/PRISMLensDefects.hlsl(155) (on glcore)

Shader error in ‘Hidden/PRISMAO’: incorrect number of arguments to numeric-type constructor at Assets/PRISMV3/Resources/PRISMAO.hlsl(446) (on glcore)

Pretty surprised at all the errors on install, and seems Assets/PRISM/Shaders/Prism.cginc (or anything that resembles it) isn’t in the package.

We’re evaluating several post-process packages for our titles and Prism v3 seemed to be a leading candidate based on its descriptions and our needs. We’re especially interested in the bloom, DOF, and lens effects, but it’s the only one that doesn’t actually work out of the box. Can I get some help with this?

Another question:

Does Prism V2 function without Unity’s Postprocess Stack v2? We find that the stack itself adds 3 ms on costly buffer management alone on an iPhone X, which ends up being 5-6 ms just for a bloom effect. Thanks!

Hi Taylor,

First step which can often fix some “Failed to open source file” errors - you can just reimport the package, or remove that single erroring UI shader (it won’t affect the rest of PRISM). Although PRISMv3 has been tested on 2019.1 on mobile, I’m not aware of any users in production using iOS/GLCore + 2019.2. Unfortunately one of the realities of developing PostFX across Unity now, with all 3 different 2019 versions and 3 different render pipelines requiring a huge number of variants of compatibility to be tested, unlike all previous versions. I can confirm PRISMv3 works on Android, but iOS specific errors I’ve always offered custom support to work through as I do not have an iOS device I can do test builds to. Thankfully all of those are very simple errors to fix.

I’ll PM you a version that fixes all those errors now - they’re actually moreso an overaggressive compiler warning.

For all other PRISM users, I’ve also uploaded this version with the fix to the Asset Store.

I’m looking for a good post-processing solution that works well with the HDRP renderer. I can’t wait for the stable release!
Also, is it possible to control the effects (DOF in particular) via timeline?

I’ve tried reimporting several times but it didn’t work for me. The .cginc is simply not in the package.

Using the new updated package, I’m getting this error instead:

Shader error in ‘Hidden/PRISMStack’: ‘tex3D’: no matching 2 parameter intrinsic function; Possible intrinsic functions are: tex3D(sampler3D, float3|half3|min10float3|min16float3) tex3D(sampler3D, float3|half3|min10float3|min16float3, float3|half3|min10float3|min16float3, float3|half3|min10float3|min16float3) at line 122 (on glcore)

These errors show up simply importing in Unity, set to iOS, before actually performing a build. The Prism_Demoscene still displays a black screen with Prism enabled.

To answer your message, we’re using “legacy” or built-in pipeline on Unity 2019.2.20f1. We may upgrade Unity versions but will be sticking to built-in pipeline.

Following up on my previous question:

Does Prism V2 function without Unity’s Postprocess Stack v2? We find that the stack itself adds 3 ms on costly buffer management alone on an iPhone X, which ends up being 5-6 ms just for a bloom effect. Thanks!

I haven’t tested out through timeline, but the effects are setup using Unity’s standard practices for Post-Processing, that has been one of the goals for PRISMv3 (and v2) - so if Unity’s works with Timeline, PRISM’s should by default.

I’ve just had this error reported by another user as well, we have narrowed down a fix which has been tested in builds and is now uploaded to the asset store pending review - PM me if you need it sooner.

On your previous question, PRISMv2 is 100% integrated with Unity’s Post-Processing stack, and was designed to work well with both Unity’s and other 3rd party effects for the legacy rendering pipeline. If I’d had known how heavy their stack was when I first implemented it I probably would’ve gone down a different route, but for now, it’s something that everyone using Unity post-pro basically has to deal with if you’re on a modern version - worth noting PRISMv1 doesn’t rely on the stack and works in Unity 2018 perfectly well. Thankfully HDRP solves this.

Hey - hoping you might be able to give me some tips. Purchased and installed v3 into my project. I have Unity Post Processing imported. After import of PRISM though, I get the following when opening the project, and a constant error in the Console. I tried the reimport like it suggests, but that didn’t fix anything. Any idea how to clear these errors now?

Note - if I click “Retry” on the first one, it just repeats the same thing. If I click “Continue” it loads into the project but with the Console error shown.

5831167--618655--Capture1.PNG

5831167--618460--Capture2.PNG

EDIT: Found another clue - if I launch Package Manager, I have this. No idea what this is, what it means, etc in the context of installing PRISM though.

EDIT2: Just tried to install PRISMv3 into a blank project and I end up with the same issue. What am I missing?

Hey Steve, uploading a new package now - 99% sure that was just the wrong checkbox checked during the last asset store upload (must’ve had ‘use dependancies’ on). PRISM does not require any UI packages. Shoot me a PM with your Unity version and I’ll send you the version when I get it so you don’t have to wait for asset store approval time.

As a broader update, this weekend the beta of PRISM’s HDRP version will be going live on the asset store also, for people to play around with. As is always the case when having to (essentially) rewrite every file, there’s been some temptation to further iterate on some effects, but I’m aiming to keep these early versions closer to feature/performance-parity of the current legacy renderer PRISMv3.

PRISM’s camera & lens effects are just about all running on HDRP after some more work this weekend. I’ll be pushing this version to the Asset Store for those that want to try out what is essentially a beta - assuming everyone who’s using HDRP will be fine with that since HDRP itself is very much in a beta stage, after having worked with it for a few weeks now!



Currently, Chromatic Aberration doesn’t work and the bloom will change, but all of the above effects in the “PRISMHDRP_STACK” component, including bloom, are done in just 2 passes.

All of the above effects (not including bloom) take 0.616ms at 1080p on a Fury X (fairly close to the low end of what you’d be targeting if you’re running on HDRP), vs. 0.618ms for the compute-based HDRP 7.3 stack, which doesn’t actually include sharpening. So, very much on par, with the added benefit of taking one less fullscreen pass because PRISM’s exposure is done in the Uber pass, unlike Unity’s.

Next up on the TODO is a rework of NNAO, to both make it compatible with the HDRP stack, and a lot more usable in tough scenes with lots of fine edges and movement.