@CrazyCode , Thanks for the feedback, I will contact you directly. It still works OK in 2017.4 for me, so I need a specific scenario to see what can be wrong in your case.
Most likely you have moved the Sleek Render package from its “Plugins” directory somewhere else so it can’t find appropriate CG files. It’s advised to completely remove a package before importing an update, Unity still has problems tracking package contents and changed folders.
Hi!
I’m using Unity 2018.2.5f1
The new update makes the bloom tint completely opaque… If I lower the bloom intensity it creates a semi-transparent overlay…
@FineAllDay do you have a before-after screenshot to see what you mean?
I don’t have a before, but the bloom was working normally. I have this error now:
Shader error in ‘Sleek Render/Post Process/Brightpass Dualfilter Blur’: failed to open source file: ‘…/SleekRenderCG.cginc’ at line 15 (on d3d11)
Compiling Vertex program
Platform defines: UNITY_NO_DXT5nm UNITY_ENABLE_REFLECTION_BUFFERS UNITY_NO_CUBEMAP_ARRAY UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_DESKTOP UNITY_HARDWARE_TIER3 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING
@FineAllDay wrote an IM regarding this, also seems like a package moving-importing problem.
I may need to remove the .cginc files completely in this regard, they are just too much folder structure sensitive and break if any part of the package is moved separately
After talking to a few people it became apparent that the issue only exists when the original Sleek Render package was moved or modified - clean install works correctly.
Made a small “hot-fix” release completely removing the cginc file to increase robustness of the process when moving a package to custom location. Should make the updating process easier.
The update will be live on Monday-Tuesday (as I don’t think Unity guys actually work on weekends). Anyone experiencing similar issues after upgrading to 0.8 - write me an e-mail or a direct message here, I will send you the 0.8.1 version right away and will provide additional support.
Cheers.
Hey we are looking for a depth of field that is on Mobile is this available with sleek render ?
It’s a common feature request, but it’s not available yet. It’s pretty high on the backlog list and it will be implemented after the master downscaler for 3D for the standard legacy rendering pipeline.
Hi
Really nice your Asset!
two questions please
How is going the 0.9 version?
I’m implementing an experiment with Arkit and Unity 2018.2.6f rendering with Metal. My fps is slowing to 50fps from 60fps when using the asset with colorize, vignette and bloom. There is some known trick to improve performance with this settings?
thanks
Hi!
Usual case is rendering already taking around 16.6ms and any additions to pipeline (even 2-3 ms in average) can bring overall FPS down to 50. So general shading considerations should be taken (most common thing is using standard unity shaders on a mobile target). You can send me more info on the project on my support e-mail or here via IM to receive more specific advises on your rendering and overall project setup. I’ve helped to speed up quite a few projects already, so please don’t hesitate to contact me on this.
I’m currently testing film grain, but right now it really slows down the rendering due to the fact that it’s also a full-res pass with additional precious GPU passes spent on arithmetic (there are options of using downscaled pass, but it doesn’t look good in every case and for every blend mode). So I’m considering adding a separate master downscale functionality for 3D scenes in that version to enable users speeding up the overall 3D rendering process (to mitigate the drawbacks of a usual case with using unity standard shaders for 3D objects), so overall rendering (post processing included) becomes cheaper. Something that Unity has in a new LWRP right in the pipeline settings (they have a scaler slider for 3D geometry built-in).
I’m not sure about exact ETA now, but will post once I will have more info.
Alternatively, I will add the downscaler first and film grain right after that.
Cheers
Hi
Thanks for the quick response, and sorry for the late mine.
I’ve tested with the postprocessing stack v2 and the fps is slower, 40 fps. Could be great if you can show me some knowledge on speeding up, I will write you with more info.
Sounds really good the library advances, LWRP looks like a big open door but not easy to cross, I will be waitting the next release to try learning how do you use this big power
Thanks
Hello!
Can we block post-processing for some layers? Like, don’t do post-processing on “Particles” layer?
And one more thing, is it possible to add anti-flicker to bloom?
Hi @ytkimirti !
This is usually not a trivial task (Unity’s PP Stack can’t do it out of the box either). But it depends on a case - if you have a 2D game where particles are always on top of everything else, you can try rendering them with another camera. Particle rendering is actually a very good candidate for optimization and they usually allow for downscaled off-screen rendering. Ultimately I would suggest rendering them offscreen with a downsized RenderTexture and applying them to the Master render after the post-processing step. But you are surely would have to do some manual pipelining coding to achieve it (I can provide further info on how to approach it if you’re interested).
It seems that the white lines are too small for the bloom to effectively pick it up. When we’re blooming, we have to downscale the whole rendered scene and the resulting texture has pretty harsh quantization properties (some pixels get lost when moving) and it’s a general bloom problem that relates directly to processing power and the size of blooming objects. Sleek Render has anti-aliased downscaling (both in hardware and in the shader), but as you can see, it doesn’t solve the problem in a case of such fine details.
You can crank up the pass count for the bloom up to 5 (and maybe customize the Sleek Render code to go up to 7, but it will be considerably slower and most likely won’t be suitable for lower-end mobiles) and also increase the size of the bloom texture (so more pixels get to the texture).
The “anti-flicker” switch is usually implemented using this approach - cranking up the texture size and blur passes quantity which results in lower performance. The latest bloom update does exactly that - it allows for better quality bloom for less flickering. White parts are just way to small in your case.
You have two good options though:
- It may sound silly, but you can put a semi-transparent glow sprite over your objects that looks like bloom (with a simplest additive shader on it). You can even make a few frames of animation, or transform its scaling based on velocity of your moving triangles. It will look way better, will enable you with better overall control over shape and appearance and most importantly won’t require any post-processing at all. I really think it’s the best way in your case.
- Using some custom pipelining logic (again) use some other objects for bloom (not the triangles with white rims themselves, but maybe bigger full-white triangle) and render them only for the bloom camera (not to the main view camera). Apply bloom to that “fake scene” texture and overlay it ontop of the master render. Flickering would go away as bigger all-white triangles would be much easier to pick up. You will also be able to stretch those fake white triangles to make some kind of anamorphic bloom based on their direction and velocity. It will most likely look the same (or even less nice) as the first option but with lower performance (Sleek Render is fast, but it can’t beat the no-post-processing way)
Anyway, there wouldn’t be a magical “anti-flicker” switch in this particular case that will perform good enough for stable framerate on mobile, good performance in specific cases usually requires some customization anyway. Again, I can guide you with general advises on custom pipelining and general graphics stuff, IM me if you’re interested.
hi @Kumo-Kairo , am interested in buying this asset, but am waiting for Low Weight render pipeline support.
Hi!
Last time I have checked, LWRP requires binding to the standard PP stack (source) which basically means we are bound to additional standard PP Stack overhead even when not using any of the built-in effects. The only “robust enough” way of hooking up Sleek Render to the standard stack is to us it and extend it.
I’ve seen quite a lot of users report overall performance drop and hugely increased build times (shader variants compilation) by merely adding a PP stack to the project. I haven’t looked at myself it in depth yet though.
Moreover, LWRP is still in preview and although they don’t seem to be shifting many things around lately, things would definitely break like they do with standard PP stack updates.
This whole picture would imply false hopes on the Sleek Render package because however fast it may be, it will still be slow right at the beginning just because we have to go the Unity way and extend the standard Post Processing stack instead of replacing it completely.
I will definitely add support for custom Scriptable Rendering Pipelines, so it’s easier to add Sleek Render to a custom pipeline. And will most likely post some guides on cloning and changing the source of the LWRP to use Sleek Render instead of the standard stack and not extending it so we can have at least some rendering performance back.
But right now I would suggest sticking to the “legacy” rendering pipeline which as of writing is more customizable for the not-really-graphics-tech-guys than LWRP which requires you to stick to certain lighting models and predefined rendering behaviour.
@Kumo-Kairo thanks for replay, i haven’t delved in learning how shaders work that much… unity engine devs embraced the new render pipelines fully for their future unity releases… which is kind of feels we are going to be left out behind if we don’t embrace it as well… am sure many will feel the same (also potential future buyers)
regarding build times, is not a big deal for me… only performance is what i care about!
what i would suggest personally to you… is maybe it’s a good time to start “Addressing” your concerns and communicate with a unity dev… to see how to possibly achieve same performance numbers on the new pipelines!
am sure they will be interested, since the team behind LWRP and you are both share the same goal to achieve best performance on mobile… maybe they will make few changes that make it possible for sleek to run as good as it is now.
sadly the current postprocessor despite being enhanced to be mobile friendly… it stills chops fps from 60 to 30 even on just enabling single effect!
I really think that LWRP is just a big marketing selling point. The pipeline is bloated with general stuff that is suitable for all things from PBR to unlit VR, which is generally not a good sign. It’s good enough for general solution, but not more.
If you really care about performance - avoid LWRP at all costs and write a completely custom pipeline. I haven’t seen any serious and successful Unity game that was OK with using standard shaders and pipelines (which is applicable to legacy pipeline as well as it’s still quite customizable). Look at any Unite talk about “how we made our game” and see how they tell what they didn’t like in Unity’s rendering and how much they have customized it. Same thing would be with LWRP, we have just changed names.
This is exactly why PostProcessing stack was added to LWRP so it could be extended with custom effects. The reason they are not adding more hook points for post processing is that anything that is more elaborate would increase the complexity of LWRP reducing overall robustness. And this is where I completely agree with them. Custom pipelines exist for this exact reason - to enable as much customization as possible.
I would definitely prefer losing some buyers over making false promises about possible performance that can be achieved with LWRP + Sleek Render. We have enough of this bad marketing already.
Again, as I have said, I will surely add Scriptable Pipelines support so Sleek Render could be embedded in custom pipelines, and this is really the only real way to make Sleek Render serve its purpose.
I would rather invest some time in educating people on mobile rendering - both in shaders and pipelines, so more people will be able to correctly reason about rendering performance and be comfortable with writing something custom.
I will continue looking into LWRP for more updates and possible hook points for Sleek Render, just in case something drastically changes, but can’t really promise LWRP support. Be sure to wait for Custom Pipeline support though.
Cheers.
makes sense… but i have zero knowledge of shaders writing… thats why am posting here in first place
that’s why i said before that you might need to be part of beta forums or perhaps discuss how to achieve same performance numbers to push unity team to do something about (all stuff you mentioned)… currently unity team is focusing their tools/optimizations on these new pipelines…
looking forward for the updates in future.
How do you add bloom to objects? Specific objects or at least sprites? I have no idea and I’m trying to make a glowing game. Im so confused on how it works. Sorry t