My first step in Strand-based Foliage Simulation

Sdílet
Vložit
  • čas přidán 25. 07. 2024
  • Files are available as a Tier 2 reward on my Patreon: / ghislaingir
    Twitter: x.com/GhislainGir
    Mastodon: @GhislainGir@mastodon.gamedev.place
    0:00 Intro
    0:32 Previous Experiments
    08:48 Hierarchy - Strand From Bones?
    13:13 Hierarchy - Strand From Custom Data!
    14:24 Hierarchy - CSV File
    16:10 Simulation - Structure
    18:28 Hierarchy - Construction
    19:06 Simulation - Algorithm
    27:10 Simulation - Export
    32:00 Vertex Shader
    33:00 Vertex Skinning
    34:59 Outro
    I'm back with another experiment! I hope you'll like the video :) Cheers!
  • Hry

Komentáře • 37

  • @christopherfrancique9912
    @christopherfrancique9912 Před 2 měsíci +1

    So cool bro, cant wait to see the progress

  • @UriahGnu
    @UriahGnu Před 2 měsíci +4

    Amazing work as always Ghislain! I'm getting into compute shaders to generate procedural terrain and foliage myself and it is not easy, look forward to seeing what you do with this in the future.

    • @ghislaingirardot
      @ghislaingirardot  Před 2 měsíci +1

      Good luck with compute shaders 😄

    • @UriahGnu
      @UriahGnu Před 2 měsíci

      @@ghislaingirardot I know right! 🤪 There are some better resources than there used to be, check out Shadeup.

  • @CGC_Studio
    @CGC_Studio Před 2 měsíci

    Nice work.happy to see you progress :)

  • @PeterKLee255
    @PeterKLee255 Před 2 měsíci

    amazing talk! thank you sharing your tricks!

  • @3jsjeosn
    @3jsjeosn Před 2 měsíci +1

    You're brilliant

  • @fouadchakerbzr7601
    @fouadchakerbzr7601 Před 2 měsíci

    Pretty awesome

  • @stereographik
    @stereographik Před 2 měsíci +1

    very interesting and clever solution. reminds me the famous crysis interactive foliage.

    • @ghislaingirardot
      @ghislaingirardot  Před 2 měsíci +2

      It's hard to fathom how much Crysis was ahead of its time regarding tech 🙂

  • @shaunramkelawon
    @shaunramkelawon Před 2 měsíci

    I been struggling with this and performance. well explained

  • @evanlane1690
    @evanlane1690 Před 2 měsíci

    I love this! I've been interested in doing some nesting based gameplay for little forest birds. Vertex based plant movement is awesome for graphical movement, but it's difficult to get realistic interaction.
    I'd like to mix your method for nearby branches with vertex shaders or RTs for the remainder.

  • @tomtawadros
    @tomtawadros Před 2 měsíci

    This is fantastic.

  • @AK-trud
    @AK-trud Před 2 měsíci

    Approximately after 30:00 my brain started to explode :)

  • @colelindbom6012
    @colelindbom6012 Před 2 měsíci

    Really cool stuff, Ive been working on a foliage generator in engine using geometry script and my own implementation of the LSystem branching algorithm.. with some tweaking it could output that point data no problem along with a generated mesh.

  • @adamebadra3171
    @adamebadra3171 Před 2 měsíci

    the goat

  • @Mittzys
    @Mittzys Před 2 měsíci

    blueprint struct 😱😱

  • @shannenmr
    @shannenmr Před 2 měsíci +1

    Have you watched the Foliage section of the Battle-Testing UE5 Next-Gen Systems with Fortnite from GDC2023 where they talk about how they baked the bone influences to Textures and use a Texture with custom MIPS to do the Wind etc ?

    • @shannenmr
      @shannenmr Před 2 měsíci +1

      Also gone through in the Blog Post by EPIC called Bringing Nanite to Fortnite Battle Royale in Chapter 4

    • @ghislaingirardot
      @ghislaingirardot  Před 2 měsíci +2

      @@shannenmr Yes I have. Like I said in the video, the skinning technique I used is similar to the one used for skeletal animation textures or bone-weighted anim textures in general. This has been around for a long time now. Skinning is just one of the many pieces of a giant puzzle. For Fortnite, they baked a wind animation texture from a simulation done in Houdini, so it's precomputed and can't react to player/change in wind etc. This is obviously not what I want.

  • @yonjuunininjin
    @yonjuunininjin Před 2 měsíci +1

    Find a girl that looks at you, the way Ghislain looks at foliage :)
    Let's go round ... I don't even count anymore ! :D

  • @faimenDev
    @faimenDev Před 2 měsíci

    WOw!

  • @kolupsy
    @kolupsy Před 2 měsíci

    does unreal not have the notion of a compute buffer? An array accessible by the gpu outside of having to encode the data as texture data and having to worry about compression and sampling? That would be a lot more convenient and comfortable to use I would think. Also for the verlet integration you can solve the edge length multiple times on the same tick. Then you do not need to set your frequency so high. Just step through the node updates once and something like 4 times through the edge solving algorithm.

    • @ghislaingirardot
      @ghislaingirardot  Před 2 měsíci

      Hey! UE has a compute buffer afaik, but like I said in the video, it's a bit out of my league for now. Baby steps. Regarding substepping, yes, correct. Although some algorithm like XPBD prefer subticking the entire simulation, like I do, for more accurate velocities afaik. Same but different, I'm not sure it'll make a difference once ported to compute but it's something to try :)

    • @kolupsy
      @kolupsy Před 2 měsíci

      @@ghislaingirardot ah cheers. I understand. Compute buffers are actually super simple in my opinion, they just sound scary :D I am not sure how they are implemented in UE but from my experience simulating kelp in unity I can say that they are a blast to work with really

    • @ghislaingirardot
      @ghislaingirardot  Před 2 měsíci

      @@kolupsy Oh yup, nothing too complicated about compute shaders, just that the UE rendering pipeline is definitely less straightforward and less documented than Unity's imho :D I'll just have to bite the bullet and dive into it rly

  • @Oleg_UE5
    @Oleg_UE5 Před měsícem

    Could we use load instead of sample? Its faster and we dont get into interpolation problem.

    • @ghislaingirardot
      @ghislaingirardot  Před měsícem

      You could and you should. I forgot this was an option at the time.

  • @3jsjeosn
    @3jsjeosn Před 2 měsíci

    "Its a blueprints solution so its not performant at all" does this mean blueprints arent meant for priduction in these cases?

    • @ghislaingirardot
      @ghislaingirardot  Před 2 měsíci +2

      There's no absolute truth. My statement was for this specific use case. Blueprint *is* definitely meant for production. Just have to know when it is and when it is not. Doing a custom simulation that is subticked at 240fps isn't what blueprints were designed for. Convert this to CPP and you get code that is orders of magnitude more performant. For gameplay/event-driven logic (GAS etc.) that is called here and there however, you often don't get as much performance by converting to CPP and some things are infinitely faster to code in BPs and/or must be exposed to a higher level in the engine for level/game designers etc.

  • @JieDu-yj2vd
    @JieDu-yj2vd Před 2 měsíci

    It's more expensive to make vegetation interaction based on bones, so it's not as good as shader.

    • @ghislaingirardot
      @ghislaingirardot  Před 2 měsíci +1

      Clearly, you haven't watched the video. This is not bones & it's a shader

    • @JieDu-yj2vd
      @JieDu-yj2vd Před 2 měsíci

      @@ghislaingirardot Sorry, I didn't finish reading it