The wind noise texture basically says how much the blades of grass bend. Sort of like if you’ve seen a weather map showing wind speeds as different colors. As this texture moves across the grass, the grass bends under the white part of the texture giving the illusion of wind. This texture is repeated over & over so the wind is infinite. The stuttering problem comes from the seam between 2 copies of the repeated texture. If it’s not a smooth transition from one texture to another the grass blade immediately jumps from bending a lot (white) to no bending (black). Enabling seamless smoothly transitions from texture to texture so the grass blades bend smoothly.
Watching this a year after it was posted, and it is by far one of the clearest and most instructive videos of its kind. Just the style I was looking for, and explained patiently but without fluff. Expertly done
Great tutorial! A little tip in Blender that should save some time: once you make your first blade of grass, right click and set origin to 3D cursor and that way whenever you scale or rotate the duplicates, they will scale and rotate from the bottom of the blade and you wont have to move each individual blade down on the z axis after you scale it.
Great tutorial! edit: Although it falls apart toward the end unfortuantely. I wanted to see actual wind (the noise texture) moving across the grass field. Instead its more as if each piece of grass moves randomly independently. I would love a followup to this video on more complex wind-grass interactions.
i switched from unreal to godot and used the tutroial u mentioned befor and now wonderd how i could make something similiar in godot, tyvm for the video
Great tutorial! One tip to speed up the grass-patch-making: Object mode, select blade of grass and add an array modifier with count 10-16 depending on how many times you want to duplicate. Set the xyz factor to 0 and apply. Then go to edit mode, select the grass -> right click -> seperate by loose parts. Really nice if you need to duplicate more than 3-4 times. You can then go to object mode, select all blades, object -> transform -> randomize transform and play with the values. Beats having to place everything by hand!
Man, this looks gorgeous! I am currently occupied with the Godot Wild Jam, but I will definitely return to this video and try it out! Nice work and thanks for the tutorials!
You're a legend! I've been wanting to start this process for my current project and haven't quite been able to piece all of the resources together myself, this is an invaluable resource :) Subbed
This was like watching a magic show. I had no idea a shader could effect mesh that way. Thank you for al the time it took to record, edit and upload this. Excellent tutorial, no fluff, just content. And you went slow enough for a beginner. I'll be playing with the new shader editor way more in the future.
Hi, i really enjoyed this video ! I think it would be very interesting if you made a tutorial on placing said grass depending on the terrain it spawns on (ex: having grass spawn only on the top of a flating island or preventing grass from spawing on slopes that are too steep)
Awesome stuff. Just one "workflow optimization" tip, you don't have to decompose input (UV), just click on the little downward chevron next to the eye icon to get the output of channels separately.
Displace the grass under would be really cool thats the only thing missing from this grass to be perfect right now. Would also be really cool if you could make more tutorials on other foliage such as trees and bushes in a simular styple to this would also like to see a tutorial should how to use scatter with this grass and other foliage you have made.
Great video! Displacement would be great here, it was the first thing I thought of towards the end of this tutorial! Another question I have is, do you take tutorial suggestions so long as it's something decently small?
a little late to this video but I would love to see displacement too. I'd also like to see how to make the wind effect look more like a sweeping wind over a prairie
Such a good tutorial, step by step, easy to follow! Thank you so much! I would really like a grass displacement tutorial for characters walking over it!
I think you forgot to enable "Seamless" on the noise texture. Might not be noticeable depending on the other params, but I thought might be worth mentioning.
Thats really good, thanks. Now I need to find a way to place patches of grass on specific spots maybe with some mask and my Terrain is not leveled there is an elevation. Any advice for that? I have 1 huge terrain as one mesh.
Hey. Extremely great tutorial. I have one problem though. I have a directional light in my scene. Whenever I rotate it to an angle, some of the blades of grass turn darker than the others. If I remove the VectorCompose (0,1,0) from the Normal Map slot this problem goes away, but when I do that all of the grass get darker when looking from the direction of the directional light. I see that you don't have this problem, so I'm not sure where the problem comes from. Definately something to do with the normal thing
Definitely interested to see how to deform this when a character moves over But also, is there a way to apply this to a gridmap? I tried, but of course, the grass isn't a mesh, so it's not being picked up in the mesh library
I saw a short review so far of your video, I will have to do this soon, it looks very interesting, and I like your way of teaching, it's very complete, I'm grateful, you are very talented, this looks so cute. I have a question, your course contain everything you mentioned in that article?, I say it because of what you have planned to add, will chapter 4 be complete soon? Can this course be paid with PayPal?, thank you, It's very safe that I buy your course, it's worth it
Heya, thankyou so much! Chapter 4 weill be complete soon everythings in there except for the sound section which is next on the agenda ^^ - I hadn't actually looked into paying for it with Paypal I will do some investigating 😊
a very cool tutorial, is it possible not to have a big lesson where the texture (rgba mask) of the distribution of grass, stones, earth is used instead of the texture of noise?
i've watched a LOT of grass tutorials but this his the best one (especially in Godot). I wonder - is there any advantage for the initial model to contain multiple blades of grass? Wouldn't it be more flexible to have it only contain one blade, and let the multimesh and vertex shader control the amount and the positions of all blades individually? Would that be less performant?
Thankyou! The main advantage to having a clump is guaranteeing a certain area will have a certain number of blades, if we just had one blade we are much more at the mercy of how the multimesh distributes the grass, but that could be solved by having a script spread the grass blades out! Performance should be the same if you have the same total blades of grass afaik as the mesh is joined and the multimesh does everything in one draw call ^^
Thank you for this. How can we apply the noise across the entire grass MultiMeshInstance3D so it looks like the wind is rippling across the grass rather than every instance moving independently?
Great tutorial ! and yes i would like a video about displacing the grass with the player, also is it possible to instance the multimesh on the terrain with vertex color instead of seperate mesh ? Thanks.
Can you do a tutorial on the water shader at the end of the video? I'm wondering if that uses proximity fade but it just looks like the texture changes on top, if not how would I be able to make waves on top of the texture instead of using proximity fade
Is there a way to destroy parts of a multimesh without taking out the whole thing? I'm getting close to some Windwaker style grass but I really want to make it choppable, displaceable and burnable.
Is it better to create *multiple blades* of grass in the model and instantiate a *few* models or is it better to just have *one* blade of grass and more models instantiated? Or should there be no difference?
Could you do a video on how to only render the grass in close distance to the player and not render the grass blades off-camera, in order to use it in open fields without too much performance loss. Bending the blades underneath the player would also be nice. Thanks for the video
Im still working on that but definitely will when I have a solid system! This multimesh approach is what you will want for the high quality close grass, just need to play around with methods to load them in seamlessly
@@BramwellWilliams I saw a youtuber talking about using separate multimeshes as chunks like in minecraft so that it can minimise the draw calls while still only rendering the chunks of grass that are visible
EDIT: I managed to find the scale. It's right there in the Meshinstance settings when you first create your meshinstance. Sorry that I keep commenting and editing and deleting stuff. Is there a way to scale the grass down to a usable size? It's way to large for my project. When I scale the grass scene it doesn't effect the meshinstance3d. When I scale the meshinstance 3d, I just get a tiny little patch of grass, that doesn't cover my object.
I have an issue when I look straight down at the grass that it turns very dark. Why is that? Did I mess up on my end or does it happen for you too? edit: Strangely, only when looking into the positive x and z axis.
SO if i got an island Mesh, uncoloured, but i want the grass to be only on the bottom of my mesh Island, I need to create somehow the bottom part of my Island as another mesh ? If I select my Mesh, the grass will populate the whole Island if I understand it correctly. So any suggestion how to populate world where there are not planes, but uneven surfaces ?
instead of pointing normals to up in material, it's better to do that to your mesh in blender. Otherwise, other systems won't play well with your grass.
nice grass thank you but can u make somthing like this video in godot Fluffy stylized trees tutorial, using quadmesh-to-billboards shader in Unity I would be grateful
is there a way for putting input on the shader from the code? for increasing the vector3 multiply when the player are on the area, making a effect that the player makes impact on the grass when moving
(Tip) If your grass stutters a little bit while swaying, go to your Wind Noise texture & enable "Seamless"
whys that fix that?
The wind noise texture basically says how much the blades of grass bend. Sort of like if you’ve seen a weather map showing wind speeds as different colors. As this texture moves across the grass, the grass bends under the white part of the texture giving the illusion of wind. This texture is repeated over & over so the wind is infinite. The stuttering problem comes from the seam between 2 copies of the repeated texture. If it’s not a smooth transition from one texture to another the grass blade immediately jumps from bending a lot (white) to no bending (black). Enabling seamless smoothly transitions from texture to texture so the grass blades bend smoothly.
Watching this a year after it was posted, and it is by far one of the clearest and most instructive videos of its kind. Just the style I was looking for, and explained patiently but without fluff. Expertly done
This is fantastic! I'd also love to see the displacement stuff. Shaders are still firmly in the realm of magic as far as I'm concerned
It would be really cool to make this grass interactive as well
man just take the time to appreciate that people can watch this on 480p and still see everything - great attention to details
Glad that pays off! I spend so long zooming in on everything 😅
@@BramwellWilliams next time you can just leave it - you used a nice resolution so it works well without zooming as well, I think
Well it sure is nice when I watch on my phone
you explain everything at the perfect pace, not booring, not fast, great job
Great tutorial! A little tip in Blender that should save some time: once you make your first blade of grass, right click and set origin to 3D cursor and that way whenever you scale or rotate the duplicates, they will scale and rotate from the bottom of the blade and you wont have to move each individual blade down on the z axis after you scale it.
Or move the plane in edit mode at the start. Otherwise, knowing how to set the origin is good to know!
your tutorials are seriously the best. this is the only grass tutorial i've found so far that was comprehensive and useful. thank you Bramwell!
Great tutorial!
edit: Although it falls apart toward the end unfortuantely. I wanted to see actual wind (the noise texture) moving across the grass field. Instead its more as if each piece of grass moves randomly independently. I would love a followup to this video on more complex wind-grass interactions.
i switched from unreal to godot and used the tutroial u mentioned befor and now wonderd how i could make something similiar in godot, tyvm for the video
This one's going to my playlist for sure!
Thankyou so much glad you liked it!
Great tutorial! One tip to speed up the grass-patch-making:
Object mode, select blade of grass and add an array modifier with count 10-16 depending on how many times you want to duplicate. Set the xyz factor to 0 and apply. Then go to edit mode, select the grass -> right click -> seperate by loose parts. Really nice if you need to duplicate more than 3-4 times.
You can then go to object mode, select all blades, object -> transform -> randomize transform and play with the values. Beats having to place everything by hand!
Man, this looks gorgeous! I am currently occupied with the Godot Wild Jam, but I will definitely return to this video and try it out!
Nice work and thanks for the tutorials!
Thankyou so much and good luck in the Jam!
Very well structured tutorial, doing it in visual shaders makes it a whole lot easier to grasp👌
Also, +1 for a grass displacement tutorial!
Thankyou Lucy! the improvements to visual shaders have been SUCH a blessing✨
I love your tutorials! We really need more creators making content about Godot. Nice work, dude!
This was so easy to follow, thank you! I just started learning game Dev, so I appreciate the easy to follow guides ♥
Really happy to hear it thankyou! 😊
Amazing content! Love how thorough and articulate you are!
You're a legend! I've been wanting to start this process for my current project and haven't quite been able to piece all of the resources together myself, this is an invaluable resource :) Subbed
This was like watching a magic show. I had no idea a shader could effect mesh that way. Thank you for al the time it took to record, edit and upload this.
Excellent tutorial, no fluff, just content. And you went slow enough for a beginner. I'll be playing with the new shader editor way more in the future.
YES! I've been waiting for this! This is my project today! I'm putting this grass in my game. :D
Great explanation - thank you! I'd love to see a displacement video.
Awesome tutorial, didn't know multimesh exists, thanks!
Wow thank you! I would really appreciate a video about a player displacing the grass :)
Hi, i really enjoyed this video ! I think it would be very interesting if you made a tutorial on placing said grass depending on the terrain it spawns on (ex: having grass spawn only on the top of a flating island or preventing grass from spawing on slopes that are too steep)
thank you for the detail explaining now i can move on to next step
Another vote for displacement. You've demystified shaders a whole lot for me with this one video.
another big help would be showing how to ensure the grass always points relatively upward, even when it's propagated on a sloped surface
Awesome stuff. Just one "workflow optimization" tip, you don't have to decompose input (UV), just click on the little downward chevron next to the eye icon to get the output of channels separately.
Bro you amazing! I was looking for fresh tutorial and just found yours. I would love to see deformation of the grass.
Really great explanation of grass shader ❤❤
Thank you! Great tutorial, clear and extensive.
Great tutorial! Seeing how to displace it would be great too
Displace the grass under would be really cool thats the only thing missing from this grass to be perfect right now. Would also be really cool if you could make more tutorials on other foliage such as trees and bushes in a simular styple to this would also like to see a tutorial should how to use scatter with this grass and other foliage you have made.
This is amazing. Please do the grass displacement tutorial :)
Grass is so underrated but can have such a big impact on a game ^^
That looks great!
Right on schedule 👍
Thank you! I look forward to your videos
Great video! Displacement would be great here, it was the first thing I thought of towards the end of this tutorial! Another question I have is, do you take tutorial suggestions so long as it's something decently small?
Awesome tutorial! Thank you for your hard work on this!
Thankyou! I spent so long practicing getting grass I was happy with
thanks for make this tutorial ! love it
Just learning gamedev in 3D and this is way too complex 😁, great video!
Thank you for this.
+1 request for displacement underfoot! Great tut
a little late to this video but I would love to see displacement too. I'd also like to see how to make the wind effect look more like a sweeping wind over a prairie
Excellent! Thank you.
Thanks for help!
This looks really good just wish it was interactive as well
Such a good tutorial, step by step, easy to follow! Thank you so much! I would really like a grass displacement tutorial for characters walking over it!
yessss we neeeddd this so muchhhh i love the detail of the node coverage, extremely informative!!!
This looks like somthing from unreal engine its looking really good
I think you forgot to enable "Seamless" on the noise texture. Might not be noticeable depending on the other params, but I thought might be worth mentioning.
You are totally right! 😭
Would love to see grass displacement underfoot tutorial !!
Thats really good, thanks. Now I need to find a way to place patches of grass on specific spots maybe with some mask and my Terrain is not leveled there is an elevation. Any advice for that? I have 1 huge terrain as one mesh.
Hey. Extremely great tutorial. I have one problem though. I have a directional light in my scene. Whenever I rotate it to an angle, some of the blades of grass turn darker than the others. If I remove the VectorCompose (0,1,0) from the Normal Map slot this problem goes away, but when I do that all of the grass get darker when looking from the direction of the directional light. I see that you don't have this problem, so I'm not sure where the problem comes from. Definately something to do with the normal thing
it's better to point the meshes normals up in blender instead of in material.
Definitely interested to see how to deform this when a character moves over
But also, is there a way to apply this to a gridmap? I tried, but of course, the grass isn't a mesh, so it's not being picked up in the mesh library
I saw a short review so far of your video, I will have to do this soon, it looks very interesting, and I like your way of teaching, it's very complete, I'm grateful, you are very talented, this looks so cute. I have a question, your course contain everything you mentioned in that article?, I say it because of what you have planned to add, will chapter 4 be complete soon? Can this course be paid with PayPal?, thank you, It's very safe that I buy your course, it's worth it
Heya, thankyou so much! Chapter 4 weill be complete soon everythings in there except for the sound section which is next on the agenda ^^ - I hadn't actually looked into paying for it with Paypal I will do some investigating 😊
Thanks you great tutorial! Please make a tutorial underwater shader 🙏
Thank you !!
a very cool tutorial, is it possible not to have a big lesson where the texture (rgba mask) of the distribution of grass, stones, earth is used instead of the texture of noise?
whoa !!
just in time for totk XD
Nice. Could you explore a good (e.g. quick) workfow for creating and texturing a terrain in Godot 4?
i've watched a LOT of grass tutorials but this his the best one (especially in Godot).
I wonder - is there any advantage for the initial model to contain multiple blades of grass? Wouldn't it be more flexible to have it only contain one blade, and let the multimesh and vertex shader control the amount and the positions of all blades individually? Would that be less performant?
Thankyou! The main advantage to having a clump is guaranteeing a certain area will have a certain number of blades, if we just had one blade we are much more at the mercy of how the multimesh distributes the grass, but that could be solved by having a script spread the grass blades out!
Performance should be the same if you have the same total blades of grass afaik as the mesh is joined and the multimesh does everything in one draw call ^^
@@BramwellWilliams thanks!
Thank you for this. How can we apply the noise across the entire grass MultiMeshInstance3D so it looks like the wind is rippling across the grass rather than every instance moving independently?
Visual shaders are cool.
Great tutorial ! and yes i would like a video about displacing the grass with the player, also is it possible to instance the multimesh on the terrain with vertex color instead of seperate mesh ? Thanks.
thank you mate
Can you do a tutorial on the water shader at the end of the video? I'm wondering if that uses proximity fade but it just looks like the texture changes on top, if not how would I be able to make waves on top of the texture instead of using proximity fade
Is there a way to destroy parts of a multimesh without taking out the whole thing? I'm getting close to some Windwaker style grass but I really want to make it choppable, displaceable and burnable.
Please make a tutorial of grass deformity when the character steps on it. ❤❤❤
I completely missed the populate surface feature on multimesh instance node, thanks. I no longer have to use my own code to add instances on mesh.
Could you make a tutorial on the new mesh type we got?
Thanks!!!😃
What causes the line through the middle and the different orientation of the grass field? It seems the coord values are all offset by *-1?
Is it better to create *multiple blades* of grass in the model and instantiate a *few* models or is it better to just have *one* blade of grass and more models instantiated? Or should there be no difference?
please make tutorial for grass displacement
Why did we have to do -1 to our UV? Did we setup the export wrong and should the bottom of the grass be at the top instead?
how to crush grass under foot ? maybe by using proximity fade node.
Thanks :)
Please can you make a tutorial on making stylized trees in godot
Could you do a video on how to only render the grass in close distance to the player and not render the grass blades off-camera, in order to use it in open fields without too much performance loss.
Bending the blades underneath the player would also be nice.
Thanks for the video
Im still working on that but definitely will when I have a solid system!
This multimesh approach is what you will want for the high quality close grass, just need to play around with methods to load them in seamlessly
@@BramwellWilliams I saw a youtuber talking about using separate multimeshes as chunks like in minecraft so that it can minimise the draw calls while still only rendering the chunks of grass that are visible
Finally i can make some grass to my chars touch
Thanks, really helpful tutorial! BTW my like is #300
EDIT: I managed to find the scale. It's right there in the Meshinstance settings when you first create your meshinstance. Sorry that I keep commenting and editing and deleting stuff.
Is there a way to scale the grass down to a usable size? It's way to large for my project. When I scale the grass scene it doesn't effect the meshinstance3d. When I scale the meshinstance 3d, I just get a tiny little patch of grass, that doesn't cover my object.
I guess it a lot of work. I wonder if the using some wind direction or fire so grass turn black like in the link game from Nintendo.
i would like to see the grass deform around the player!
I have an issue when I look straight down at the grass that it turns very dark. Why is that? Did I mess up on my end or does it happen for you too?
edit: Strangely, only when looking into the positive x and z axis.
:O TOUCH THAT GRASSSSSSS!
SO if i got an island Mesh, uncoloured, but i want the grass to be only on the bottom of my mesh Island, I need to create somehow the bottom part of my Island as another mesh ? If I select my Mesh, the grass will populate the whole Island if I understand it correctly.
So any suggestion how to populate world where there are not planes, but uneven surfaces ?
Could something similar be used for fur on a character?
instead of pointing normals to up in material, it's better to do that to your mesh in blender. Otherwise, other systems won't play well with your grass.
idk bro i just write my shaders in WGSL and its pretty simple . ESP because now LLMs can assist with written text shaders but not with node based ones
nice grass thank you but can u make somthing like this video in godot
Fluffy stylized trees tutorial, using quadmesh-to-billboards shader in Unity
I would be grateful
is there a way for putting input on the shader from the code?
for increasing the vector3 multiply when the player are on the area, making a effect that the player makes impact on the grass when moving
ok, the next video on youtube recomendation have a way for make a interactive grass.
never touched on godot, just seeing some tutorials for fun
would it be possible to have this on procedurally generated meshes?
I mean how do games like botw seamlessly blend between rock surfaces and grass ones with the grass shader attached
What kind of plugin you use to display button presses in Blender?
this one! github.com/nutti/Screencast-Keys
@@BramwellWilliams Thanks. Great Tutorial.
i tried to recreate it for a 2d top down game, unfortunately i didn't succeed completely :D all grass blades move at the same time.
Awesome tutorial, please more. Btw i think it’s pretty nuts that the values get lost when you change scene. This sounds like an awful workflow
Very nice but too similar color for all grass. Better add noise to the grass color for more variation.
Thanks ^^ This is a really good idea!
godot 4 have blender 3.3 lts support. no need of glb/gltf anymore.
I still desperately need to try that 👀
Its seem not so optimalized