PRISM - Realistic All-In-One Post-Processing for Unity


PRISM v3 - Realistic, All-In-One Post-Processing - Get it now!

PRISM 3.0 Launch Trailer:

PRISM 3.0 is now available on the Unity Asset Store - rewritten from the ground up in native HLSL, this is the biggest update PRISM has ever seen!
PRISM - Realistic Post-Processing for Unity | Fullscreen & Camera Effects | Unity Asset Store

What is PRISM?
PRISM is an all-in-one post-processing solution for Unity, designed to incorporate multiple highly-optimized realistic post-processing effects into one “Uber-Shader” to reduce expensive Graphics.Blit passes and increase performance.

What does it do?
Check out the PRISM GUIDE to see all features. The current version of PRISMv3 features:
(ALL effects are HDR & LDR compatible)
Currently mobile, PC & Console are supported. VR is not directly supported.

PRISM.Develop
-A combined, ultra-hd colour correction pipeline, simulating digital development of raw photos. Includes exposure, color correction, tint, brightness curves and more.
-PRISM.Develop uses CIELAB colour space - the most accurate out of any colour solution
-Integrated into main pass

PRISM.Distortions
-Physically accurate lens distortions. Barrel & Pincushion distortion that don’t randomly blur your lens!
-Includes standard chromatic aberration, and glass dispersion settings
-Integrated into all passes for physical accuracy

PRISM.Bloom
-HDR Layered bloom
-Supports no threshold (physically correct) or threshold bloom (artistic choice)
-Temporal stability (anti-flicker)
-Lens dirt
-Integrated into Main Pass

PRISM.Noise
-Simulating digital sensor noise, PRISM.Noise is necessary to achieve a filmic look at high ISOs
-Fully integrated into main pass, with dither option

PRISM.Vignette
-Accurate, brightness decreasing function towards the corner of the lens
-Integrated into Main Pass

PRISM.Color
-Photographic colour correction, including shadows/midtones/highlights correction
-Artist-friendly
-Colour vibrance
-Colour contrast
-Integrated into Main Pass

PRISM.Lut
-Dual lookup textures
-Mobile friendly colour correction option
-Integrated into Main Pass

PRISM.Sharpen
-PRISM’s ultimate photographic sharpen effect, with minimal cost

PRISM.Tonemapping
-Unique tonemapping operator, fully integrated into the PRISM chain
-Integrated into Main Pass

PRISM.NNAO
-The ultimate in modern, neural-network based ambient occlusion
-Customized sampling algorithm for PRISM ensures great performance
-The first ambient occlusion usable on many mobile devices, due to heavy texture sampling instead of deep nested loops of slow math
-Temporal stability

PRISM.Bokeh
-Bokeh temporal stability (anti-flicker)
-Front field blur
-Variable aperture size and shape
-Highly scalable performance
-Highly customizable focus lengths, bokeh intensities, and blur amounts
-Integrated into Main Pass

PRISM.Rays
-Customizable Weighting, Color, and Threshold
-Tightly integrated into other effects - can cost as little as 0.2ms when using Bloom as well!

Gamma Correction
-Integrated into Main Pass

Why make PRISM?
Through the course of developing the competitive survival game Down To One, we used to use a bunch of post-processing effects on the main camera, and because of our custom 3-camera setup, performance did start to become a huge issue. As we’ve added a few more PP effects, it’s become obvious that you simply can’t have a properly optimized game when you “stack” effects on your camera - VRAM, extra GPU time spent in Graphics.Blit passes, performance lost where effects could be combined - there’s a reason no other game engine does it like Unity. Also, I wanted Depth of Field with Bokeh that didn’t suck, or take 2ms frame time :slight_smile:
TL;DR - PRISM has been developed for use in my game, and as a general asset for developers that want a highly optimized, realistic looking ‘one-stop-shop’ for post-processing.

Why choose PRISM over other packages, or the new PostProcessing Effects?
PRISM started the post-processing revolution in Unity. Unity’s new Post-Processing pipeline is based off many of PRISM’s original concepts, including PRISM-Presets, combined uber-passes, and artist-friendly inspector tools. Now, with PRISMv3, you can add PRISM to your PostProcessing stack and use any effects you want, whilst still keeping your favourite Unity effects (ie. Temporal Anti-Aliasing or SSRR).

When you ship your game, you can choose whether you want to have it look the same as the other 50 releasing that day, with Unity’s telltale ugly chromatic aberration blur, highly unstable bloom flickering, poor noise reproduction and more. I instead recommend you use PRISM for most key effects instead, like thousands of developers and hundreds of games over the last 4 years. I’m confident enough in this product, that anyone purchasing PRISM gets a launch support guarantee - if your game launches and users report an issue with PRISM, join this discord and ping me - it will be fixed at the highest priority over any other projects.

2 Likes

This does look fantastic and I is much needed since Unity still seem intent on doing their new image effects as non combinable shaders instead of of sharing resources. Can you say if this has been tried on modern mobile devices and if so do you have any performance figures.

2 Likes

How does this compare with Scion performance-wise? Any benchmarks/comparisons?

2 Likes

Yeah, it’s completely crazy how Unity still aren’t doing a proper image effects pipeline and still releasing “stackable” effects.

I don’t have any newer mobiles to dev on, but in our PRISM beta group we did have one user test it on some mobiles, and report back that the Bloom & DoF worked well on mobile, and performed slightly better than the equivalent mobile-specced image effect from Unity, and of course, since beta a few more optimizations have been made.
Unfortunately I don’t have any benchmark numbers from the mobile test, and I do know for a fact that PRISM’s noise effect does not play nicely with mobile GPUS because it’s 100% procedural.

1 Like

