hello, I am a small youtuber wanting to make essay-type videos just like you do, and since you clearly know what you are doing, I was wondering if you could give me some advice on how you make it and/or get the information for your videos.
Most of the games shown here don’t have ugly looking trees in my opinion. Especially Ghost of Tsushima. That game had some of the best looking foliage I have ever seen in a game
And I strongly disagree. With the exception of Ghost of Tsushima, which this video doesn't show any closeups of trees (the grass looks good, but it stated to give each piece of grass it's own geomatry and animation), and I have never played, none of the other games have good looking trees. They definitely have better looking trees than older games have, but they are still ugly. Foilage in general, both in it being 2d, and the way lod is so noticable, has driven me nuts in literally every single game. It just looks bad. Games with stylized graphics like Breath of the Wild aren't as bad for me, but they are still ugly. As for games going for realism, their trees are absolutely hideous to me as they stick out like a sore thumb. Luckily, Unreal Engine's nanite system goes a long way in helping with one of my most hated things about modern video game graphics.
@@TheNe0PhyT3 it’s so strange to me because I have never noticed foliage in modern games. Obviously games like SM64 have awful looking trees, but I haven’t ever been playing a game like BOTW and thought the trees looked particularly bad. They don’t look real, but I guess I’m just unbothered by it. It’s so interesting to me that it seems many people have always noticed it.
@@KTLaughter Well, I'm sure it's in part a matter of what you pay attention to. I might not always think foilage looks bad in a screenshot, but I'll automatically think it looks terrible once in motion. I also tend to like looking at things further out, so things like lod and draw distance matter far more to me than litterally any other graphics. The exceptions being resolution and fps. On the other hand, something like shadows tend to matter little to me, despite it being super important to many. I just tend to not notice them, aside from their general shape. Sure, I like shadows from clouds, but I'd care less if a character's shadow was a circle on the floor or a high res copy of them. So everyone will prefer different things depending on what they tend to focus on.
Ah. Love watching a video critiquing something, and being genuinely curious about what the person might have to say, and then realizing it's just a 4 minute long ad. That can be summed up to "Tree look bad in games, but we make good trees so pay us money so you make good trees too!"
something I noticed about dragon age origins is the leaves will rotate to face the player. It's an odd effect if you're looking straight at it, but since players don't usually look at trees they probably didn't notice.
This effect looks even stranger in Just Cause 2 where if you fly a jet over a forest at low altitude every single tree quickly turns towards you as if they were all LOTR ents doing a choreographed dance at you.
@@adarshwhynot you dont want to have your leaf-cards to be transparent, no game does this, you want them masked so the engine knows which pixels to literally discard and not render
Tree foliage will tend to use a "transparent cutout" shader that helps with the overdraw issue by limiting pixel alpha to be either fully transparent or fully opaque. The foliage pixel can then safely "write its depth" so that any pixels that are further from the camera will be discarded.
Finally.. true, but there's still the cost of iterating and depth testing all of them though so that's still a concern. Plus that's sort of a roundabout reason why trees look bad, abrupt cutoffs generally look worse than true alpha even with antialiasing and the like.
But if you use per-fragment/pixel discard then you also lose the benefit of early Z culling. It helps when the foliage is sparse, but hurts when you have foliage that's mostly opaque. For example when you have dense object occluding a tree.
None of the trees shown are what I would call ugly, and I don't think most people would. At worst they're just not as realistic as they could be. Also at 2:14, it is rather deceptive to show a static tree in a modeling program, then switch to a fully animated tree, with quite a different visual style, in a running game engine; that is not at all a fair comparison. There are also PLENTY of examples of great looking video game trees using alpha cards, or essentially the same technique with speedtree (which still depends on alpha cards). Really, calling video game trees ugly is extremely subjective.
A lot of people mentioned nanite, but the technique that UE5.1 uses actually comes from Pixar. It’s called stochastic pruning and it’s a LOD technique for porous meshes like trees and bushes.
Loved the introduction to optimization for foliage in gaming.😁 I have spent quite some time learning the pros and cons about optimization methods using Unreal engine 4, there are multiple techniques to work with, but with UE5 and Nanite starting to support foliage and transparency, geometry isn't really an issue anymore. (except crazy overdraw of course, need to still be careful with that one while putting all together geometry heavy assets) Few things to work with on the top would be : - Instanced meshes (reduce drawcalls and allow to increase performance overall) - Mipmap management (size of textures based on distance from the camera), - Frustum culling (to load and unload from memory objects inside/outside of camera point of view), or other culling methods - Draw Distance - Merge (of complex/custom geometry + materials to reduce drawcalls) - Use of Atlas Textures (to reduce load on GPU, specific to some scenarios) - Niagara particle system to take care of complex interactions/particles driven by GPU (Material nodes for interactions remain less heavy on GPU of course) - Octahedral LODs (another method to conserve good visual quality of the asset at while using very very low poly count, works well with symmetrical medium or large sized props) - Or even Vertex Shaders (for looping animations that cost almost nothing on the computer to run in realtime) And way more 😅At the end, it's up to what is the target platform/performance and visual fidelity, finding what fit the most the development pipeline.
Yes Nanite is really good. Other than foliage, it can also help with LOD pop-in issues and enable developers to use many high poly meshes without losing perf.
EU5.1 with nanite is also working towards making this problem easier to fix. i'm sure it's not perfect, but nothing ever is with large scale gamedev really. but it'll be a huge tool to make this less of a headache (provided you're working in unreal to begin with)
A lot of the trees from games actually look great, I think it's just Pokemon and maybe apex, but even then they are already criticised for bad graphics in general
Funny enough I don't think Pokemon Legends Arceus even used alpha cards, like it's literally the same tree and copy and pasted, a whole model seemingly just seemingly planted there, and just propagated, rather than alpha cards randomzing what set of leaves and potential flowers those could have.
I think it is mostly because the trees are not stylized properly like in cartoons or paintings. Most trees feel like stock assets, they dont need to look hyper realistic they just need to by stylized more artistically, but my guess is most trees are asset packages that are used to save on developmnent costs.
Since Unreal Engine 5's Nanite works with foliage now, it could be an option to render individual leaves with minimal Alpha. But anyways I thought in Unreal Engine an early depth pass is rendered on masked materials, which eliminates overdraw. Correct me if I'm wrong.
@@saimon1987 Then try the following: In UE5, Stack foliage planes behind eachother and set the material Blend Mode to "Translucent" Look at it in the Shader Complexity mode (Alt + 8). There is red and white areas all over = huge overdraw. Now set the material blend mode to "Masked" and look at it in the Shader Complexity mode again. There is only green areas. Overdraw seems to be drastically decreased. The early Z-pass for masked materials is on by default in UE5, which reduces masked overdraw. This option was available in UE4 but off by default.
@@Braindrain85 Everything in real-time rendering is a tradeoff, right. If you are going for a stylized game that can use the binary blending of masked or if you are happy to trade in for less realistic looking leaves, masked will definitely save you from overdraw. But leaves don't function in a binary off-and-on way as the masked blending does.
@@fergushamilton6274 Thanks for your input. Though could you please explain "leaves don't function in a binary off-and-on way". Since leaves are not half transparent, masking (maybe with some dithering) might be the most practical approach we have as of now. You said masking is a tradeoff for less realistic looking leaves. What is your preferred blending mode for realistic foliage?
One solution is to use different levels of detail. Individual leaf polygons => alpha cutouts => tree billboards that transition based on distance to the camera. Then the difficulty is in hiding the transitions. You can get very good looking trees for static screenshots at the cost of a noticeable pop when the LOD changes. However, when the trees are dense enough, and transition at different points, it's less obvious due to all of the visual noise. This is the approach I use.
A grass blade is a triangle, so there's no overdraw because you don't discard the pixels where the alpha channel is at zero, the trees use quads and discard the transparent pixels. if you reconstruct the geometry with GPU instancing (which seems quite too polygon heavy)then yes it could solve the issue but otherwise I think that has no impact on the overdraw
Well, there's this one game called Post Mouse where trees are nicely rendered, but that's because you're a tiny mouse in a vast world set in the yard of an abandoned manor.
Perfomance problems come from the transparent textures which 3D engines have problems to render: invisible parts of the texture (the black parts in texture mapping) cause brutal overdraw too. Instead of using a map to make unwanted parts of a texture invisible, its many times better to cut out the textures manually. It is more work of course, but you get a greatly perfomance increase.
Рік тому+2
What do you mean by cutting out textures manually? Adjusting the shape of the mesh so it'll have less transparent part of the texture on it? Meaning, it'll increase triangle count as the mesh follows the texture's shape closer instead of having a big quad with tons of invisible part?
I think in terms of geometric density of recent games, we're close to the point of being able to use meshes for leaves, at least on LOD0/ highest poly/closest drawn meshes. I think that brings up a whole other can of worms in terms of animation consistency between LOD0 and lower poly/distant versions using alpha cards, visual consistency and possibly exaggerated asset pop when transitioning between detail levels, and just generally out of scope for anything besides maybe a next-gen walking simulator or photography game where close inspection of nature is a key part of a game.
Can the overdraw problem be solved with raytracing since instead of drawing all the objects in the cameras FoV, the rays sent from the camera would hit the closest object first, eliminating the need to draw the objects behind it? Granted this depends on how many bounces you set, I know having atleast a few bounces is the key to raytracing looking good, but assuming you surrender this (and multisampling), couldnt you include an absurd number of objects in your scene and still maintain good performance?
Pokemon doesn't belong in this discussion because their two latest games have been almost entirely incompetent. Their trees are ugly because their artists couldn't even make a grass texture.
what if you unloaded all the alpha card that arnt seen by the player? theoreticaly, that would reduce most the lagging, and then, making the texture different, so that you could make the texture follow the player without it looking bad.
Not sure if this was mentioned, but GPU instancing doesn't do anything about overdraw, it's just less communication between the CPU and the GPU, saving valuable time. For overdraw, you can do a depth-prepass, where you only draw to the depth buffer first, so once you get to your regular drawing, you only draw the visible pixels.
Why can't we just use the same bezier curve they use for grass? But have three to form a leaf with intersection points and range cutoffs? Lerp fill between?
Can't you use entity culling to mitigate some of the performance impact? Basically, don't render any grass/leaves that is fully covered by other grass/leaves (so what is rendered depends on where the camera is immediately pointing at). This should already happen for things that are outside of the player's FOV, so we could try to apply the same concept inside it.
taking a guess from what it looks like visually, im assuming his trees are just big and hollow, im assuming this based on how opaque the leaves of the tree are. because its just an opaque texture, you dont need to place leaves INSIDE the tree. since players wont be seeing it
A mate of mine bought the course and iirc his trees use a method where you transform every face of a sphere into alpha cards that then always face the player. Its a method that works for stylized environment but has some jank to it (last time I tried)
So I want to learn un5 so badly but I downloaded it last day at it took 106 hours and after I tried to opened it it started giving me errors saying it’s not supported and something else. After that I ended deleted the new version which is 5.1.1 and downloading 5.0.3 but it’s gonna take 106 hours also. Any help??
I love how you always show the crazy cool and fun ways developers make the amazomg game we play. Reminds me of the making if films or that how it's made show.
maybe the solution is to not draw the pixels overlapping depending on which way the camera is facing? IDK they do that for other things in games. I'm a noob
you just need dense looking foliage images, a realistic model and good textures that blend well. for example check out the trees in tarkov, pretty good imo
Alpha cards... never heard that term before. It was common to call these billboards or billboarding. Cloud simulation used these a lot. Some interesting optimizations involved regenerating them on the fly to merge many together. Suddenly a couple of triangles is rendering thousands of cloud particles.
I’m glad the foliage in The Isle (evrima) looks so beautiful! I can run it with the highest settings and it really felt like I was immersed in that environment
why not cull the leaves based on a sparse raycast that injects information about the width of the visible leaf textures in order to reduce overdraw? it might be able to limit overdraw to 2 or 3 passes instead of the dozens experienced by full trees.
When I saw the big broccoli tree in mob psycho 100 season three I knew all the anime games I’ve played need that type of tree, not for the same reason dimple does 😂
I am a long time subscriber and fan of your work, and your course looks amazing but I have been putting off getting it for quite a while now because of needing substance painter, do you think Quixel Mixer is up to the task even though it doesn't have baking? Or is the difference pretty big and I should wait until I can afford substance painter?
@@illidank996 in short, yes it is, but baking it through substance painter is way way easier because it can make all the maps for you without changing programs. blender baking is just ok, this is what I am currently doing and then importing to quixel, but quixel is still a bit different than sp.. my real question is if the course translates to quixel pretty simply or if having substance painter is just better
@@T33nno Ah yeah that makes sense, I've always had acess to SP so I never thought about that. I guess it depends if the course if worth it for you. I guess he uses SP for the rocks and maybe the trees but im sure you can get a sufficent result using your own workflow. In the end most of the course stuff happens in UE (I guess) so you might not be missing out on a ton
@@illidank996 totally agree, I am saving up for SP and this course anyway, but If it is pretty Substance painter heavy, then maybe I should probably wait and stick with my workflow for now
I don’t think players would mind trees being ugly so much if they were also interactive in a dynamic way. IRL trees can bend and break, but most video games only allow the bare minimum, or no interactivity at all.
i think indeed gpu instancing would be great for high LOD trees like 1 naked tree mesh and generated on the fly gpu instanced leaves , with the high degree of polygons we can have now, maybe soon creating whole trees without needed alpha textures could work, and if we couple that with highly advanced billboards for distant tres, we can have something awesome! on the topic of billboard these got way better since the last few years, i saw an unreal plugin named impostor and it worked beautifully, though it demands lots of data and probably ram.
can u explain more about ghost of ishuma grass gpu instancing thing .. can u make a tutorial how it works? even if this is for premium member on youtube or so
because ppl focus more on the plot the gameplay and the story more and thank god because if they made a whole ass game about a realistic tree and nothing else then fuck i wouldnt even pay for it id just pirate it and delete after 10 minutes of playing
I would assume that in most game engines most repeated meshes (like grass billboards) are drawn using GPU instancing, as it's usually a feature of the graphics API (OpenGL, Vulkan, DirectX, etc.).
Ich weiß leider nicht mehr wie es heißt aber gibt es nicht extra ein Programm um Bäume zu erstellen welches den nachteil hatte, dass sich texturen mit der Kamara mitbewegen, das jedoch fast nicht auffällt wenn man nicht direkt von unten in den Baum schaut. Dafür sehen die Bäume bei weitem besser aus, Elden Ring nutzt das glaube ich. Edit: Es heißt speedtree und ja, Eldenring nutzt es.
Er hat glaub ich eh footage von speedtree im Video. Speedtree is der Industrieanführer was Bäume und Foliage angeht. Ob du willst das sich die Leafcards mit der Kamera drehen oder nicht kann man im machinein immer noch entscheiden
Wow, this whole vid seems to be made for promoting the UE Course, or atleast it seems to me be like that as I don't think I learnt anything new (and can be summarised as "Tree leaves are usually quads with transparency, GPU Instancing might be used instead in the future"). Maybe the course might go into detail, but I am talking about this vid. Hmmm, so, did Stylised Station always had only a bucket of style and barely a pinch of substance, or is this a new phenomenon?
Short answer? Yes, but with caveats. Long answer: Dreams is basically a game engine on top of a game engine on top of a rendering engine, so everything you're doing is abstracted to a solidly high degree. In Dreams the don't give you access to core engine level tools outright, you'll have to use what's at your disposal there. I'd recommend following some creators that work exclusively in dreams to see how they optimize their scenes, but things like GPU instancing and all that jazz require the engine to support it outright.
Trees are very complicated when the player camera is up close. If you were to fully render and physicalize every fucking branch, leaf all with tessellated bark… you got yourself a slide show on your hands assuming the entire game doesn’t instantly crash because you are out of memory bandwidth. Trees greatly benefit from 2D props, displacement mapping and aggressive LODS.
Here's my anime environment art course: bit.ly/3k5xCNH
hello, I am a small youtuber wanting to make essay-type videos just like you do, and since you clearly know what you are doing, I was wondering if you could give me some advice on how you make it and/or get the information for your videos.
Most of the games shown here don’t have ugly looking trees in my opinion. Especially Ghost of Tsushima. That game had some of the best looking foliage I have ever seen in a game
It was just filler footage related to theme of the video, foliage
He says in the video that ghost of Tsushima has really good folliage
And I strongly disagree. With the exception of Ghost of Tsushima, which this video doesn't show any closeups of trees (the grass looks good, but it stated to give each piece of grass it's own geomatry and animation), and I have never played, none of the other games have good looking trees. They definitely have better looking trees than older games have, but they are still ugly.
Foilage in general, both in it being 2d, and the way lod is so noticable, has driven me nuts in literally every single game. It just looks bad. Games with stylized graphics like Breath of the Wild aren't as bad for me, but they are still ugly. As for games going for realism, their trees are absolutely hideous to me as they stick out like a sore thumb. Luckily, Unreal Engine's nanite system goes a long way in helping with one of my most hated things about modern video game graphics.
@@TheNe0PhyT3 it’s so strange to me because I have never noticed foliage in modern games. Obviously games like SM64 have awful looking trees, but I haven’t ever been playing a game like BOTW and thought the trees looked particularly bad. They don’t look real, but I guess I’m just unbothered by it. It’s so interesting to me that it seems many people have always noticed it.
@@KTLaughter Well, I'm sure it's in part a matter of what you pay attention to. I might not always think foilage looks bad in a screenshot, but I'll automatically think it looks terrible once in motion. I also tend to like looking at things further out, so things like lod and draw distance matter far more to me than litterally any other graphics. The exceptions being resolution and fps.
On the other hand, something like shadows tend to matter little to me, despite it being super important to many. I just tend to not notice them, aside from their general shape. Sure, I like shadows from clouds, but I'd care less if a character's shadow was a circle on the floor or a high res copy of them.
So everyone will prefer different things depending on what they tend to focus on.
Ah. Love watching a video critiquing something, and being genuinely curious about what the person might have to say, and then realizing it's just a 4 minute long ad. That can be summed up to "Tree look bad in games, but we make good trees so pay us money so you make good trees too!"
In the middle of the video too. If it was at the end, after explaining all the techniques used itd be more excusable as a add-on, but cmon.
Thanks for saving me 4 minutes
hello i like money
Mr crabs style
Thanks for this. Saving us time
something I noticed about dragon age origins is the leaves will rotate to face the player. It's an odd effect if you're looking straight at it, but since players don't usually look at trees they probably didn't notice.
This effect looks even stranger in Just Cause 2 where if you fly a jet over a forest at low altitude every single tree quickly turns towards you as if they were all LOTR ents doing a choreographed dance at you.
Elden Ring does it aswell, and I was very upset noticing that I still looks so good though.
Yeah that's how sprites work, they're always facing you.
@@suha1012 Flashbacks from 20 years of Flight Simulator where whole clouds flip to face you when you go over or under them.
@@TheMightyKiD38 that's called billboarding.
Unreal 5 recent update seems very promising for making nice trees
Details?
Still over draw limitation exists
At what cost
Even with Nanite they can destroy performance because of the insane texture detail
@@adarshwhynot you dont want to have your leaf-cards to be transparent, no game does this, you want them masked so the engine knows which pixels to literally discard and not render
I was expecting 50% of this video to elaborate on the bad textures on tree logs
Tree foliage will tend to use a "transparent cutout" shader that helps with the overdraw issue by limiting pixel alpha to be either fully transparent or fully opaque. The foliage pixel can then safely "write its depth" so that any pixels that are further from the camera will be discarded.
Finally.. true, but there's still the cost of iterating and depth testing all of them though so that's still a concern. Plus that's sort of a roundabout reason why trees look bad, abrupt cutoffs generally look worse than true alpha even with antialiasing and the like.
But if you use per-fragment/pixel discard then you also lose the benefit of early Z culling. It helps when the foliage is sparse, but hurts when you have foliage that's mostly opaque. For example when you have dense object occluding a tree.
I never complained about trees, except when your car hit an invisible part of the tree :/
As a game dev myself, you guys have no idea how hard it is to make nature elements like rocks or trees feel nature.
It's easy with enough power lol. It is hard, when you do not have enough power and have to work with ugly billboard branches.
@@gn2727that’s like saying “it’s easy to buy a yacht when you have enough money”, performance is 90% of the problem making foliage
None of the trees shown are what I would call ugly, and I don't think most people would. At worst they're just not as realistic as they could be. Also at 2:14, it is rather deceptive to show a static tree in a modeling program, then switch to a fully animated tree, with quite a different visual style, in a running game engine; that is not at all a fair comparison.
There are also PLENTY of examples of great looking video game trees using alpha cards, or essentially the same technique with speedtree (which still depends on alpha cards). Really, calling video game trees ugly is extremely subjective.
A lot of people mentioned nanite, but the technique that UE5.1 uses actually comes from Pixar. It’s called stochastic pruning and it’s a LOD technique for porous meshes like trees and bushes.
I didnt realise trees in real life looked better because i have never seen them
Touching grass is tough, I agree.
go outside
@@keshi5541 do i haaaaave to?
Loved the introduction to optimization for foliage in gaming.😁 I have spent quite some time learning the pros and cons about optimization methods using Unreal engine 4, there are multiple techniques to work with, but with UE5 and Nanite starting to support foliage and transparency, geometry isn't really an issue anymore. (except crazy overdraw of course, need to still be careful with that one while putting all together geometry heavy assets)
Few things to work with on the top would be :
- Instanced meshes (reduce drawcalls and allow to increase performance overall)
- Mipmap management (size of textures based on distance from the camera),
- Frustum culling (to load and unload from memory objects inside/outside of camera point of view), or other culling methods
- Draw Distance
- Merge (of complex/custom geometry + materials to reduce drawcalls)
- Use of Atlas Textures (to reduce load on GPU, specific to some scenarios)
- Niagara particle system to take care of complex interactions/particles driven by GPU (Material nodes for interactions remain less heavy on GPU of course)
- Octahedral LODs (another method to conserve good visual quality of the asset at while using very very low poly count, works well with symmetrical medium or large sized props)
- Or even Vertex Shaders (for looping animations that cost almost nothing on the computer to run in realtime)
And way more 😅At the end, it's up to what is the target platform/performance and visual fidelity, finding what fit the most the development pipeline.
Yes Nanite is really good. Other than foliage, it can also help with LOD pop-in issues and enable developers to use many high poly meshes without losing perf.
EU5.1 with nanite is also working towards making this problem easier to fix. i'm sure it's not perfect, but nothing ever is with large scale gamedev really. but it'll be a huge tool to make this less of a headache (provided you're working in unreal to begin with)
To be honest I think that the tree's you showed with alpha cards looks better than what you showed after from your courses.
Trees in most games look fine... And have looked fine for a while.
Nope. And especially at distances, trees almost always look horrendous.
@@jamaly77 no lmao. Nowadays trees look fine in games. The title is stupid
Guy: "Why do video game trees look so ugly?"
*Proceeds to show me the most beautiful CGI trees I've ever seen.* O_O
Why do trees in videogames look so ugly? *proceeds to show half of the examples as gorgeous trees and flora in videogames*
Solution: Nanite in Unreal 5
Now is posible to create foliage in high quality.
"Why do video game trees look bad?"
Minecraft trees with shaders: Aight ima head out
A lot of the trees from games actually look great, I think it's just Pokemon and maybe apex, but even then they are already criticised for bad graphics in general
Funny enough I don't think Pokemon Legends Arceus even used alpha cards, like it's literally the same tree and copy and pasted, a whole model seemingly just seemingly planted there, and just propagated, rather than alpha cards randomzing what set of leaves and potential flowers those could have.
I think it is mostly because the trees are not stylized properly like in cartoons or paintings. Most trees feel like stock assets, they dont need to look hyper realistic they just need to by stylized more artistically, but my guess is most trees are asset packages that are used to save on developmnent costs.
Never in my life have I once thought that the video game I'm playing's trees looked bad
Now with nanite in Ue5 you can have as many leaves as you want on your trees and grass and no need for LODs anymore.
Since Unreal Engine 5's Nanite works with foliage now, it could be an option to render individual leaves with minimal Alpha. But anyways I thought in Unreal Engine an early depth pass is rendered on masked materials, which eliminates overdraw. Correct me if I'm wrong.
Wrong. Overdraw is a huge problem also in unreal and specially in foliage. It has always been ;)
@@saimon1987 Then try the following: In UE5, Stack foliage planes behind eachother and set the material Blend Mode to "Translucent"
Look at it in the Shader Complexity mode (Alt + 8). There is red and white areas all over = huge overdraw.
Now set the material blend mode to "Masked" and look at it in the Shader Complexity mode again. There is only green areas. Overdraw seems to be drastically decreased.
The early Z-pass for masked materials is on by default in UE5, which reduces masked overdraw. This option was available in UE4 but off by default.
@@saimon1987 you are wrong, hes completely in the right
@@Braindrain85 Everything in real-time rendering is a tradeoff, right. If you are going for a stylized game that can use the binary blending of masked or if you are happy to trade in for less realistic looking leaves, masked will definitely save you from overdraw. But leaves don't function in a binary off-and-on way as the masked blending does.
@@fergushamilton6274 Thanks for your input. Though could you please explain "leaves don't function in a binary off-and-on way". Since leaves are not half transparent, masking (maybe with some dithering) might be the most practical approach we have as of now.
You said masking is a tradeoff for less realistic looking leaves. What is your preferred blending mode for realistic foliage?
One solution is to use different levels of detail. Individual leaf polygons => alpha cutouts => tree billboards that transition based on distance to the camera. Then the difficulty is in hiding the transitions. You can get very good looking trees for static screenshots at the cost of a noticeable pop when the LOD changes. However, when the trees are dense enough, and transition at different points, it's less obvious due to all of the visual noise. This is the approach I use.
as someone who's into both art and tech, your channel is awesome
true
A grass blade is a triangle, so there's no overdraw because you don't discard the pixels where the alpha channel is at zero, the trees use quads and discard the transparent pixels. if you reconstruct the geometry with GPU instancing (which seems quite too polygon heavy)then yes it could solve the issue but otherwise I think that has no impact on the overdraw
that was a pretty smooth transition to an ad segment ngl
Well, there's this one game called Post Mouse where trees are nicely rendered, but that's because you're a tiny mouse in a vast world set in the yard of an abandoned manor.
Perfomance problems come from the transparent textures which 3D engines have problems to render: invisible parts of the texture (the black parts in texture mapping) cause brutal overdraw too. Instead of using a map to make unwanted parts of a texture invisible, its many times better to cut out the textures manually. It is more work of course, but you get a greatly perfomance increase.
What do you mean by cutting out textures manually? Adjusting the shape of the mesh so it'll have less transparent part of the texture on it? Meaning, it'll increase triangle count as the mesh follows the texture's shape closer instead of having a big quad with tons of invisible part?
The trees don't look bad. They're simply unrealistic. Your channel's name is Stylized Station, you should know it's nothing bad
can someone tell where the tree at 1:24 is from? videogame? photo? wallapaper engine? pls
so what is the essence? are those fluffy trees from your survival kit a good solution for games or not? :D
I think in terms of geometric density of recent games, we're close to the point of being able to use meshes for leaves, at least on LOD0/ highest poly/closest drawn meshes. I think that brings up a whole other can of worms in terms of animation consistency between LOD0 and lower poly/distant versions using alpha cards, visual consistency and possibly exaggerated asset pop when transitioning between detail levels, and just generally out of scope for anything besides maybe a next-gen walking simulator or photography game where close inspection of nature is a key part of a game.
*speed tree has entered the chat*
*speed tree has left the chat*
Can the overdraw problem be solved with raytracing since instead of drawing all the objects in the cameras FoV, the rays sent from the camera would hit the closest object first, eliminating the need to draw the objects behind it?
Granted this depends on how many bounces you set, I know having atleast a few bounces is the key to raytracing looking good, but assuming you surrender this (and multisampling), couldnt you include an absurd number of objects in your scene and still maintain good performance?
That would be very expensive
"why do video game trees look so bad? "
Kingdom Come Deliverance: Huh, peasants...
Pokemon doesn't belong in this discussion because their two latest games have been almost entirely incompetent. Their trees are ugly because their artists couldn't even make a grass texture.
Bruh shut up
what if you unloaded all the alpha card that arnt seen by the player? theoreticaly, that would reduce most the lagging, and then, making the texture different, so that you could make the texture follow the player without it looking bad.
"Why trees look bad in video games"
Shows Pokémon
What’s gpu instancing? It was mentioned at the end of the video but not rly explained
i want to see 'why do water splashes in games look bad"
Anyone knows where the red tree at 1:24 is taken from? That would make an awesome wallpaper!
Looks like Ghost of Tsushima
@@illidank996 Thank you, the tree seems to be from there, but I could not find the original clip.
Not sure if this was mentioned, but GPU instancing doesn't do anything about overdraw, it's just less communication between the CPU and the GPU, saving valuable time.
For overdraw, you can do a depth-prepass, where you only draw to the depth buffer first, so once you get to your regular drawing, you only draw the visible pixels.
Why can't we just use the same bezier curve they use for grass? But have three to form a leaf with intersection points and range cutoffs? Lerp fill between?
bros transition into self promotion was so smooth
Can't you use entity culling to mitigate some of the performance impact? Basically, don't render any grass/leaves that is fully covered by other grass/leaves (so what is rendered depends on where the camera is immediately pointing at). This should already happen for things that are outside of the player's FOV, so we could try to apply the same concept inside it.
Great video as always! But now you have me wondering how you made your trees look so good in a world where it's apparently not quite possible yet.
taking a guess from what it looks like visually, im assuming his trees are just big and hollow, im assuming this based on how opaque the leaves of the tree are. because its just an opaque texture, you dont need to place leaves INSIDE the tree. since players wont be seeing it
A mate of mine bought the course and iirc his trees use a method where you transform every face of a sphere into alpha cards that then always face the player. Its a method that works for stylized environment but has some jank to it (last time I tried)
Tüm oyunlara ait değil.Eğer öyle düşünüyorsan kafayı yemişsin
So I want to learn un5 so badly but I downloaded it last day at it took 106 hours and after I tried to opened it it started giving me errors saying it’s not supported and something else. After that I ended deleted the new version which is 5.1.1 and downloading 5.0.3 but it’s gonna take 106 hours also. Any help??
I love how you always show the crazy cool and fun ways developers make the amazomg game we play. Reminds me of the making if films or that how it's made show.
maybe the solution is to not draw the pixels overlapping depending on which way the camera is facing? IDK they do that for other things in games. I'm a noob
you just need dense looking foliage images, a realistic model and good textures that blend well. for example check out the trees in tarkov, pretty good imo
Forgot to mention how UE5 is changing the game of trees and foliages thanks to their nanite technology !
Idk. Trees looked pretty bad in the pre HD era, but they look much better nowadays. I haven't really noticed ugly trees in a while.
Alpha cards... never heard that term before. It was common to call these billboards or billboarding. Cloud simulation used these a lot. Some interesting optimizations involved regenerating them on the fly to merge many together. Suddenly a couple of triangles is rendering thousands of cloud particles.
Can you make a video on how fan made games is legal and illegal. And how can we earn through fan made games.
Music is too loud unfortunately. Constantly have to lower and raise the volume
I’m glad the foliage in The Isle (evrima) looks so beautiful! I can run it with the highest settings and it really felt like I was immersed in that environment
and then you've got the trees from wii go vacation
So this was a 5-minute ad to your course? Great.
why not cull the leaves based on a sparse raycast that injects information about the width of the visible leaf textures in order to reduce overdraw? it might be able to limit overdraw to 2 or 3 passes instead of the dozens experienced by full trees.
Me who didn't think they looked bad.
Red Dead 2 has some beautiful trees.
When I saw the big broccoli tree in mob psycho 100 season three I knew all the anime games I’ve played need that type of tree, not for the same reason dimple does 😂
Me: wait it was all just an ad??
Stylized station: Always has been... 💥🔫
Ah yes the objectively most important concept in gaming, trees. We need more trees, better trees. Screw it, lets just make every game trees.
I am a long time subscriber and fan of your work, and your course looks amazing but I have been putting off getting it for quite a while now because of needing substance painter, do you think Quixel Mixer is up to the task even though it doesn't have baking? Or is the difference pretty big and I should wait until I can afford substance painter?
Isn't baking possible in Blender?
@@illidank996 in short, yes it is, but baking it through substance painter is way way easier because it can make all the maps for you without changing programs. blender baking is just ok, this is what I am currently doing and then importing to quixel, but quixel is still a bit different than sp.. my real question is if the course translates to quixel pretty simply or if having substance painter is just better
@@T33nno
Ah yeah that makes sense, I've always had acess to SP so I never thought about that. I guess it depends if the course if worth it for you. I guess he uses SP for the rocks and maybe the trees but im sure you can get a sufficent result using your own workflow. In the end most of the course stuff happens in UE (I guess) so you might not be missing out on a ton
@@illidank996 totally agree, I am saving up for SP and this course anyway, but If it is pretty Substance painter heavy, then maybe I should probably wait and stick with my workflow for now
If you don't pay for SP Adobe won't find out
ai rendering seems like it could do something but i am extremely unfamiliar with it, its kinda new
I don’t think players would mind trees being ugly so much if they were also interactive in a dynamic way. IRL trees can bend and break, but most video games only allow the bare minimum, or no interactivity at all.
the fact that he started the video with a pokemon clip💀
my prediction for performant realistic trees is light fields. potentially via neural rendering
VOXELS ARE THE FIX!
The Erdtree be like: ✨🌳✨
i think indeed gpu instancing would be great for high LOD trees like 1 naked tree mesh and generated on the fly gpu instanced leaves , with the high degree of polygons we can have now, maybe soon creating whole trees without needed alpha textures could work, and if we couple that with highly advanced billboards for distant tres, we can have something awesome! on the topic of billboard these got way better since the last few years, i saw an unreal plugin named impostor and it worked beautifully, though it demands lots of data and probably ram.
To be fair not only the trees look bad in the pokemon game shown at the beginning
can u explain more about ghost of ishuma grass gpu instancing thing .. can u make a tutorial how it works? even if this is for premium member on youtube or so
Best advertisement for learning gamedev graphics lol
Loved the video, but the sudden booms in the music volume kind of hurt my ears sometimes
Using opacity masked leaf textures instead of translucency will significantly lower the performance impact from owerdraw
because ppl focus more on the plot the gameplay and the story more and thank god because if they made a whole ass game about a realistic tree and nothing else then fuck i wouldnt even pay for it id just pirate it and delete after 10 minutes of playing
I would assume that in most game engines most repeated meshes (like grass billboards) are drawn using GPU instancing, as it's usually a feature of the graphics API (OpenGL, Vulkan, DirectX, etc.).
Ich weiß leider nicht mehr wie es heißt aber gibt es nicht extra ein Programm um Bäume zu erstellen welches den nachteil hatte, dass sich texturen mit der Kamara mitbewegen, das jedoch fast nicht auffällt wenn man nicht direkt von unten in den Baum schaut. Dafür sehen die Bäume bei weitem besser aus, Elden Ring nutzt das glaube ich.
Edit: Es heißt speedtree und ja, Eldenring nutzt es.
Er hat glaub ich eh footage von speedtree im Video. Speedtree is der Industrieanführer was Bäume und Foliage angeht. Ob du willst das sich die Leafcards mit der Kamera drehen oder nicht kann man im machinein immer noch entscheiden
also getting closer to those alpha textures with the game camera is decreasing the performance a lot
This video is why they shouldn't have made dislikes invisible, you just know this one got ratioed to all hell
Wow, this whole vid seems to be made for promoting the UE Course, or atleast it seems to me be like that as I don't think I learnt anything new (and can be summarised as "Tree leaves are usually quads with transparency, GPU Instancing might be used instead in the future"). Maybe the course might go into detail, but I am talking about this vid.
Hmmm, so, did Stylised Station always had only a bucket of style and barely a pinch of substance, or is this a new phenomenon?
Love the small info vids bro keep it up
Damn, I knew this video was going to be interesting, but didn't expect it to be this interesting.
True Solution: Make the Area a Desert WITHOUT Oases-es
How would you create foliage like Windbound??
Say what you will about Cyberpunk but when the light hits those palm trees just right, it's a great time for all.
so basically this was one lazy 4 minute ad for your course...
Hey Stylized is it possible to do this type of stuff inside Dreams PS4? Just wondering.
Short answer? Yes, but with caveats. Long answer: Dreams is basically a game engine on top of a game engine on top of a rendering engine, so everything you're doing is abstracted to a solidly high degree. In Dreams the don't give you access to core engine level tools outright, you'll have to use what's at your disposal there. I'd recommend following some creators that work exclusively in dreams to see how they optimize their scenes, but things like GPU instancing and all that jazz require the engine to support it outright.
In Dreams, I think for foliage, it's better to use sculpts rather than paintings because paintings cause more overdraw.
what is the song from the intro?
Trees are very complicated when the player camera is up close. If you were to fully render and physicalize every fucking branch, leaf all with tessellated bark… you got yourself a slide show on your hands assuming the entire game doesn’t instantly crash because you are out of memory bandwidth.
Trees greatly benefit from 2D props, displacement mapping and aggressive LODS.
I won't ever forget the trees in gta4. Even for its time they looked horrible.
But why are so many of the tree trunks ugly? Sometimes the leaves are passable but the trunks look...muddy.
A lot of times trees need to be baked into the environment I am going pretty hard with taiao & forester u can create some very nice trees with that
always look at trees in a game as like a test for it lol