Hmm, somehow missed your reply. So I downloaded the demo again, selected Fastest – and now it looks like Unity shadows are disabled entirely, so I get 3.8ms without UASS and 4.4ms with UASS…is it possible to compare performance of Unity shadows and UASS in the demo?
Also, is there any chance of making this work on Forward rendering?
Hi,
I’ll make a better demo with a direct comparison for you some time soon.
Don’t think Forward support will be coming any time soon unfortunately, I tried really hard to make it work, but every way to inject stuff into Unity’s shadowmap with Forward has massive drawbacks, and directly multiplying the colors looks really ugly and introduces it’s own problems. So it’s Deferred only for now.
Hi,
I saw this asset on the store and didn’t find any link to a documentation or video tutorial.
When reading how it works I have the strange feeling that I should manually set capsules or components on each and every single object I want that cast a shadow.
For large and complex scenes this seem like a very tedious thing to do.
Did I understand it right or is there something else?
Hi,
Please find the documentation attached to this post. (README.txt)
You will indeed have to approximate your geometry with 3 shapes: Spheres, Capsules and Boxes, that is the theory behind the analytic shadows algorithm. There are some helpers in Tools/UASS/* that can add appropriate shadowcaster shapes based on [Sphere/Capsule/Box]Collider components on your game objects.
I’m looking for really far distance shadows that could be cast from big spheres (like, 20-300k unit radius) on other such spheres. Currently the problem is that camera must get close to those objects to render the shadows and I need them to work from any distance - it’s ok for those to be simple blob shadows that just cover big elliptical area.
It’s to simulate eclipses from planets on other ones dynamically, relative to directional light source.
Would your solution work for that out of the box or could you maybe implement such feature? I’d surely buy it.
Hi, here’s a screenshot of a 99999unit sphere casting a shadow on another 99999unit sphere, so it should work (and be performant too, since it’s a screenspace effect, so you pay in perf only for what you see).
Make sure to use the Indirect algorithm and make sure that your planet shaders are fully Deferred and write to the G-Buffer if you have custom planet shaders. But you probably shouldn’t use units that large as it breaks Unity in a lot of different ways (for example i can’t even select these 99999unit spheres in the editor when they have such scale on unity2019).
I’ve researched that earlier and gotta say that it’s not really a possibility, the amount of complexity would make it a different asset altogether, there would need to be global distance fields maintained and a robust SDF baker. That’d be a full-time job for a year to implement properly. The UE4’s paper on their SDF ambient occlusion is one of the largest computer graphics papers out there for example.
I see the URP version is Forward only - does that mean it now works on mobile? Or if not, what’s the issue that stops mobile being supported? I guess things like Switch are also not officially supported either?
Second question - is it possible to provide an Amplify node, so that custom shaders can still be created?