FREE Performance Optimization / Draw Call Reducer (HLOD) | Unity Tutorial

Поділитися
Вставка
  • Опубліковано 24 лис 2024

КОМЕНТАРІ • 78

  • @gamemaker_01
    @gamemaker_01 Рік тому +4

    Thank you for taking the time and going farther than what is documented.

  • @MatrixRex05
    @MatrixRex05 Рік тому +8

    This is a hidden gem. Thanks for covering. Unity has some hidden gems like these. Could you also cover Unity toon shading too? I think most people doesn't even know about it.

    • @LlamAcademy
      @LlamAcademy  Рік тому +2

      That is a cool idea. I will add it to the list of potential topics. Thank you!

  • @andrewallbright
    @andrewallbright Рік тому +6

    Performance topics are fun topics to consume content on. I enjoyed the intro especially the before and after observations of performance metrics. Getting those numbers in range is what performance tuning is all about.
    It would be tight to see a performance test using Unity's Performance Testing API. I've read the docs but have been busy with learning/implementing cloud based multiplayer stuff. My thinking for performance testing is that they're just asserting that the viewing a prefab or scene matches some anticipated number (aka the test expectation). Soon I'll write my first scene/prefab test that ensures they meet some performance expectation I've yet to define.
    ... At that point you can let the artists run wild (who may be oneself if working solo) -- just tell them to expect a conversation if they break the performance tests.
    I repeat: performance topics are fun topics to consume content on. Thanks for creating this vid! You do amazing work putting your content together. Cheers :D

  • @NorthstriderGaming
    @NorthstriderGaming 8 місяців тому +1

    Thank you for this detailed guide. This is making generating and using LoD so much more pleasant to use. Though I'm still hoping for a nanite-like solution eventually.

  • @TheBlopster
    @TheBlopster Рік тому +1

    Thank you for help making my gamedev dreams become reality! Love your new hair color btw

    • @LlamAcademy
      @LlamAcademy  Рік тому

      😎 thanks! Happy to help the gamedev dream!

  • @fmproductions913
    @fmproductions913 Рік тому +1

    Thanks, I was looking forward to this topic. What a great tool!

  • @Caffeen
    @Caffeen Рік тому +1

    Nice, hadn't seen this one yet

  • @beardordie5308
    @beardordie5308 Рік тому +8

    Yeah I want a Unity version of nanite. And lumen for that matter. Need to compete on those, Unity is a hard sell right now for high fidelity high poly projects.

    • @LlamAcademy
      @LlamAcademy  Рік тому +5

      Hopefully we will see Unity pump out some cool competing technology! Unreal showed some really disruptive tech. Usually that means everyone else takes note and comes up with a competitor.

    • @verendale1789
      @verendale1789 11 годин тому +1

      Lumen is kind of a scam, I prefer Adaptive Probe Volumes, there is a baking step but same effect but actually usable on consumer hardware (and doesn't look noisy and shimmery without TAA smear). Nanite though is quite nice.

  • @ashb899
    @ashb899 Рік тому +1

    This is a good channel, shame youtube doesn't suggest you more often.

  • @saqibbro5297
    @saqibbro5297 Рік тому +2

    Great Video Buddy!

  • @abdulwahab-wg2ok
    @abdulwahab-wg2ok Рік тому +1

    really loving your content

  • @Rahulsingh-theraha
    @Rahulsingh-theraha Рік тому +1

    Btw i guess u should make a optimisation playlist, u already have many videos on it!I didn’t even knew that u had optimisation techniques tut for mobile

  • @splashmaker2
    @splashmaker2 Рік тому +1

    This looks like it could be useful. It does mention generating texture atlases, but I wonder if you’d be better off with texture arrays instead to avoid uv issues. I also think hlod can benefit a lot from hand created lods when you get really far away (think a huge box mesh or flat imposter billboard), or some kind of generation of these.

  • @castlecodersltd
    @castlecodersltd Рік тому +1

    Nice one, thanks for sharing 👍🏻

  • @unityUser
    @unityUser Рік тому +1

    Could you make a setup tutorial on it, cause when I clone the files in my project I get errors in unity :(

  • @Project-NSX
    @Project-NSX Рік тому +1

    Wish I saw this video before hacking the LOD system by using a script to manually set lod groups on objects and making it grab all their renderers etc.
    This should 100% be a part of Unity IMO, the LOD system on its own feels a bit lacking.
    Thanks for the video!

    • @LlamAcademy
      @LlamAcademy  Рік тому

      Definitely would love to see this implemented as a full 1.0 release package!

  • @anussqadeer3181
    @anussqadeer3181 8 місяців тому

    Nice tutorial
    Will this increase size of my android unity game?

  • @mehmedcavas3069
    @mehmedcavas3069 Рік тому +1

    why did i discover your channel so late :(

  • @duchiepcao5237
    @duchiepcao5237 4 місяці тому

    can I pre-bake mesh or mesh group then do HLOD?

  • @StarkTech47
    @StarkTech47 Рік тому

    Very good video! I have a question about moving part of the scene. How does it work for the doors for exemple of any object with animations? Are they ignore by the script, do I have not to implement these objects in the HLOD or it works perfectly and I do not need to take care?

    • @LlamAcademy
      @LlamAcademy  Рік тому

      Doors can be rendered including animators / animations at LOD0 without issue. The issue you may have is at LOD1+ they will be in their default (probably closed) state. So transitioning from LOD0 to 1 May cause a noticeable jump. You can exclude doors from the HLOD system to avoid this, or this behavior may be fine for you.

    • @StarkTech47
      @StarkTech47 Рік тому

      @@LlamAcademy That was I had in mind, excludes every object which will move of the HLOD and it seems to be a good solution. Thank you !

  • @MichaelWatsonProgrammer
    @MichaelWatsonProgrammer Рік тому

    Looks like just what I need, will this work with the LOD system from your other video as I've already set that up and don't want them to conflict?

    • @LlamAcademy
      @LlamAcademy  Рік тому

      it will work with the AutoLOD, but this also under the hood uses AutoLOD to generate the LODs. Generally I would expect you might use AutoLOD for character or dynamic models, and use this for world geometry.

  • @Chewy1914
    @Chewy1914 6 місяців тому

    Has this HLOD code been tested on 2022.3 LTS URP ?
    By the way, thank you for all your tutorial videos @LlamAcademy! 💪

    • @LlamAcademy
      @LlamAcademy  6 місяців тому

      I haven't used it on 2022.3 but I don't think there are any breaking changes between 2021 (what I used in this video) and 2022 that would make this stop working.

  • @mrestonian6905
    @mrestonian6905 Рік тому

    I don't understand how to install it 😢 I drag and drop it into my project and then I can't use hlod script and it says meshoptimizer is missing. I install meshoptimizer and it still says the same. Idk if it's cause mesh optimizer is not inside the hlod folder or what (also I can't put it inside the hlod folder, it doesn't allow me to do that) pls help me, I have a HUGE openworld game and my optimization sucks😢

  • @alicivrilify
    @alicivrilify Рік тому

    Thanks for this great video. A quick question: Can I use this HLOD on prefabs? Because, the environment in my game is set at runtime. I don't have a fixed scene. And one more: Does AutoLOD would be enough in that case?

    • @LlamAcademy
      @LlamAcademy  Рік тому

      I do not believe you can, but I have not played with that use case

    • @yovador
      @yovador Рік тому

      For your environment, to have them load at runtime I would advice you to load a scene instead of a prefab. That way you can set the enviro to static and use all LOD and baking that you want

  • @jirisuke2
    @jirisuke2 10 місяців тому

    Batchesがまだ1000以上もある。mashbakerが必要?

  • @nikjanspruk588
    @nikjanspruk588 10 місяців тому

    I am a bit confused after watching this video.
    Do I use HLOD or Automatic LOD package for my game?
    Or do I use a mix a both, and if so. For what would each package be good for? Thanks
    Edit: also do you maybe have an idea what to do if i want to use hlod, but my materilas are urp... it just doenst work

    • @LlamAcademy
      @LlamAcademy  10 місяців тому

      HLOD uses auto LOD under the hood. This video was about HLOD specifically, so I recommend it for these types of use cases.
      I don’t have this project set up anymore but I’m pretty sure it was done with URP. What is not working?

    • @nikjanspruk588
      @nikjanspruk588 10 місяців тому

      before i implemented it on my whole project i made a sample scene and added 5 cubes to it. addet them under same parent and added hlod.
      all objects are pink, and when moving the camera non of the meshes show.. all are hidden all of the time.
      I also get one error but im not at the pc anymore. will reproduce the error tomorrow.@@LlamAcademy

  • @netron66
    @netron66 Рік тому

    Should the lod in the future based on the screen resolutions so there will not be no popping in? Unreal 5 seems doing a similar thing which has good results

    • @LlamAcademy
      @LlamAcademy  Рік тому

      The LOD slider we configure here swaps based on projected AABB size. The "popping" can be mitigated by lerping between the two models of different LODs and having less variation between stages

  • @ivankubal6935
    @ivankubal6935 Рік тому

    Hello, coming bit late to this, but I would like to ask - Does HLOD works also for GPU Instanced assets? Lets say, I have big forest. All the trees are Unity trees, so GPU Instanced (GPU Instancer plugin for that matter). Can I take advantage of HLODs to chunk further parts of the Forest into HLOD grids or is better to have it all just instanced?

    • @LlamAcademy
      @LlamAcademy  Рік тому +1

      HLOD would help you by reducing the number of triangles drawn, since GPU instancing is drawing the same mesh multiple times. I didn't try this with trees to do a comparison, but I would imagine this could improve performance on top of the GPU Instancing of individual trees or LODGrouped trees to billboards.

    • @ivankubal6935
      @ivankubal6935 Рік тому

      @@LlamAcademy thank you, I will give it a try bit later

  • @onewayroad3765
    @onewayroad3765 Рік тому

    Is LOD system work in multiplayer game.
    If my game has 10 players, then in the game there should be atleast 10 cameras.

    • @LlamAcademy
      @LlamAcademy  Рік тому

      In a multiplayer scenario each client will likely only have 1 camera active at a time, so there would not be an issue

  • @Hazzel31337
    @Hazzel31337 Рік тому

    sounds interessting HLOD + adressables sounds like nanite ? maybe ?

    • @awesomeniac
      @awesomeniac Рік тому +4

      it's not actually, if we talking about UE, they already have HLOD before Nanite and it's totally different system, technically HLOD is some kind of custom static batching.

    • @Hazzel31337
      @Hazzel31337 Рік тому

      @@awesomeniac oh yeah the technicall details of that a way beyond my knowledge

    • @LlamAcademy
      @LlamAcademy  Рік тому

      Great answer 🙂!
      To elaborate a little - Nanite is a much more sophisticated runtime triangle/vert optimization that allows artists to not have to use LODs like this.
      HLOD is generating many new models based on your current scene configuration and has to be recomputed if you change anything.
      Nanite does not require additional model generation or recomputing like this.

    • @Hazzel31337
      @Hazzel31337 Рік тому

      @@LlamAcademy aaah thank you for further explaining it, yes thats on another level ^^

  • @niuage
    @niuage 9 місяців тому +1

    Your intro is so cheesy but your content is tasty 😅

    • @LlamAcademy
      @LlamAcademy  9 місяців тому +1

      I do find cheese quite tasty 😁

  • @Rishraff
    @Rishraff 11 місяців тому

    How can I install this? I'm having trouble

    • @LlamAcademy
      @LlamAcademy  11 місяців тому

      Unity's GitHub page has installation instructions here: github.com/Unity-Technologies/HLODSystem/

    • @pklpklpkl
      @pklpklpkl 7 місяців тому

      @@LlamAcademy It REALLY does not help someone that doesn't know Git

    • @LlamAcademy
      @LlamAcademy  7 місяців тому

      I think you just need to install git and run the two commands they have listed. Do you have trouble with those two commands?

  • @lucutes2936
    @lucutes2936 6 місяців тому

    doesn't work on 2022 i think

  • @unityUser
    @unityUser Рік тому

    Does this work with foliage like trees and grass?

    • @LlamAcademy
      @LlamAcademy  Рік тому

      Yes, it supports Terrain. I am not 100% sure on terrain grass, but trees are.

    • @unityUser
      @unityUser Рік тому

      ​@@LlamAcademy thanks :D

    • @unityUser
      @unityUser Рік тому

      @@LlamAcademy bro i tried to clone from the github repository, but i get 5 errors when import the files to my project in unity

    • @LlamAcademy
      @LlamAcademy  Рік тому

      What are the errors?

    • @unityUser
      @unityUser Рік тому

      @@LlamAcademy some namespace errors

  • @adrianmaj8656
    @adrianmaj8656 Рік тому

    Does it paid or private use?🤔

  • @81mg61
    @81mg61 Рік тому +1

    not working.

    • @81mg61
      @81mg61 Рік тому +2

      Doesn't work if resource textures are compressed.

  • @illiavarenyk2973
    @illiavarenyk2973 Рік тому

    Завжди дивувавсь навіщо людям блакитне волосся 🤔

    • @LlamAcademy
      @LlamAcademy  Рік тому

      I don't know, I like it blue, red, sometimes even just blonde, so I get it 🙂

  • @deadevil_fst
    @deadevil_fst 7 місяців тому

    The warzone mobile will run on mobile like nothing if the game engine is unity 😞

  • @syarfandiachmad2397
    @syarfandiachmad2397 Рік тому

    I got this error :
    HLODSystem\com.unity.hlod\Runtime\HLODManager.cs(83,24): error CS0120: An object reference is required for the non-static field, method, or property 'HLODCameraRecognizer.RecognizedCamera
    I already add HLODCameraRecognizer script to my MainCamera, but still :(