One of the bullets in the list of new features for 2020.1 is "Skinned Instancing". Am I correct in assuming this is GPU instancing for skinned mesh renderers? Can anyone provide any details about it, especially which platforms and/or GPU's it is limited to? Is this related to https://github.com/Unity-Technologies/Animation-Instancing? Thanks!
Just saying "Skinned Instancing" in the features list doesn't make it sound like it's a DOTS-only feature, though, does it?
Wait... Skinned Instancing is only for SRP? :^) Yay, another feature 90% of the developer base cannot use.
We don't know that or anything else because nobody from Unity has answered this question, so let's just wait and see.
There will never be more features for builtin, it's done. It's basically Unity V1.0 while SRP + DOTS is Unity 2.0. Though you can continue to have monobehaviour based code.
If we expected Unity to add every new feature to the fundamentally flawed old tech stack, things would never move forward and we would be stuck forever with sub-par tech. A clean new start is what's needed (with breaking changes, un-upgradable features, and all that). I really think the mindset everyone in this community should have right now is to finish our current projects with the vanilla tech we had when we started, and then for future projects we can take advantage of all the cool new stuff. The cool new stuff isn't even production-ready now anyway. And for those of us who started a project that relied on the assumption that Unity would end up providing crucial tech for it in the future, well.... I dunno what to tell you except that that was a bad idea. Software development is unpredictable and it's perfectly normal that something that was originally believed to be ready in 1 year ends up taking 5 years instead
While that's true, URP isn't ready yet, and likely won't be until 7.2.0. And even then, it's lit shader will be broken for normals so Unity has some measure of work ahead to polish up it's offerings before I can criticise people for choosing built-in.
Exactly. All of the features that Unity is showing off and pulling out of preview isn't even production-ready and lacks documentation. If it was, I could transfer to SRP quite easily. Quick list of features like this: - SRP / URP / HDRP - UIElements - VFX Graph - Shader Graph - Burst - DOTS - Netcode - ECS - Lighting Baker - Non-existant replacement for deprecated Enlighten's realtime GI - DSPGraph - DOTS Animation - Input System I'm absolutely sure that in a few years (3-4) this will all settle down, but for now Unity is very much in turmoil. Pretty chaotic, with people having no idea what features will be deprecated and essentially dropped tomorrow, and no idea what to choose (HDRP? LWRP? oh wait, now URP? Built In? Wait, how long will built in be supported? DOTS? Monobehavior? Hybrid? Conversion?)
My point is that we don't have a choice but to go through this transition period, and ultimately the decision to stick to the production-ready stuff or not is our responsibility. I don't think it makes sense to criticize the fact that these packages aren't ready instantly
I think it does make sense to criticize them, in the case that unity is saying they are instantly ready. For example, according to unity, both HDRP and URP are now Production ready. I disagree, and find it untrustworthy. Fine if you disagree with me, of course
Can anyone from Unity comment on what specifically the new feature in 2020 called "Skinned Instancing" is? Thanks!
Most likely GPU instancing of skinned meshes by uploading animation data to the GPU, instead of handling it on the CPU. This would make skinned meshes, something traditionally very expensive, much cheaper in certain cases. I'm not sure how it's going to be integrated into the animation system, but wouldn't be surprised if it utilizes the new DOTS based animation system, and wouldn't work with mechanim and such. But that is purely speculation on my part. If it could instead use the playables system, it would be insanely valuable, since it would then support mechanim and pretty much all other animation systems that exist currently. But it (looks) like Unity is moving on entirely. I am interested to see how they do this. They've built a little experiment before, but it only supported basic animations, with no layers or anything like that.
Yes, that's what I linked to in the original post. Hopefully it's a very general purpose thing. We shall see hopefully.
DOTS animation is using this it looks like via Shader.SetGlobalBuffer. So looking at that would tell you the format. Not using URP so I didn't really even know where to look to find the shader that was using the compute shader output, but looking at that should tell you the output. So it should be entirely usable in built in I would think.
_SkinMatrices is the global shader buffer of float3x4 which is compatible with the Linear Blend Skinning node in Shader Graph, but all the bone calculations are being done on the CPU and passed up every frame, so I don't know if that really counts as "skinned instancing" or corresponds to the 2020.1 feature the OP asked about.
Ah ok ya showing my ignorance of URP. But that said I would think instancing would be using compute shaders. So in theory it should be adaptable to builtin. Unless they somehow keep the source closed.
Sorry for the late reply. The bullet item refers to the added Skinned Mesh Renderer support in the Unity Raytracing Renderer. From an internal description: "In order to ray trace more complex scenes and animated content, we have added support for the Skinned Mesh Renderer in Unity’s realtime raytracing renderer. This implementation supports both CPU & GPU skinning." I'll update the item.