If you have a texture assigned, for example when working with a low poly car, you might want to select the "planar" option in the decimate modifier and select "UV" there. This way, the UVs of your mesh will be preserved.
Also keep in mind LOD's can add a certain amount of overhead because of lod checks and swapping. Also It wont save your scene if you have thousands of gameobjects visible at one time. In that sort of situation, mesh combining will prove to be much more effective at increasing performance (reducing drawcalls) than LOD alone.
Tip from dev here, use LOD only if you need it, check your game polygon budget before optimization. I had one game that used LOD on all assets and mesh, the game was running slowly not because of polygons but fot the heavy use of LOD. deleting all the lod system improved the perfomance in more than 30%. So again, before optimize check where the problem really is.
"premature optimization is the root of all evil" - donald knuth. Yes, Unity still needs to calculate all the distances + you have more different meshes in the scene, like when the same prefab is visible close and in the distance at the same time. Bonus tip: Open "Occlusion" and bake it. If you have a lot of static objects it will also reduce the visible geometry (triangle count) a lot. LOD is fine tuning for complex scenes.
@@dertobbe1176 It could be that, but it could actually also be also be related to crossfading. It displays 2 things at once and does calculation on top. This needs benchmarking in real world scenarios. If the flat overhead of determining the distance, etc. is main problem, then we should group more things together into 1 LOD. Like patches of vegetation for example. Or also just use less LODs for small things and focus on LODs on larger objects in general. If the Crossfading is a larger problem, we need fewer highly detailed LODs and/or shorter crossfades. Note that crossfading is probably more of an issue for scenarios that already had GPU bottlenecks to begin with.
There's one really important note about LOD groups in Unity that haven't been covered in this Tutorial: *Each LOD group are handled individually, but as whole.* This might sounds like it doesn't makes any senses, but I'll explain what this is about. Each LOD group allows you (devs) to add multiple mesh. Note that I wrote "mesh" and not "Prefabs". LOD groups only takes mesh either from the current scene (or from the asset folder, but it requires some additional works). This obviously allow you to setup models even if they are cuts into parts such as buildings, vehicles or characters. If you setup the LOD group with things that are quite far apart, that's where things can break really easily as the LOD group determines the camera (renderer) distance based on the closest asset from the list of each LOD layer that is active. If a LOD group has 2 targeted mesh that are 500m from each other if one is close enough to the camera, the other one, even if as small as a few pixel, will be detected and displayed as the same LOD layer as the one closest to the camera. What this means is that to make the LOD groups works properly, you MUST cut down your scene into small sections and setup separate LOD groups for each of those section individually. For example, if you got a city as the environment, you might have to setup each building with their own LOD group and, if one building is really tall (like a skyscraper) even have to cut that one into parts with, each, their own LOD group. This means that you can't just but your whole scene within a single LOD group because it will always stay at LOD0. This can be quite a problem with huge assets like mesh-based terrains or big building. This is what I mean by the LOD group being handled as whole as the determined LOD layer displayed is based on the closest asset, in the LOD group list, to the camera and automatically determines what LOD layer is active for the other regardless of their own distance with the camera. As no tutorial really cover this kind of things (which is absolutely necessary to take into account), I did some tests to see how the LOD group were handing things like multiple mesh far apart from each other.
@@pathak03 The ultimate solution is actually quite simple on paper: Build your own LOD system with a different kind of distance & asset management. I build 2 systems myself and here a short version of both of them: Simple 2 cameras setup for a 2-levels LOD. It's simpler to build and doesn't require major scripts or asset management, but have a slightly bigger impact on overall performance on the lightning & GPU/CPU instantiation process. One camera has a rendering max distance set to a value between 100 and 250 (based on an option set by the player) and the other camera has a minimum rendering distance of that exact same value. Each of the camera has a slightly different cullout layers value where LOD0 is on the closest rendered camera and LOD1 is one the farthest. You could add more camera and LOD level with min-max rendering distance in succession, but I found 2 to be perfect in that particular case. The main camera is the LOD0 camera while the LOD1 camera is a simple children of it. I make. The only thing scripted in is non-static complex assets (like particles effects) which moves between LOD0 and LOD1 layers based on their distance with the camera. This is the tricky part where, if you're using multiple layers, you got to double that layers count for LOD0 and LOD1 if they are to be rendered in either of the camera. (UI is only rendered on the closest camera though, so no problem in that regard). The physics are only managed by LOD0 because even if the assets are out of the LOD0 camera spectrum, it's only their renderer that is turned off and not their physics. LOD1 only has renderer and no physics. The lighting is another thing where you got to double the lights with their respective LOD0 and LOD1 in their culling. The other method I used is a grid-based system. I cut the world in a 100x100 square meters system and I set the 8 surrounding layers of the one the player is within as LOD0 and the 22 layers around as LOD1 and the others layers as disabled as LOD2 which is extremely limited in triangles. (only main structures, ground and simplified elements for stuff like trees and such). It's possible to setup a linear level design with this approach by cutting the level in parts and setting up the previous and next parts around the players with their appropriate LOD. The harder part of this is that you need to separate the physics from the LOD because you can't just "disable" both the LOD and their collider in case the physic handle itself within the time it takes to activate the other LOD with its own physics colliders. This would results with quite an insane amount of physic glitches if objects where to suddenly enter the floor just slightly and then have the physic activated again. (A real ragdoll-like nightmare would happen if you use rigidbody with gravity) So you have a LOD system for the renderer and a separate 2 layer LOP (Level of Physics) which handle the colliders when you need them or not. (That is if you want to optimize the physics to what's truly necessary.)
@@creationsmaxo god damn, thank you so much! im interning at a GIS based company and this is my first time using Blender and Unity, so all this is very confusing but i really appreciate the quick and detailed response!
I like how the tutorial was quick and straight to the point. So many other tutorials are extremely long winded and have a bunch of filler that make their videos feel bloated. Thanks for the good work.
You are literally the best UA-camr on the Topic of Unity for me. I especially like your coding videos. They are really clear and concise and reallife oriented.
This is great. A video idea for you would be to do a fast-paced *"Top Tips for Better Performance"* in a similar way as you've done previous "Top 10 Unity Tips" videos. Suggestions for inclusion: LODs, some quick explanation of when the GPU Instancing checkbox could help performance, being selective about casting/receiving Shadows, Culling and/or Culling Groups, the obvious avoidance of using GetComponent in Update (*which includes Camera.main*!), Object Pooling which you already have a video on, and the simplest way of setting up a performance test using Unity's profiler to compare frames-per-second results. I'm sure you can think of many other tips that have become a habit for you that affect performance. A fast-paced video with links to other more detailed videos or documentation would be super helpful to a lot of people.
You'll need a mesh simplifier there is one on the asset store this code uses however you can make your own relatively easily, there are many algorithms that you can base off of
Any ideas on how much performance you can pull out of a scene from using the low poly versions at LOD2+? Is there any noticeable jank or shift that you can see when moving around? I've played games before where it's really obvious that you're seeing a lower quality model as you soom in and out (e.g zooming into a series of trees and you can see the quality pop-in. Be keen to see how this might work in unity.
You can check out and tinkering this: assetstore.unity.com/packages/essentials/tutorial-projects/book-of-the-dead-environment-121175 IMO optimization work really damn impressive. Keep in mind to check fps after build as well.
I don't remember how, but I ran into the LOD system by mistake one time and couldn't make heads or tails of it. This really helped me out, and since I'm generating my own assets as well gave me some help there as well. Thank you so much.
You are seriously underrated! You are amazing! I've watched so many of your videos and they have helped me in some way, I just wanted to say thank you!
Thank you so much for explaining the LOD concept so beautifully, Please keep up with the great work you are doing. Watching you're videos gives me so much inspiration to explore new stuff. :)
Awesome video. 2 VERY useful improvements... 1. Copy with ALT-D so each object is linked to the others. That way you can edit any LOD mesh later and the shape of all the others will update to match. 2. No need to apply the decimate modifier (makes it easier to change/adjust later) The above works with direct blender export to Unity. Not sure about FBX or other engines.
WOW! That was super useful information, can't wait to try it out in a project. keep up the good work! How did i missed this video? ill have go over your channel again to see what i missed. UA-cam's notification algorithm is so broken...
I knew LOD was easy to use but I had no idea making a low version was that easy in Blender! Though I bet once I try making a model and do it, it will fuck up and remove a polygon that ruins the entire shape or something
Well in theory it should work but I've never been able to make LOD work. It works properly in the editor when you move the editor camera around but has never worked for me when actually running a game. It always displays LOD0 regardless.
This goes for all your videos. I think you should leave the code and steps in the description because often when following along when you go to test out something won't work and you have to go back and watch the whole video again. I feel with being able to see the code all in one place speeds up this process and you understand the mistake a lot more. Thanks.
Here's an interesting question: I wonder if the LOD would change, not only depending on the distance between the camera and given object, but also on the FOV of the camera? Say, I would be a sniper on a hill, looking upon the fight-scene from far away, only seeing low-LODs. Now I zoom in (i.e. simply changing the camera's FOV accordingly), bascially make every object take up more space on the screen, would I now see high-LODs? In other words: Is the LOD-Change *really* depending on the space a given object takes up on the screen? Thanks in advance!
The LOD to use is selected by its size on the screen, so if you are doing the scope by adjusting the FOV of the camera and adding a vignette, then it'll probably switch LOD. If your scope is a different camera rendering to a texture then I'm unsure what will happen, but you can manually force the LOD by calling LODGroup.ForceLOD(index)
I never thought I'd figure out how to actually subdivide things in blender from a Unity tutorial on performance optimization, I kinda expected me to figure it out from Blender tutorials on how to subdivide things.
Do you have a tutorial on making skyboxes like the one you have here? I'd love to learn more about that, because most of my current procedural skyboxes are trash.
I'm not sure what he has done here, but his empty scene looks more beautiful than anything I have ever made! My first thought when he went into Unity was damn, how does he do that so easily! +1 for simple background/empty scenes looking good from the start. (Although I think probably this scene involves only a little more than bloom + vignette in Post Processing.)
Perfect video! This made everything much clearer, thanks, also can you do this with maps, like if the ground terrain is too detailed for it to have low detail in far away places and gain them in closer places, i know its possible but is it like shader i must develop or something?
Not sure what you are chasing but he has a couple of videos of his favourite assets and other useful assets if you search his channel page. You could also type "brackeys assets" into UA-cam search and I get a heap hits. Here's one: ua-cam.com/video/lSkjEBg-leU/v-deo.html
Hey brackeys! Love these tutorials! Could you make one about how you make such nice looking scenes like the ones you use in the tutorials? I noticed they have such nice lighting and filtering effects
The vignette effect from the post processing stack is doing a lot of heavy lifting here. You should have a play around with the post processing stack. Brackeys has a tutorial on it from a while back. ua-cam.com/video/a0OQvWAPeuo/v-deo.html There's also one about getting good graphics that might have something. Like he uses Linear colour space instead of Unity's default gamma. ua-cam.com/video/owZneI02YOU/v-deo.html
Hello Brackeys! Thanks for all the great tutorials on Unity. There is a fairly new engine named Godot, which has grown a ton over the last few years. Sadly, not a lot of great tutorials are out yet, and I would hope, you might be able to do some simple tutorials on Godot. I hope I am not asking for too much. Thanks!
I don't know if that interests you, but maybe you could make a video or a series about the capabilities of Unity to make software other than just games. ex. An android app, a web app... I'd find it very informative. Btw Awesome video once again !
perhaps for your next or upcoming video, you should make a tutorial for a character customization screen! i really wanna know how to make one but i can’t seem to find a good video out there
Setting up a script using obj.transform.lookAt(player) that will make something always face the player is super easy. Lots of games do this for plant assets that are far away like grass tufts.
No mip mapping is something else, similar effect. it's for down scaling images at a distance or an angle. like a floor texture, no point in calling a 2k floor tile 50m away.
the only thing id worry about with this is what happens to the uv unwrap when the mesh is decimated ? but i love your stuff keep up the grate tutorials ! also can lod scale with texture sizes ?! like from 1k-256 ? that would be a neat part 2 ;)
I am not quite sure if this would help: I am using the texture atlas method for my simple objects. After the decimate modifier the uv map is at the same place as before, just with fewer edges and points. So i don't have to change or adjust my texture mapping. I think, if your texture map is not too complicated, it will work fine too...
After searching myself for some videos, i have seen there is a add on for blender named texture atlas. I don't use this add on, i do it like they do in this videos: ua-cam.com/video/bP_1XfpEy80/v-deo.html and ua-cam.com/video/DD84GSJiTVc/v-deo.html I didn't mention in my post, that i used it with single colors and not with complex textures. But as i said, the texture map won't change much after decimating. So i believe you can texture your object the way you want and it will still work.
blender doesnt effect the UVmapping when you decimate a mesh, it just decimates the UV map at the same time :) looks pretty much fine for most cases but in extreme situations (like decimating a character mesh to 5%) it can "shift" some textures around a little, but it will not create new seams or tears in the texture, so from a distance it will look fine
How does this affect UV's and texturing? Do you go through and UV + texture each separate LOD or do you only need one set of texture maps for each one? Great video btw, thanks for the info ^^
Late reply, but better late than never. From my experiments with Blender, using the Decimate modifier subtracts vertices, which kind of makes them merge with their closest neighbors, so in a way the UV wrapping of the model will continue to make the texture look seamless as long you have a recognizable 3D model. I haven't tried LODs with armatures, but after moving the skeleton from one layer to another in Blender, with both layers having the same model but with different LODs, the bone weights seem to be identical, for they copy the skeleton's pose, so in short, Decimate helps a lot in creating LODs for both static and dynamic objects.
The thumbnail is incorrect - the right percentage should be 10%, not 25%. As it is now it means 25% from the middle model, not the left (and I suppose the right one should be reduced from the left one, correct me if I'm wrong)
Amazing Video! Can I change/adjust the LOD-Graph, where it shows, at which percent it exchange the models? (To change objects at higher or lower percentage)
So two questions: 1.) Does this mean to have a different standard of quality you have to do this to all objects in the game? 2.) Should it work the same if the camera is following a character?
No idea it was THAT EASY!!! Thank you once again for saving me so much time Brackeys!!!
Same this is going to help me in vr so much
@@Rexmon 1 year later... have a beta?
@@suya1671 beta for what?
That would be a no, but I did recently get back into programming I made a discord bot for league of legends in houses
@Nagato is better than Punk Naruto you could if you want to but you don't need to
If you have a texture assigned, for example when working with a low poly car, you might want to select the "planar" option in the decimate modifier and select "UV" there.
This way, the UVs of your mesh will be preserved.
thanks for commenting this!!!
Omg I absolutely need this in my game, these past 4 videos you’ve made I’ve tried to implement them into my game, thank you so much for all the help
Also keep in mind LOD's can add a certain amount of overhead because of lod checks and swapping. Also It wont save your scene if you have thousands of gameobjects visible at one time. In that sort of situation, mesh combining will prove to be much more effective at increasing performance (reducing drawcalls) than LOD alone.
Tip from dev here, use LOD only if you need it, check your game polygon budget before optimization. I had one game that used LOD on all assets and mesh, the game was running slowly not because of polygons but fot the heavy use of LOD. deleting all the lod system improved the perfomance in more than 30%. So again, before optimize check where the problem really is.
"premature optimization is the root of all evil" - donald knuth. Yes, Unity still needs to calculate all the distances + you have more different meshes in the scene, like when the same prefab is visible close and in the distance at the same time.
Bonus tip: Open "Occlusion" and bake it. If you have a lot of static objects it will also reduce the visible geometry (triangle count) a lot. LOD is fine tuning for complex scenes.
Makes Sense since it need cumputing power to handle each distance and lod instances instead of handling polygons. Ty for the reminder
@@dertobbe1176 It could be that, but it could actually also be also be related to crossfading. It displays 2 things at once and does calculation on top.
This needs benchmarking in real world scenarios.
If the flat overhead of determining the distance, etc. is main problem, then we should group more things together into 1 LOD. Like patches of vegetation for example. Or also just use less LODs for small things and focus on LODs on larger objects in general.
If the Crossfading is a larger problem, we need fewer highly detailed LODs and/or shorter crossfades.
Note that crossfading is probably more of an issue for scenarios that already had GPU bottlenecks to begin with.
There's one really important note about LOD groups in Unity that haven't been covered in this Tutorial:
*Each LOD group are handled individually, but as whole.*
This might sounds like it doesn't makes any senses, but I'll explain what this is about.
Each LOD group allows you (devs) to add multiple mesh. Note that I wrote "mesh" and not "Prefabs". LOD groups only takes mesh either from the current scene (or from the asset folder, but it requires some additional works). This obviously allow you to setup models even if they are cuts into parts such as buildings, vehicles or characters.
If you setup the LOD group with things that are quite far apart, that's where things can break really easily as the LOD group determines the camera (renderer) distance based on the closest asset from the list of each LOD layer that is active. If a LOD group has 2 targeted mesh that are 500m from each other if one is close enough to the camera, the other one, even if as small as a few pixel, will be detected and displayed as the same LOD layer as the one closest to the camera.
What this means is that to make the LOD groups works properly, you MUST cut down your scene into small sections and setup separate LOD groups for each of those section individually. For example, if you got a city as the environment, you might have to setup each building with their own LOD group and, if one building is really tall (like a skyscraper) even have to cut that one into parts with, each, their own LOD group.
This means that you can't just but your whole scene within a single LOD group because it will always stay at LOD0. This can be quite a problem with huge assets like mesh-based terrains or big building.
This is what I mean by the LOD group being handled as whole as the determined LOD layer displayed is based on the closest asset, in the LOD group list, to the camera and automatically determines what LOD layer is active for the other regardless of their own distance with the camera.
As no tutorial really cover this kind of things (which is absolutely necessary to take into account), I did some tests to see how the LOD group were handing things like multiple mesh far apart from each other.
did you find a solution to this? i am stuck with the same problem right now!
@@pathak03 The ultimate solution is actually quite simple on paper: Build your own LOD system with a different kind of distance & asset management.
I build 2 systems myself and here a short version of both of them:
Simple 2 cameras setup for a 2-levels LOD. It's simpler to build and doesn't require major scripts or asset management, but have a slightly bigger impact on overall performance on the lightning & GPU/CPU instantiation process. One camera has a rendering max distance set to a value between 100 and 250 (based on an option set by the player) and the other camera has a minimum rendering distance of that exact same value. Each of the camera has a slightly different cullout layers value where LOD0 is on the closest rendered camera and LOD1 is one the farthest. You could add more camera and LOD level with min-max rendering distance in succession, but I found 2 to be perfect in that particular case. The main camera is the LOD0 camera while the LOD1 camera is a simple children of it. I make. The only thing scripted in is non-static complex assets (like particles effects) which moves between LOD0 and LOD1 layers based on their distance with the camera. This is the tricky part where, if you're using multiple layers, you got to double that layers count for LOD0 and LOD1 if they are to be rendered in either of the camera. (UI is only rendered on the closest camera though, so no problem in that regard). The physics are only managed by LOD0 because even if the assets are out of the LOD0 camera spectrum, it's only their renderer that is turned off and not their physics. LOD1 only has renderer and no physics. The lighting is another thing where you got to double the lights with their respective LOD0 and LOD1 in their culling.
The other method I used is a grid-based system. I cut the world in a 100x100 square meters system and I set the 8 surrounding layers of the one the player is within as LOD0 and the 22 layers around as LOD1 and the others layers as disabled as LOD2 which is extremely limited in triangles. (only main structures, ground and simplified elements for stuff like trees and such). It's possible to setup a linear level design with this approach by cutting the level in parts and setting up the previous and next parts around the players with their appropriate LOD. The harder part of this is that you need to separate the physics from the LOD because you can't just "disable" both the LOD and their collider in case the physic handle itself within the time it takes to activate the other LOD with its own physics colliders. This would results with quite an insane amount of physic glitches if objects where to suddenly enter the floor just slightly and then have the physic activated again. (A real ragdoll-like nightmare would happen if you use rigidbody with gravity) So you have a LOD system for the renderer and a separate 2 layer LOP (Level of Physics) which handle the colliders when you need them or not. (That is if you want to optimize the physics to what's truly necessary.)
@@creationsmaxo god damn, thank you so much! im interning at a GIS based company and this is my first time using Blender and Unity, so all this is very confusing but i really appreciate the quick and detailed response!
Thank you so much. This explained so many things I was getting puzzled over.
wow that was a really good video. I've been watching these for awhile and this one is my favorite
I like how the tutorial was quick and straight to the point. So many other tutorials are extremely long winded and have a bunch of filler that make their videos feel bloated. Thanks for the good work.
You are literally the best UA-camr on the Topic of Unity for me. I especially like your coding videos. They are really clear and concise and reallife oriented.
i miss you Brackeys
You always release a video solving my current problems, that's magic ! You'r the best !
LOD's are so useful and the fact that setting them up is this easy is a huge benefit to people working within performance limits. Go Unity
Woulda been cool to see a performance comparison but awesome video nonetheless ♥️
Not much in this case considering the reduction wasn't that much.
@@KevinSmith-qi5yn Cloning the object a couple of thousands of times would have done it
This is great. A video idea for you would be to do a fast-paced *"Top Tips for Better Performance"* in a similar way as you've done previous "Top 10 Unity Tips" videos. Suggestions for inclusion: LODs, some quick explanation of when the GPU Instancing checkbox could help performance, being selective about casting/receiving Shadows, Culling and/or Culling Groups, the obvious avoidance of using GetComponent in Update (*which includes Camera.main*!), Object Pooling which you already have a video on, and the simplest way of setting up a performance test using Unity's profiler to compare frames-per-second results. I'm sure you can think of many other tips that have become a habit for you that affect performance. A fast-paced video with links to other more detailed videos or documentation would be super helpful to a lot of people.
I am honestly stunned at how good your lighting setup and skyboxes are in every single video! Gorgeous to say the least!
HOW!!!! I just wrote this topic down last night as an idea to suggest for Brackeys to make tutorial on. Thank you sooooo much Brackeys!
Unity labs has an auto LOD feature that seems to work really well so you don't have to remake hundreds of models if your game is that big lmao
Dominion Interactive
Linky? This comment has the potential to save lives lol.
You'll need a mesh simplifier there is one on the asset store this code uses however you can make your own relatively easily, there are many algorithms that you can base off of
Cheers, This looks interesting. You are the real MVP.
Any ideas on how much performance you can pull out of a scene from using the low poly versions at LOD2+? Is there any noticeable jank or shift that you can see when moving around?
I've played games before where it's really obvious that you're seeing a lower quality model as you soom in and out (e.g zooming into a series of trees and you can see the quality pop-in.
Be keen to see how this might work in unity.
You can check out and tinkering this:
assetstore.unity.com/packages/essentials/tutorial-projects/book-of-the-dead-environment-121175
IMO optimization work really damn impressive. Keep in mind to check fps after build as well.
I don't remember how, but I ran into the LOD system by mistake one time and couldn't make heads or tails of it. This really helped me out, and since I'm generating my own assets as well gave me some help there as well. Thank you so much.
You are seriously underrated! You are amazing! I've watched so many of your videos and they have helped me in some way, I just wanted to say thank you!
Your are always the man with the best 8-12 minutes tutor on UA-cam for unity engine
Thank you so much for explaining the LOD concept so beautifully, Please keep up with the great work you are doing. Watching you're videos gives me so much inspiration to explore new stuff. :)
Very useful tutorial, I had no idea you could do LOD so easily in Unity, thanks!
Just as I was about to google LOD tutorial... )) Perfect timing, Brackeys!
This was so excellent! Couldn't have asked for a better tutorial!
I literally was just barely trying to figure out how to do this. My way was a pain in the ass! This one is perfect!
In awe at the size of this LOD
Absolute unit
Awesome video. 2 VERY useful improvements...
1. Copy with ALT-D so each object is linked to the others. That way you can edit any LOD mesh later and the shape of all the others will update to match.
2. No need to apply the decimate modifier (makes it easier to change/adjust later)
The above works with direct blender export to Unity. Not sure about FBX or other engines.
I just LOVE your tutorials, you always seem so positive, thank you for that :) !
I love your videos! Always cohesive info that's within context. Thank you!
Love this content. I am going to start setting up LOD groups for my survival game, Skeleton Island, too.
i LOVE unity
this technique will be perfect for open world
games or any game in fact
Best unity tutorials (Brackeys), thanks man!
Hi Brackeys. Can you make a tutorial on moving LODs?
Rip
@@oozly9291 i know right
@@oozly9291 Why?
@@NOF4C3 brackeys is quit
Why do you think the setup is different for moving gameobjects?
So cool! I really like the idea of optimising games! Squeezing as much performance out of the engine!
WOW! That was super useful information, can't wait to try it out in a project.
keep up the good work!
How did i missed this video? ill have go over your channel again to see what i missed.
UA-cam's notification algorithm is so broken...
I want Brackeys to be my teacher
What will be the fee?
He is teaching you already. Most of my end games will probably be mostly from Brackeys
I knew LOD was easy to use but I had no idea making a low version was that easy in Blender!
Though I bet once I try making a model and do it, it will fuck up and remove a polygon that ruins the entire shape or something
Well in theory it should work but I've never been able to make LOD work. It works properly in the editor when you move the editor camera around but has never worked for me when actually running a game. It always displays LOD0 regardless.
Thank YOU! I was just preparing to create such sort of C# script for doing that ... saved me a lot lot lot of time!
Incredibly vital information. And you summarized it perfectly.
This guy is a living legend
Man you are hardcore in teaching things
Super cool! I didn't even realize Unity had this built-in feature before!
You can also change distance for any LOD model.
Love your work it gives me inspiration and determination to work harder. Keep it up ✌🏾
0:45 "Heeeeere we go!" - This was epic!
I think I'm gonna make a gif of this.
uuh gifs don't have sound lol
TheGuineapig but have texts
Thanks for the tutorial Brackeys!! Unity is awesome!
Exactly what I was looking for! Thank you!
You help me out alot . Thank you ❤
This goes for all your videos.
I think you should leave the code and steps in the description because often when following along when you go to test out something won't work and you have to go back and watch the whole video again. I feel with being able to see the code all in one place speeds up this process and you understand the mistake a lot more.
Thanks.
Such an easy feature to not pay attention to because its effects visual are mostly unnoticable. But so necessary for large projects
Fun fact, unity can read .blend files which makes for easy editing. Just like with photoshop as you've mentioned in previous videos! :)
Thank You for the great tutorial
I was always fascinated by this in Sunshine.
Cool video!!!
By the way Brackeys do you think you'll be able to do Ludum Dare 4; the videos you do about Ludum Dare are super inspirational
I really liked the "Here we go part".
Great video Brackeys, Thank you for uploading it!
This LOD tut is intetesting. Good tut.👍😲
This is so helpful for an open world game. Especially for mobile
Here's an interesting question: I wonder if the LOD would change, not only depending on the distance between the camera and given object, but also on the FOV of the camera? Say, I would be a sniper on a hill, looking upon the fight-scene from far away, only seeing low-LODs. Now I zoom in (i.e. simply changing the camera's FOV accordingly), bascially make every object take up more space on the screen, would I now see high-LODs?
In other words: Is the LOD-Change *really* depending on the space a given object takes up on the screen?
Thanks in advance!
MrTastelessVideos this would be so cool
The LOD to use is selected by its size on the screen, so if you are doing the scope by adjusting the FOV of the camera and adding a vignette, then it'll probably switch LOD. If your scope is a different camera rendering to a texture then I'm unsure what will happen, but you can manually force the LOD by calling LODGroup.ForceLOD(index)
I never thought I'd figure out how to actually subdivide things in blender from a Unity tutorial on performance optimization, I kinda expected me to figure it out from Blender tutorials on how to subdivide things.
The third on your Thumbnail is 25% of the center one but 10% of the left one. I would change it to 10%
Ye but Thumbnails doesn't have to be correct, they just have to grab your attention. 100 50 25 are "nicer numbers"
What you have said makes no sense, 400 is not 25% of 2000. 500 is 25% of 2000.
They also drive people like us crazy
Great and clear explanation. Thanks man
Thanks! I didn't know about this useful feature! Very simple.
Quality tutorials as always 👍
I DIDN'T KNOW IT WAS THAT EASY!!!! THANK YOUUUUUU
Hi Brackeys! awesome video!
Do you have a tutorial on making skyboxes like the one you have here? I'd love to learn more about that, because most of my current procedural skyboxes are trash.
Elektrix I would love to too
Amazing idea!
Elektrix That's not just a gradient? And also the scene have Post Processing effects.
I'm not sure what he has done here, but his empty scene looks more beautiful than anything I have ever made!
My first thought when he went into Unity was damn, how does he do that so easily!
+1 for simple background/empty scenes looking good from the start.
(Although I think probably this scene involves only a little more than bloom + vignette in Post Processing.)
He has a default skybox. But he has post processing.
Perfect video! This made everything much clearer, thanks, also can you do this with maps, like if the ground terrain is too detailed for it to have low detail in far away places and gain them in closer places, i know its possible but is it like shader i must develop or something?
very helpful, thank you!
Another great video,
Could you by chance do a video on asset bundles?
Not sure what you are chasing but he has a couple of videos of his favourite assets and other useful assets if you search his channel page. You could also type "brackeys assets" into UA-cam search and I get a heap hits.
Here's one: ua-cam.com/video/lSkjEBg-leU/v-deo.html
Game Design by Gigity McD He's talking about the in-engine Unity Asset Bundles.
I like the scene setup. Its so clean :D
Is that the unity procedural skybox?
Hey brackeys! Love these tutorials! Could you make one about how you make such nice looking scenes like the ones you use in the tutorials? I noticed they have such nice lighting and filtering effects
The vignette effect from the post processing stack is doing a lot of heavy lifting here. You should have a play around with the post processing stack. Brackeys has a tutorial on it from a while back.
ua-cam.com/video/a0OQvWAPeuo/v-deo.html
There's also one about getting good graphics that might have something. Like he uses Linear colour space instead of Unity's default gamma.
ua-cam.com/video/owZneI02YOU/v-deo.html
Wow thanks this is super helpful!
Great stuff mate!
Your videos are amazing!!
OMG! What a wonderful video. Thanks for sharing.
3:08 is the best part of the video
My school has a programming class, and the first thing they did was telling us about your channel
Love your videos man
Hello Brackeys! Thanks for all the great tutorials on Unity. There is a fairly new engine named Godot, which has grown a ton over the last few years. Sadly, not a lot of great tutorials are out yet, and I would hope, you might be able to do some simple tutorials on Godot. I hope I am not asking for too much.
Thanks!
Your Videos are Awsome👍🏻
You sir, are a ninja.
Thx bro i was always wondering wtf are these lods
I don't know if that interests you, but maybe you could make a video or a series about the capabilities of Unity to make software other than just games. ex. An android app, a web app... I'd find it very informative. Btw Awesome video once again !
Nice vid! Please show your workflow to get such balanced scenes and post processing xD
perhaps for your next or upcoming video, you should make a tutorial for a character customization screen! i really wanna know how to make one but i can’t seem to find a good video out there
Can you make the last LOD just a 2D picture?
Yeah you can. Just add a billboard image
You wouldn't be able to see it from different sides.
Setting up a script using obj.transform.lookAt(player) that will make something always face the player is super easy. Lots of games do this for plant assets that are far away like grass tufts.
it's called billboard. A 2d sprite that is always facing the camera.
No mip mapping is something else, similar effect. it's for down scaling images at a distance or an angle. like a floor texture, no point in calling a 2k floor tile 50m away.
the only thing id worry about with this is what happens to the uv unwrap when the mesh is decimated ? but i love your stuff keep up the grate tutorials ! also can lod scale with texture sizes ?! like from 1k-256 ? that would be a neat part 2 ;)
I am not quite sure if this would help: I am using the texture atlas method for my simple objects. After the decimate modifier the uv map is at the same place as before, just with fewer edges and points. So i don't have to change or adjust my texture mapping.
I think, if your texture map is not too complicated, it will work fine too...
Jan Kersten I knew there must be a way I'll look more into that atlus your talking about thanks :D
After searching myself for some videos, i have seen there is a add on for blender named texture atlas. I don't use this add on, i do it like they do in this videos: ua-cam.com/video/bP_1XfpEy80/v-deo.html and ua-cam.com/video/DD84GSJiTVc/v-deo.html
I didn't mention in my post, that i used it with single colors and not with complex textures. But as i said, the texture map won't change much after decimating. So i believe you can texture your object the way you want and it will still work.
blender doesnt effect the UVmapping when you decimate a mesh, it just decimates the UV map at the same time :)
looks pretty much fine for most cases but in extreme situations (like decimating a character mesh to 5%) it can "shift" some textures around a little, but it will not create new seams or tears in the texture, so from a distance it will look fine
pretty awesome video! thanks for sharing!
Wow! Nice Brackeys!
How does this affect UV's and texturing? Do you go through and UV + texture each separate LOD or do you only need one set of texture maps for each one? Great video btw, thanks for the info ^^
Late reply, but better late than never.
From my experiments with Blender, using the Decimate modifier subtracts vertices, which kind of makes them merge with their closest neighbors, so in a way the UV wrapping of the model will continue to make the texture look seamless as long you have a recognizable 3D model. I haven't tried LODs with armatures, but after moving the skeleton from one layer to another in Blender, with both layers having the same model but with different LODs, the bone weights seem to be identical, for they copy the skeleton's pose, so in short, Decimate helps a lot in creating LODs for both static and dynamic objects.
select the "planar" tab in the decimate modifier and select "UV" there, then you won't ever have to change uvs
Just amazing tutorial, thanks a lot
u r god.. Keep it up.. Dont give up. you are amazing.
The thumbnail is incorrect - the right percentage should be 10%, not 25%. As it is now it means 25% from the middle model, not the left (and I suppose the right one should be reduced from the left one, correct me if I'm wrong)
Amazing Video! Can I change/adjust the LOD-Graph, where it shows, at which percent it exchange the models? (To change objects at higher or lower percentage)
all hail the gods at insomniac for blessing us with LOD!
Hey Brackeys, this was a really awesome LOD tutorial. But how would you handle terrain LOD in, let's say for example, an open world map?
I was just looking for it man..
So two questions: 1.) Does this mean to have a different standard of quality you have to do this to all objects in the game? 2.) Should it work the same if the camera is following a character?
huh... thought this was much harder. Thanks!
Jesus f*cking christ. I got completly blown away by the fact that unity does the LOD management automaticaly.