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
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.
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.
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.
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.
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
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.
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!
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.
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😢
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.
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?
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.
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
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
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?
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
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
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?
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
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?
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.
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.
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.
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 :(
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
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.
That is a cool idea. I will add it to the list of potential topics. Thank you!
Thank you for taking the time and going farther than what is documented.
My pleasure!
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.
Thank you for help making my gamedev dreams become reality! Love your new hair color btw
😎 thanks! Happy to help the gamedev dream!
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.
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.
Thanks, I was looking forward to this topic. What a great tool!
This is a good channel, shame youtube doesn't suggest you more often.
❤️ thank you!
Great Video Buddy!
really loving your content
Nice, hadn't seen this one yet
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
Great idea. Thank you!
Nice one, thanks for sharing 👍🏻
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.
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!
Definitely would love to see this implemented as a full 1.0 release package!
Could you make a setup tutorial on it, cause when I clone the files in my project I get errors in unity :(
can I pre-bake mesh or mesh group then do HLOD?
why did i discover your channel so late :(
Nice tutorial
Will this increase size of my android unity game?
Has this HLOD code been tested on 2022.3 LTS URP ?
By the way, thank you for all your tutorial videos @LlamAcademy! 💪
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.
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😢
Batchesがまだ1000以上もある。mashbakerが必要?
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?
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.
Your intro is so cheesy but your content is tasty 😅
I do find cheese quite tasty 😁
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?
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.
@@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 !
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
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
doesn't work on 2022 i think
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?
I do not believe you can, but I have not played with that use case
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
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
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?
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
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?
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.
@@LlamAcademy thank you, I will give it a try bit later
Is LOD system work in multiplayer game.
If my game has 10 players, then in the game there should be atleast 10 cameras.
In a multiplayer scenario each client will likely only have 1 camera active at a time, so there would not be an issue
How can I install this? I'm having trouble
Unity's GitHub page has installation instructions here: github.com/Unity-Technologies/HLODSystem/
@@LlamAcademy It REALLY does not help someone that doesn't know Git
I think you just need to install git and run the two commands they have listed. Do you have trouble with those two commands?
sounds interessting HLOD + adressables sounds like nanite ? maybe ?
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.
@@awesomeniac oh yeah the technicall details of that a way beyond my knowledge
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.
@@LlamAcademy aaah thank you for further explaining it, yes thats on another level ^^
Does this work with foliage like trees and grass?
Yes, it supports Terrain. I am not 100% sure on terrain grass, but trees are.
@@LlamAcademy thanks :D
@@LlamAcademy bro i tried to clone from the github repository, but i get 5 errors when import the files to my project in unity
What are the errors?
@@LlamAcademy some namespace errors
not working.
Doesn't work if resource textures are compressed.
Does it paid or private use?🤔
The warzone mobile will run on mobile like nothing if the game engine is unity 😞
Завжди дивувавсь навіщо людям блакитне волосся 🤔
I don't know, I like it blue, red, sometimes even just blonde, so I get it 🙂
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 :(