Tutorial: Stylized Grass in Godot 4

Поделиться
HTML-код
  • Опубликовано: 21 окт 2024

Комментарии • 128

  • @blootiger27
    @blootiger27 Год назад +43

    (Tip) If your grass stutters a little bit while swaying, go to your Wind Noise texture & enable "Seamless"

    • @felicaamiko
      @felicaamiko 10 месяцев назад

      whys that fix that?

    • @blootiger27
      @blootiger27 10 месяцев назад +9

      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.

  • @celestialteapot6677
    @celestialteapot6677 18 дней назад

    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

  • @MitchMakesThings
    @MitchMakesThings Год назад +33

    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

  • @me2beats313
    @me2beats313 Год назад +14

    It would be really cool to make this grass interactive as well

  • @sanyi9667
    @sanyi9667 Год назад +1

    man just take the time to appreciate that people can watch this on 480p and still see everything - great attention to details

    • @BramwellWilliams
      @BramwellWilliams  Год назад +2

      Glad that pays off! I spend so long zooming in on everything 😅

    • @sanyi9667
      @sanyi9667 Год назад

      @@BramwellWilliams next time you can just leave it - you used a nice resolution so it works well without zooming as well, I think

    • @rameynoodles152
      @rameynoodles152 Год назад

      Well it sure is nice when I watch on my phone

  • @SanOcelotl
    @SanOcelotl 6 месяцев назад

    you explain everything at the perfect pace, not booring, not fast, great job

  • @davidphillips9366
    @davidphillips9366 Год назад +19

    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.

    • @DT-hb3zu
      @DT-hb3zu 3 месяца назад

      Or move the plane in edit mode at the start. Otherwise, knowing how to set the origin is good to know!

  • @fayelawless2625
    @fayelawless2625 9 месяцев назад

    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!

  • @SETHthegodofchaos
    @SETHthegodofchaos 11 месяцев назад +1

    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.

  • @damngoodtea
    @damngoodtea 2 месяца назад

    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

  • @poggarzz
    @poggarzz Год назад +5

    This one's going to my playlist for sure!

  • @taggy87
    @taggy87 Год назад +4

    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!

  • @bodhiiii
    @bodhiiii Год назад +4

    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!

  • @LucyLavend
    @LucyLavend Год назад +23

    Very well structured tutorial, doing it in visual shaders makes it a whole lot easier to grasp👌
    Also, +1 for a grass displacement tutorial!

    • @BramwellWilliams
      @BramwellWilliams  Год назад +7

      Thankyou Lucy! the improvements to visual shaders have been SUCH a blessing✨

  • @nico-s5k
    @nico-s5k Год назад +2

    I love your tutorials! We really need more creators making content about Godot. Nice work, dude!

  • @TheVirakahScale
    @TheVirakahScale 3 месяца назад

    This was so easy to follow, thank you! I just started learning game Dev, so I appreciate the easy to follow guides ♥

  • @KennethWebb925
    @KennethWebb925 8 месяцев назад

    Amazing content! Love how thorough and articulate you are!

  • @chestnut45
    @chestnut45 Год назад

    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

  • @GaryParkin
    @GaryParkin Год назад

    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.

  • @jeffreystephens2658
    @jeffreystephens2658 Год назад

    YES! I've been waiting for this! This is my project today! I'm putting this grass in my game. :D

  • @majestic07
    @majestic07 Год назад

    Great explanation - thank you! I'd love to see a displacement video.

  • @luismedina4904
    @luismedina4904 Год назад

    Awesome tutorial, didn't know multimesh exists, thanks!

  • @flexy06
    @flexy06 Год назад

    Wow thank you! I would really appreciate a video about a player displacing the grass :)

  • @iivan8730
    @iivan8730 3 месяца назад

    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)

  • @rizekishimaro
    @rizekishimaro Год назад

    thank you for the detail explaining now i can move on to next step

  • @nunyabusiness9433
    @nunyabusiness9433 Год назад

    Another vote for displacement. You've demystified shaders a whole lot for me with this one video.

  • @adamcampbell9806
    @adamcampbell9806 Год назад

    another big help would be showing how to ensure the grass always points relatively upward, even when it's propagated on a sloped surface

  • @TheLastPhoen1x
    @TheLastPhoen1x Год назад

    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.

  • @СеменЕловенко-ю8у

    Bro you amazing! I was looking for fresh tutorial and just found yours. I would love to see deformation of the grass.

  • @dmytrogladkyi
    @dmytrogladkyi Год назад

    Really great explanation of grass shader ❤❤

  • @abranubes9571
    @abranubes9571 7 месяцев назад

    Thank you! Great tutorial, clear and extensive.

  • @holidayexplanation4505
    @holidayexplanation4505 Год назад

    Great tutorial! Seeing how to displace it would be great too

  • @DannyArchive
    @DannyArchive Год назад +2

    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.

  • @gurdit11
    @gurdit11 Год назад

    This is amazing. Please do the grass displacement tutorial :)

  • @VoylinsGamedevJourney
    @VoylinsGamedevJourney 9 месяцев назад

    Grass is so underrated but can have such a big impact on a game ^^

  • @jeffreystephens2658
    @jeffreystephens2658 Год назад

    That looks great!

  • @Kyodaina_
    @Kyodaina_ Год назад

    Right on schedule 👍

  • @sethwhite4635
    @sethwhite4635 Год назад

    Thank you! I look forward to your videos

  • @vellendev
    @vellendev Год назад

    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?

  • @indieology7336
    @indieology7336 Год назад

    Awesome tutorial! Thank you for your hard work on this!

    • @BramwellWilliams
      @BramwellWilliams  Год назад +1

      Thankyou! I spent so long practicing getting grass I was happy with

  • @sigitsatriap6505
    @sigitsatriap6505 Год назад

    thanks for make this tutorial ! love it

  • @iatheman
    @iatheman Год назад

    Just learning gamedev in 3D and this is way too complex 😁, great video!

  • @SosumiInc
    @SosumiInc Год назад

    Thank you for this.

  • @vila4480
    @vila4480 Год назад

    +1 request for displacement underfoot! Great tut

  • @adamcampbell9806
    @adamcampbell9806 Год назад

    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

  • @dbatdev
    @dbatdev Год назад

    Excellent! Thank you.

  • @VepsianGameDesigner
    @VepsianGameDesigner Год назад

    Thanks for help!

  • @DannyArchive
    @DannyArchive 9 месяцев назад

    This looks really good just wish it was interactive as well

  • @centigames
    @centigames Год назад +2

    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!

    • @Weebo04
      @Weebo04 9 месяцев назад +1

      yessss we neeeddd this so muchhhh i love the detail of the node coverage, extremely informative!!!

  • @DannyArchive
    @DannyArchive Год назад

    This looks like somthing from unreal engine its looking really good

  • @Smaxx
    @Smaxx Год назад +2

    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.

  • @lichtmond1482
    @lichtmond1482 Год назад

    Would love to see grass displacement underfoot tutorial !!

  • @AdamJensenReal
    @AdamJensenReal 11 месяцев назад

    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.

  • @binbunYT
    @binbunYT Год назад +1

    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

    • @lifeartstudios6207
      @lifeartstudios6207 Год назад

      it's better to point the meshes normals up in blender instead of in material.

  • @connorlawless235
    @connorlawless235 8 месяцев назад

    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

  • @Crisisdarkness
    @Crisisdarkness Год назад +2

    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

    • @BramwellWilliams
      @BramwellWilliams  Год назад

      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 😊

  • @void9853
    @void9853 Год назад

    Thanks you great tutorial! Please make a tutorial underwater shader 🙏

  • @lichtmond1482
    @lichtmond1482 Год назад

    Thank you !!

  • @АртурАмбаров-ы1ю

    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?

  • @nyuh
    @nyuh Год назад

    whoa !!
    just in time for totk XD

  • @spielville5087
    @spielville5087 Год назад

    Nice. Could you explore a good (e.g. quick) workfow for creating and texturing a terrain in Godot 4?

  • @njdarda
    @njdarda Год назад +1

    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?

    • @BramwellWilliams
      @BramwellWilliams  Год назад +3

      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 ^^

    • @njdarda
      @njdarda Год назад

      @@BramwellWilliams thanks!

  • @user-rx3xl7zn1u
    @user-rx3xl7zn1u 3 месяца назад

    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?

  • @maniksharma9736
    @maniksharma9736 Год назад

    Visual shaders are cool.

  • @walikour444
    @walikour444 Год назад

    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.

  • @JOZUWE
    @JOZUWE 9 месяцев назад

    thank you mate

  • @Twink.destroyer
    @Twink.destroyer 2 месяца назад

    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

  • @Scamalasaurus
    @Scamalasaurus Месяц назад

    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.

  • @dmytrogladkyi
    @dmytrogladkyi Год назад

    Please make a tutorial of grass deformity when the character steps on it. ❤❤❤

  • @dominiksvagr7531
    @dominiksvagr7531 6 месяцев назад

    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.

  • @DT-hb3zu
    @DT-hb3zu 3 месяца назад

    Could you make a tutorial on the new mesh type we got?

  • @jaredchapman5496
    @jaredchapman5496 Год назад

    Thanks!!!😃

  • @SETHthegodofchaos
    @SETHthegodofchaos 11 месяцев назад

    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?

  • @SETHthegodofchaos
    @SETHthegodofchaos 11 месяцев назад

    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?

  • @DannyArchive
    @DannyArchive Год назад

    please make tutorial for grass displacement

  • @SETHthegodofchaos
    @SETHthegodofchaos 11 месяцев назад

    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?

  • @sanketsbrush
    @sanketsbrush Год назад

    how to crush grass under foot ? maybe by using proximity fade node.

  • @owenlloyd2528
    @owenlloyd2528 Год назад

    Thanks :)

  • @YannAbdel
    @YannAbdel Год назад

    Please can you make a tutorial on making stylized trees in godot

  • @AnKlMa
    @AnKlMa Год назад +3

    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

    • @BramwellWilliams
      @BramwellWilliams  Год назад +4

      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

    • @user-un2vb8mr6e
      @user-un2vb8mr6e Год назад

      @@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

  • @renji-hjk
    @renji-hjk Год назад

    Finally i can make some grass to my chars touch

  • @me2beats313
    @me2beats313 Год назад

    Thanks, really helpful tutorial! BTW my like is #300

  • @ganf
    @ganf 7 месяцев назад

    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.

  • @darknetworld
    @darknetworld Год назад

    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.

  • @ethannorthover9507
    @ethannorthover9507 7 месяцев назад

    i would like to see the grass deform around the player!

  • @SETHthegodofchaos
    @SETHthegodofchaos 11 месяцев назад

    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.

  • @shmellyorc
    @shmellyorc Год назад

    :O TOUCH THAT GRASSSSSSS!

  • @PH0EN1XD
    @PH0EN1XD Год назад

    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 ?

  • @ruru9731
    @ruru9731 Год назад

    Could something similar be used for fur on a character?

  • @lifeartstudios6207
    @lifeartstudios6207 Год назад +1

    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.

  • @Infernal_toast
    @Infernal_toast 5 месяцев назад

    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

  • @mr_star75
    @mr_star75 Год назад

    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

  • @ivensauro
    @ivensauro Год назад

    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

    • @ivensauro
      @ivensauro Год назад

      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

  • @n3y
    @n3y 9 месяцев назад

    would it be possible to have this on procedurally generated meshes?

    • @n3y
      @n3y 9 месяцев назад

      I mean how do games like botw seamlessly blend between rock surfaces and grass ones with the grass shader attached

  • @johnmeadow9579
    @johnmeadow9579 Год назад

    What kind of plugin you use to display button presses in Blender?

  • @arturertel
    @arturertel Год назад

    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.

  • @drale2k
    @drale2k Год назад

    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

  • @luqal7112
    @luqal7112 Год назад

    Very nice but too similar color for all grass. Better add noise to the grass color for more variation.

  • @sanketsbrush
    @sanketsbrush Год назад

    godot 4 have blender 3.3 lts support. no need of glb/gltf anymore.

  • @mil_klover375
    @mil_klover375 Год назад

    Its seem not so optimalized