Search Unity

Graphics [RELEASED] Hair Composer (nVidia HairWorks)

Discussion in 'Tools In Progress' started by Simod, Jan 26, 2017.

  1. Jakub_Machowski

    Jakub_Machowski

    Joined:
    Mar 19, 2013
    Posts:
    647
    Hello Is there actual link to asset store to buy that asset ? :) It would be great to finally had great hair for Unity

    Also How it will be working with for example Beard with facial animation, What I mean is how it will move hairs accourding to for example jaw close open etc :) In automatic way or weighting needed?
     
    Last edited: Jan 28, 2019
  2. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Hi Jakub,

    Speaking of facial animation it depends how it was made.
    1. Animation via morphs it not yet supported. The good news HairWorks got morphs support in a last version, so it's our turn to make it working in Unity

    2. Facial animation using bones will work automatically. Good to mention though HairWorks knows the model weighs through GrowthMesh. GrowthMesh should be generated in the Maya or 3dsMax.
    It's not in the store yet - still working on to make it real :)
     
    Malbers likes this.
  3. Jakub_Machowski

    Jakub_Machowski

    Joined:
    Mar 19, 2013
    Posts:
    647
    OK thanks!

    We are using bones animations on face.

    Sorry what is Growth Mesh? I'm using CInema 4d We have ready weights of bones of face on our characters. Do you mean it isn't enough to have proper weighted mesh? Please give some more info if you can :)

    Regards
     
  4. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395


    For GPU hair, you always need a set of 'guide hairs' to show the GPU where and what direction to grow. I am guessing that is what he means by 'growth mesh'.
     
  5. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Thank you ceebeee :) Almost there. The "(a)" image it showing exactly how the Growth Mesh looks.

    2Jakub: I think this video will explain it better than me.



    For an artist this is a character area which will be covered by a hairs.
    Under hood it's a separate mesh extracted from your character's base mesh. You may change this as you like (using 3dsMax tool for example) and the tool will keep/copy weights for you.

    Later in the rendering pipeline Hairworks will use bones and the weights of the Growth Mesh to skin it properly. Growth Mesh itself is not visible but with that Hairworks will show ("grow") hairs perfectly attached to it, and will apply "lighting model" using Pixel Shader.
     
    ceebeee likes this.
  6. Jakub_Machowski

    Jakub_Machowski

    Joined:
    Mar 19, 2013
    Posts:
    647
    OK thank you :) great to hear that, I just wish if there would be growth mesh autoring tool for blender :)
     
  7. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    growth mesh isn't all that special:
    https://docs.nvidia.com/gameworks/content/artisttools/hairworks/Using_HairWorks.html

    I'm sure it wouldnt' be too hard to turn Blender particle hair strands into a growth mesh. I've never explored it in-depth because I've never had cause to, so take my opinion with a grain of salt. :)
     
  8. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Hi guys,

    I remember theprotonfactor was working on Blender importer. Not sure though how things are going now.
     
  9. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    Yeah he had one, but took it down. I asked him about it once, he said one day he would release it again, but AFAIK he never has.
     
  10. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Hello guys,

    Just a quick update. The Builder Tool is finally finished, and this is not a prototype but a fully working application in Beta stage. Very stable, as it has lots of code covered by unit tests. I would say this is a huge step in a final destination - Hair Composer distribution to masses.

    So how is it related to Hair Composer?
    Generally speaking Builder Tool will allow you to "convert" HairWorks distributive to Unity Package (.unitypackage file) directly on your machine. And of course it will append all features available through Hair Composer.

    How does it look?
    We kept UI as simple as possible and removed most of the hassle you will get with an ordinary project compilation. You will face several simple mouse clicks but you will have to download HairWorks distributive manually:
    1. Click "BUILD"
    2. Validate license
    3. At this stage you will see a list of available automation blueprints. Internally blueprint a set of commands and requirements of how to build Unity Package. It will show Hairworks version it require for compilation and the Unity version it may run after

      Select a single blueprint you like and hit NEXT

    4. Select HairWorks distributive
    5. Select location for .unitypackage file
    6. Hit "BUILD"
    What is going on under the hood?
    Lot's of stuff. But I will list most important. After build process has started it will:
    1. Find and download automation blueprint
    2. Extract HairWorks distributive and check it's integrity. If version does not match, or some files are missing it will fail the build
    3. Install required third-party tools. This may take a long time, depending on your internet connection. Current version requires "Visual Studio Build Tools", which will be installed automatically for you. It will skip this step if "Visual Studio Build Tools" was already installed on your computer.
    4. Compile and merge all files into .unitypackage file
    I don't want extra stuff like Visual Studio Build Tools installed on my machine.
    Unfortunately this the only way at the moment. But we made an extra function which will allow you automatically uninstall it after. This option is currently disabled for public, and will be available after sufficient tests.

    Builder - Home.png Builder - License.png Builder - Blueprint.png Builder - Hairworks.png Builder - Output.png
     
    Last edited: Mar 24, 2019
  11. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
  12. r3ndesigner

    r3ndesigner

    Joined:
    Mar 21, 2013
    Posts:
    143
    Simod makes my sunday much more happy =] =] =], any date to release? or pre order?
     
    Simod and Kriszo91 like this.
  13. keeponshading

    keeponshading

    Joined:
    Sep 6, 2018
    Posts:
    937
    Here some realtime open source hair.
    Based on the Disney Principled Hair.

    Code is freely available and you could save a lot of proprietarryness and a sorry from nvidia when they stop development.


    and

    or longer ones
     
    Last edited: Mar 25, 2019
  14. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    Just looks like some videos of Blender, which isn't real time hair, it's per frame rendered. Nor can the code be used commercially, anyway, it's GPL.
     
  15. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    According to our TODO, several essential tasks left:
    1. End User License Agreement (EULA) legal document. We will get a draft version at 27th March, and will finish it no later than 30 March
    2. Unity 2018.3.10ft support. We will remove all NVIDIA intellectual property (models, textures, hair assets) from the files. That means no examples will be included with the plugin. But this part will quickly come back later with our models. Estimates are from 15 to 30 days to complete task with all QA
    3. Official site https://www.cryomen.com needs a documentation!
    4. Customer and Technical Support at https://github.com/CRYOMEN/hair-composer require a tiny touch to get finished
    If everything goes well, earliest launch is in 30 days.
     
    Last edited: Mar 26, 2019
    r3ndesigner and Bartolomeus755 like this.
  16. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Thank you keeponshading,

    Unfortunately this won't fit as is. At first glance two important features are missing:
    1. Hair physics simulation (or did I missed it?); and
    2. Real-time rendering
    At medium term we could adopt a hair grooming tool. Indeed that would be a great addition. I will raise this question during our internal discussion.
     
  17. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    I'm surprised nobody has asked the most important question: How much will it cost?
     
  18. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    We got draft prices and terms if that is okay.

    Two types of licenses:
    1. Personal.
      Perpetual, one seat, royalty-free license with access to all updates within one year. €105 per license, no tax.
      Good for individuals who are working on a personal or commercial products. Personal license can not be transferred or used by another individual and can not be funded by a company

    2. Company.
      Perpetual, one seat, royalty-free license with access to all updates within one year. €140 per license, no tax.
      Company license can be re-assigned to another employee
    Extras:
    • Renewal discount is 50% off the normal price for Personal Licenses and 10% off the normal price for Business Licenses
    • For 3+ seats you my apply for discounted quote
    Details and terms:
    • Perpetual license can be used indefinitely
    • Once validated, Builder will show all products and versions available for that specific license
    • We will use Paddle Payment gateway. This will remove all hassle about payment notifications via e-mail, invoices, VAT numbers and etc. It will accept purchases via PayPal, all major Credit Cards, Apple Pay, Wire Transfers (ACH/SEPA/BACS), and Purchase Orders. Payment details are encrypted and secure. No card details will be stored on our server
    • Additional information about the license types and other terms will be available in End User License Agreement

    IMPORTANT details of product development, long term support and versions
    • Product version will stick with following format: [yyyy.m-number], where "number" is a unique release id.
      For example: 2019.3-777 says the product was released at March 2019, and it's ID is 777
    • The product development won't support backports to previous versions. That means, once released it is "locked" for changes made in consequent versions. The decision was made in favor of rapid development and bug fixing, as according to our calculation we can not afford this at expense of development speed and the technical support

    • Every new release will support only a latest Unity version. This is flexible at some rate, but at the start we will always target a latest Unity release.
     
    ceebeee likes this.
  19. Kriszo91

    Kriszo91

    Joined:
    Mar 26, 2015
    Posts:
    181
    HDRP will be supported?
     
  20. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Yes, with a small remark: HDRP is still under development and will be released after the product launch. This is a first of earliest features we got on our roadmap. According to prototype results, HDRP will add ability to write your own Unity Shaders, which means your artists will get almost limitless possibilities in hair shading.
     
  21. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    Does that mean the hair portion will be implemented as a Shadergraph Node?
     
  22. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    We will make sure HDRP matches shading accuracy to built in DLL shaders. It should give a set of ".hlsl" and ".shader" files with a next release. And after that we will look into Shadergraph Node.
     
    ceebeee likes this.
  23. The-Creature-Queen

    The-Creature-Queen

    Joined:
    Jan 19, 2017
    Posts:
    24
    Man I've been waiting a long time for this to come out. How does Malbers already have a working copy? I've been trying to implement the old Nvidia hairworks integration (not your tool, the updated Japanese version) but sometimes hair just vanishes. It will work and then break and it's driving me nuts.
     
  24. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    I looked at Malbers' models, none of them seem to have GPU hair.
     
  25. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    Sounds very promising Simod. Is there a timeframe on when you might be able to release this to the Unity asset store?

    For example, "we're aiming for sometime in June or July 2019" -- something like that? I know how programming goes, it's not done until it's done. But really looking forward to this. :)

    Now that I think about it, this might be pushing it too far, but are "lod's" going to be a thing? I guess the better question would be, will there be options to get better performance. Ideally I'd like to have at least 2 or 3 Hairworks instances on-screen at one time, with manageable framerates...…

    That being said, I'd be happy with just 1 working. I had ProtonFactor's hairworks port working a few Unity versions ago, but now I can't get it to work. So an integrated Unity tool on the asset store would be a HUGE help, and hairworks is amazing.
     
  26. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Hi Velo. Unfortunately NVIDIA confirmed that distributing Hairworks binaries in the Unity Store is strictly prohibited. This is the reason why we developed a special tool (to build a Unity Packages), and the infrastructure (to support functionality similar to Unity Store). It's quite lot of work, I know. But it should allow to mass adopt that complex technology if we make it as simple to developers as it can be.

    As of writing we got a version with all declared features tested and ready for production. Documentation and tutorials are still missing. According to our short term schedule we are a bit ahead of the release date.

    Oh yes - Hairworks has LODs! It is easy to setup and test directly in the Unity Editor. Please take a look here.
    There are a few tricks and "rules" to get a better performance:
    • In general less hair strands it draws the better performance it gets, which is logical :D
    • Lower Volume Density (in material options) will give a better performance at expense of the look
    • The Low Volume Density can be compensated with Strand Width (in material options) and make the hair look better at medium distances
    • It is highly recommended replace short hairs (beard, mustache, eyebrows, short hairstyles, etc.) with old school hair draw techniques
    • As an alternative for short hairs you may disable Physical Simulation and win some extra GPU resources. But it's not as effective as turning it completely off
    • Another alternative is to combine both worlds (Hairworks and old school) on the same model
    • According to our research Hair Waviness (in material options) may have some impact on performance. Keep an eye on it
    • Be careful with point light shadows. It adds extra 8 passes per point light
    • Spot light shadows adds 1 extra pass
    • It is limited to 8 lights maximum, but will render hairs in 1 pass
    • It is highly recommended to use Light Probes (as an alternative to Lights) - it won't add extra pass
    Three instances is a piece of cake, but depends on the instances complexity and the scene itself. If you let us know more details we could give a better suggestions what is best in the particular case.

    We also followed ProtonFactor's work. The problem is: the given technology integration is overly complicated due to the blackboxed nature of the Unity 3D and Hairworks. Hairworks is better on this arena at it has sources disclosed, it really helps to avoid lot's of mistakes. But most of the time we work blindly with a trial and errors.
    We had a talk with Unity Team some time ago and they agreed to disclose some parts of code related to Directional Light shadows. We did not find unfortunately information we need, but we got a huge details on a moments (performance related) we never would know if working without a sources.
    HDRP seems a huge step with a bright light at the end of the tunnel. Lot's of internal code is disclosed now, and we can give a better solution on integration. It will be more robust and performant, with better options, and will require less effort to manage the code. This though is in upcoming releases.
     
  27. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    I think Malbers likely used something different. They are definitely need that, so it's not surprising if they are working in this direction. Or you probably confused with this :)
     
  28. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    Thank you for the reply. So let me try to get this straight. We download Nvidia Hairworks from Nvidia site. Then we buy your unity port/package directly from you (your website)? I just want to check.

    Do we still need to author the hair guides in an external modeling program like 3DS Max or Maya? Or can it be done with your tool in Unity?

    Thanks for the information :)
     
  29. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Yes, to create a hair asset you will need 3DS Max or Maya. The process is very straight forward, but may require some effort if you are new to these tools. Once it's done you may "fine tune" hair asset in FurViewer (recommended) or directly in Unity.

    Build process looks a bit different:
    1. You will need to download and start a Builder Tool.
    2. Provide your license key
    3. Select version of the Plugin
    4. ===== It will show Hairworks Version it needs to continue. You should register/login to NVIDIA Github and download that version and give it to the Builder Tool
    5. Define .unitypackage location
    6. Hit "BUILD" button

    7. Once it's finished you may import .unitypackage into Unity project
    PS. I will make video example today/tomorrow, and show the steps in details.
     
    Last edited: Apr 18, 2019
  30. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    @velo222 Done. I think this video will be more descriptive.;)

     
    Velo222 and r3ndesigner like this.
  31. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    I notice in the video you use Hairworks 1.3.1 Is there any plans to support 1.4? The Morph Target support is something i'm interested in.
     
  32. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    @ceebeee Hairworks 1.4 support for sure. Though at that moment better not give ETA as we did not yet look into technical implementation of the morphs. I will have a quick look into morphs next week, and report results here.
     
    ceebeee likes this.
  33. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437

    Cool, thanks! Looking forward to it. :)
     
  34. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    @ceebeee I had a quick look on Unity Blend Shapes and Hairworks updateMorphDeltas. updateMorphDeltas accepts ID3D11ShaderResourceView in form of StructuredBuffer<float3> with a list of deltas of positions and normals. It gives a reasonable flexibility from Hairworks which is good.

    Bad news: Unity Mesh does not provide ComputeBuffer or ID3D11ShaderResourceView with these details. We should implement that with a full copy of Blend Shapes in RAM or GPU memory.

    Good news: this copy won't affect rendering performance, unless adding or removing Blend Shapes very often, which is unlikely scenario.

    In conclusion: overall implementation should be straight forward. Will keep you updated
     
    Last edited: Apr 20, 2019
    ceebeee likes this.
  35. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    Sounds good. I know in 2018.3 Unity added GPU based Blendshape processing (Enabled by turning on 'GPU Skinning' in project settings), the blendhshapes run this small compute shader to process each blend shape. Maybe it could give you some clues on how to access the data from a compute shader?

    Code (CSharp):
    1. // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
    2.  
    3. #pragma kernel main
    4. #pragma kernel main SKIN_NORM
    5. #pragma kernel main SKIN_NORM SKIN_TANG
    6.  
    7. #include "HLSLSupport.cginc"
    8. #include "Internal-Skinning-Util.cginc"
    9.  
    10. struct BlendShapeVertex
    11. {
    12.     int index;
    13.     float3 pos;
    14.     float3 norm;
    15.     float3 tang;
    16. };
    17.  
    18. uint g_FirstVert; // First vertex from blend shape buffer to use
    19. uint g_VertCount; // Sparse vertex count, not the full amount of vertices in mesh
    20. float g_Weight;
    21.  
    22. [numthreads(64, 1, 1)]
    23. void main(uint3 threadID : SV_DispatchThreadID, SAMPLER_UNIFORM RWStructuredBuffer<MeshVertex> inOutMeshVertices, SAMPLER_UNIFORM StructuredBuffer<BlendShapeVertex> inBlendShapeVertices)
    24. {
    25.     const uint t = threadID.x;
    26.  
    27.     if (t >= g_VertCount)
    28.     {
    29.         return;
    30.     }
    31.  
    32.     BlendShapeVertex blendShapeVert = inBlendShapeVertices[t + g_FirstVert];
    33.  
    34.     const uint vertIndex = blendShapeVert.index;
    35.  
    36.     inOutMeshVertices[vertIndex].pos += blendShapeVert.pos * g_Weight;
    37. #if SKIN_NORM
    38.     inOutMeshVertices[vertIndex].norm += blendShapeVert.norm * g_Weight;
    39. #endif
    40. #if SKIN_TANG
    41.     inOutMeshVertices[vertIndex].tang.xyz += blendShapeVert.tang * g_Weight;
    42. #endif
    43. }
    this and the rest (cginc files ) can be found in the builtin shader package.
     
  36. IxDera

    IxDera

    Joined:
    Apr 17, 2019
    Posts:
    1
    @Simod , where to buy? i need it badly:)
     
  37. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Hi IxDera, nice to meet you. It's very soon.:) Launch is at 25-27 August.

    Thank you, ceebeee! Won't give the access, but can be reused to calculate the data! This is something until we get a proper API in Unity.
     
    ceebeee likes this.
  38. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Hello guys,

    The site is now officially live. We are still working on video tutorials, but basics are there. For further assistance we would recommend to use a GitHub, where you can create a ticket or informed about other issues or upcoming improvements.
    We will keep talking here and would gladly hear your requests and questions.

    Before you start, it is recommended to carefully read GameWorks Binary SDK EULA. You should join NVIDIA's Developer Program and get access to GameWorks private repository on GitHub.

    Please accept our advanced apologies for possible issues we missed. If such event occurs please let us know at GitHub. Out assist members will reply you as soon as possible.

    I hope Hair Composer will be a valuable asset for you and your project ;)
     
    Velo222 and r3ndesigner like this.
  39. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    Great news! I read through the requirements, but it doesn't specify what version of Unity is supported. What is the minimum version of Unity required?
     
  40. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Oh missed that, thank you for letting know. A quick answer: currently it requires 2018.3.11f1, 2018.3.12f1 and works with HairWorks 1.3.1.

    As a rule a new plugin version will support only a latest Unity release. T.e. next version will only support Unity 2019.1.0f2. It's important to keep this in mind, and we will put that information on site for sure. Thank you again.
     
    ceebeee likes this.
  41. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437

    Nice :) Does this mean we can purchase and start using today?
     
  42. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Yes, now everyone can use it ;)
     
  43. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    BlendShapes.png

    Work on blend shapes has started. 1.4beta seems stable so far, will see how it will behave during developing time.
     
    ceebeee likes this.
  44. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    The Model preparation is a bit tricky - mesh optimization in Unity will likely mess with model indices, and get out of sync with the Hair Asset growth mesh indices. Also HairWorks does not rotate shading normals, this may lead to visual artifacts. Not sure if UE4 HairWorks behaves same way, will check that later.

     
    Last edited: May 10, 2019
    ceebeee likes this.
  45. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    Yes, it's funny you bring up about mesh optimization and vertex order, another asset is having a problem with that and Unity 2019.



    It seems from the 2019 release notes that they changed the optimization system and now it's different from previous versions. So something to be aware of down the road.
     
  46. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Aha! I actually tested this in 2018 with optimization option enabled. Seems like 2019 got more mesh controls. Will check that today. :)
    The good thing we can easily reconstruct Growth Mesh on a fly. If Unity Mesh API provides some mapping data between original and optimized versions, this could be used for re-generation.
     
  47. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    Yes, unfortunately I haven't been able to find anything in the API to provide that type of information.
     
    Last edited: May 10, 2019
    Simod likes this.
  48. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Okay I got final news. Morphs implementation is finished and ready (with some circumstances) for production. It will be published with a next release.

    Hairworks morphs has a few bugs:
    1. Shading normals are not following the morphs changes. The issue has confirmed in UE4 implementation. I believe this also applies to skinning, but artifacts are not as much visible as with morphs. It still usable though, as long as Blend Shapes does not affect normals a lot.

    2. Morphs feature does not tolerate pre-processed (removed vertices, merged faces, LOD, etc) Growth Mesh. This is a bug and will likely be fixed by HairWorks developers. For now Growth Mesh should match to original Mesh.
    Below is my attempt to reuse Blend Shapes of the Malbers model. It failed of course, but the final result was too good to hide. Enjoy! :)

     
    ceebeee likes this.
  49. akuei2

    akuei2

    Joined:
    Oct 17, 2018
    Posts:
    69
    Hi, ask you one math question.

    Let said, I purchase personal license at 2019-Aug, between 2019-Aug to 2020-Aug.
    I get update and access full function. After that, when 2019-Sep is coming, I discount by update but still can access full function with old version. Right?

    Or, I need pay more another 50% for original price to active my license?
    ( Sorry, I'm someone who dislike changing my system frequently )
     
  50. Simod

    Simod

    Joined:
    Jan 29, 2014
    Posts:
    176
    Hello akuei2,

    Thank you for your question. The main point, this is a perpetual license. Once purchased you may use it forever.
    In addition it gives a right to download a latest updates which were (or will be) published in between 2019-Aug to 2020-Aug. And of course, you will hold this right after the license expiration.

    For example:
    2019.07.16 - Release #1
    2019.08.13 - Release #2
    2019.08.17 - License start period
    2019.09.07 - Release #3
    ...
    2020.07.12 - Release #24
    2020.08.07 - Release #25
    2020.08.17 - License end period
    2020.08.27 - Release #26

    In that case you will get access to #2, #3, ..., #24, #25 forever, no matter license has expired or not ;)

    In a rare case if you really need updates after that period, you may extend the license at discount.

    As you mentioned this I find important to quote long term support from above.

    Just in case, as this may give obstacles for your project development.
     
    akuei2 likes this.