Update: PRISM smokes Scion performance-wise, similar setups (using Bloom/DoF/Vignette/Chromatic Aberration) have performed up to 1ms faster in user tests.

Old response: Again from reports of our beta testers, PRISM can certainly perform better than Scion, although because PRISM is inherently more scalable & customizable than Scion, you can scale the performance of PRISM depending on your target hardware/scenes.

1 Like

I didn’t want to be “the guy” who asked the Scion question, but it was of course the first thing on my mind when I saw this hit the asset store. :wink:

But I will ask about AA. Any plans for adding that?

And has anyone had success using this exposure feature with a Time of Day type lighting? (With Scion you have to write your own script to change the exposure settings for day and night and other lighting situations. In my view a better solution would be one that worked well out of the box.)

Good luck with PRISM! :slight_smile:

1 Like

So, the reason PRISM (and any other combined PostFX packages) don’t have AA in them is because Post-AA cannot be integrated into one main pass with other effects, it needs to always be standalone (this is also detailed in the PRISM docs). Something like a SuperSampling could potentially be added, but it also wouldn’t really be integrated at all, it’d just ‘happen’ at the start of the chain.

In terms of PRISM’s automatic exposure, it’s pretty basic, although the great thing with PRISM is that if you do need to create separate values for night-time/day-time/etc on different effects, you can simply make a PRISM-Preset for that lighting condition, and swap it in with 1 line of code.

Thanks!

Just 4 days left until PRISM’s launch week sale ends! Here’s a full res screenshot of PRISM in action in the Blacksmith demo by Unity, my personal favorite:

I know this is probably a retarded question, and its hard not to be biased… but if I already own SE Natural Bloom as well as Paroxe Filmic Tonemapping, will I see any benefit to PRISM if I dont plan on using Chromatic Abberation, Viggnetting, Filmic Grain, Depth of Field or Nightvision?

1 Like

I’ll let you decide for yourself, so there’s no bias involved :slight_smile: (although for the record, I strongly dislike SENBLM, it’s very heavy and unscalable/untweakable)

Default settings of SENBLM + Paroxe Deluxe Tonemapper (Extended luminance preset - there’s probably a way to tweak the tonemapping to be slightly better, but at the end of the day it’s still just filmic tonemapping):

Profiler:

Default settings of PRISM (bloom only preset + tonemapping ticked):

Profiler:

Got it, get on Jabbr, I need to ask you something real quick.

1 Like

Great to see PRISM featured in the “New on #AssetStore” page - Unity Asset Store - The Best Assets for Game Making, as part of “The cream of the new Asset Store crop**.**” I can’t help but agree :slight_smile:

Only a few days left until our launch sale ends, so get in quick if you want to save $5! No rush after that though, PRISM’s price is set, and it won’t be jumping around in price like some other all-in-one post-processing assets :wink:

Also, this week I’ve gone ahead and added a new section to the PRISM documentation which covers common gotchas - the main one so far being that your Dirt texture does need an alpha channel. PRISM docs are done via google docs, so no waiting for updates!

PRISM v1.2 has now been submitted to the Asset Store! The main new feature of this update is support for dual-LUTs (all done in the main shader pass, of course!) - having dual LUTs makes effects like the GTA “Wasted” effect that much easier.

As well as that, 1.2 adds new setter methods for some variables (like gamma, and intensities/strengths of effects), to help streamline workflow. All of these shiny new features, tips & more are in the updated documentation as well!

1 Like

I own SENBDL, and i bought it because of the physical bloom aspect, aka, based on hdr values, is this the same for your bloom? Because SENBDL is quite intense and i’d like a more optimised option for physically accurate bloom

I used to use SENBDL as well, and moved over to PRISM in my game, which is HDR/Linear/PBR. PRISM fully supports the same type of ‘physical’ bloom with 0 threshold as SE’s bloom, and supports HDR by default as well - for example, the background image of the store page for PRISM (https://www.assetstore.unity3d.com/en/#!/content/50819) shows the extra bloom on the PBR metal that is reflecting the directional light.

Be careful though! Once you use PRISM’s bloom it’ll be hard to go back to SENBDL, which performs worse, is less temporally stable/has more firefly artefacts, has no real customisation options apart from intensity, etc :slight_smile:

lol, i am okay with those ‘drawbacks’ hahahah, i am going to get my boss to purchase your plugin then, looking forward to trying it out!

1 Like

PRISM v1.21 is now live on the Asset Store! The main new feature of this version is support for dual-LUTs, which can be great if you need a normal LUT for scene color grading, and an extra LUT for an in-game effect, (for example, a desaturate effect on low health).

As always, patchnotes can be found here.

1 Like

Any time I check the box to turn on Depth Of Field. Is there a trick to it or any sort of conditions?

What version of Unity & PRISM are you running on? I am aware of a Unity shader compiler bug for OpenGL that looks like that, and is present in 5.0 (which is fixed and doesn’t seem to occur in 5.1.x onwards, hence the note at the bottom of the PRISM store page).
Also, it shouldn’t matter at all if you’re on 5.1+, but just to be sure - what platform are you targeting?

Turns out it only happens if turned on while the game is running, so maybe there’s a good reason why it happens? I tend to turn camera effects off and on while the game is running in order to see/tweak the effect. Not sure if that’s a bad practice, but it’s logical.

I’m running the latest version of Unity and PRISM.

Another note though - even if I turn on DOF and then run the game, I don’t get an error, but I also don’t get any DOF effect at all. If I then start adjusting the sliders for the effect to try to “see” it, then the error from above eventually comes up.

Does DOF only work under certain pipelines maybe? I’m currently set on MacOS build target, Deferred Rendering, OpenGL 4, umm… can’t think of anything else relevant? :slight_smile: