Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice
  2. Ever participated in one our Game Jams? Want pointers on your project? Our Evangelists will be available on Friday to give feedback. Come share your games with us!
    Dismiss Notice

Skinned Instancing

Discussion in '2020.1 Beta' started by Claytonious, Jan 14, 2020.

  1. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    705
    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!
     
  2. thelebaron

    thelebaron

    Joined:
    Jun 2, 2013
    Posts:
    484
  3. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    705
    Just saying "Skinned Instancing" in the features list doesn't make it sound like it's a DOTS-only feature, though, does it?
     
  4. joshcamas

    joshcamas

    Joined:
    Jun 16, 2017
    Posts:
    1,029
    Wait... Skinned Instancing is only for SRP? :^) Yay, another feature 90% of the developer base cannot use.
     
  5. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    705
    We don't know that or anything else because nobody from Unity has answered this question, so let's just wait and see.
     
    hippocoder likes this.
  6. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    26,727
    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.
     
    joshcamas likes this.
  7. PhilSA

    PhilSA

    Joined:
    Jul 11, 2013
    Posts:
    1,387
    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
     
    Last edited: Feb 5, 2020
    transat, Thermos and hippocoder like this.
  8. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    26,727
    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.
     
    Dragnipurake97 and joshcamas like this.
  9. joshcamas

    joshcamas

    Joined:
    Jun 16, 2017
    Posts:
    1,029
    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?)
     
    Last edited: Feb 5, 2020
    Dragnipurake97 likes this.
  10. PhilSA

    PhilSA

    Joined:
    Jul 11, 2013
    Posts:
    1,387
    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
     
    GameDevCouple and hippocoder like this.
  11. joshcamas

    joshcamas

    Joined:
    Jun 16, 2017
    Posts:
    1,029
    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 :)
     
    GameDevCouple and hippocoder like this.
  12. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    705
    Can anyone from Unity comment on what specifically the new feature in 2020 called "Skinned Instancing" is? Thanks!
     
  13. joshcamas

    joshcamas

    Joined:
    Jun 16, 2017
    Posts:
    1,029
    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.
     
    Last edited: Feb 5, 2020
  14. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    705
    Yes, that's what I linked to in the original post. Hopefully it's a very general purpose thing. We shall see hopefully.
     
    joshcamas likes this.
  15. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,835
    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.
     
  16. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    639
    _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.
     
  17. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,835
    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.
     
  18. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    705
    Can anybody from Unity comment on what the "Skinned Instancing" feature announced here is? Thanks!
     
  19. LeonhardP

    LeonhardP

    Unity Technologies

    Joined:
    Jul 4, 2016
    Posts:
    2,053
    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.
     
    Claytonious likes this.
unityunity