UE5 Procedural Grass Using Bezier Curves pt. 5: Wind

  Рет қаралды 1,988

Alex

Alex

Күн бұрын

Пікірлер: 47
@Stygmire
@Stygmire 4 ай бұрын
Again, I never thank you and all the others who break this stuff down, enough. Always appreciated. Knowledge-givers are heroes.
@TechArtAlex
@TechArtAlex 4 ай бұрын
Thanks for the support!
@Stygmire
@Stygmire 4 ай бұрын
@@TechArtAlex And I saw you did take a nod to preserving-length of the blade. Thank you!
@TechArtAlex
@TechArtAlex 4 ай бұрын
@@Stygmire Definitely! I'm glad my idea worked and turned out reasonably simple to implement. I think the formula would need to change for higher order (ie cubic) curves but I was really happy with the results here. Since a lot of what I'm doing is just adapting great work that was already done by Sucker Punch, it's nice to be able to make a meaningful original contribution.
@mitchellhansen
@mitchellhansen 4 ай бұрын
Thanks for making these videos. The performance gain by making grass in the manner makes it viable for use in VR archviz.
@TechArtAlex
@TechArtAlex 4 ай бұрын
Thanks for watching! Yeah, often works a lot better than alpha masked grass these days.
@mimicry5813
@mimicry5813 4 ай бұрын
Thanks for these video series. Can't wait for another one. Looks wonderful.
@TechArtAlex
@TechArtAlex 4 ай бұрын
Thanks!
@haoyuwu5930
@haoyuwu5930 4 ай бұрын
Thank you for such great content. As a new tech artist, your stuff are really helpful!
@TechArtAlex
@TechArtAlex 4 ай бұрын
Thank you! Glad to hear it's been helpful.
@aryankissoondoyal1281
@aryankissoondoyal1281 4 ай бұрын
You are awesome! Your videos are really well made in terms of proper explanation and this technique of creating grass is so much better and it even look better than the masked ones which can appear blurry and shimmery sometimes. I am really looking forward to this series!
@TechArtAlex
@TechArtAlex 4 ай бұрын
Thanks! Still lots of stuff to go over.
@BooneyTune
@BooneyTune 4 ай бұрын
This looks great. Really liking the series and looking forward to the optimization
@TechArtAlex
@TechArtAlex 4 ай бұрын
Thanks!
@AaronFhd
@AaronFhd 4 ай бұрын
Looking great
@TechArtAlex
@TechArtAlex 4 ай бұрын
Thanks!
@vaanidel2117
@vaanidel2117 3 ай бұрын
This is insane. EDIT: ha my dumbass should've just watched the vid first. Nice stuff here!
@fania2k4
@fania2k4 19 күн бұрын
Great info thank you. Lots to learn here, I was able to have each blade rotate via RotateAboutAxis, while keeping the blade shape intact. Similarly I tried to add a push away functionality. Instead of rotating, I want to move the blade a bit when the camera is passing, like a wiggle effect. Modifying the X and Y tends to bend and stretch too much, kind of like the Tilt function you made, but distorts it way too much. I'm passing the main WPO path and adding to the modification. I'm applying a sphere mask so I can use that to push away.
@QuickPixls
@QuickPixls 4 ай бұрын
Man you are the absolute best! Like for real! Finally some Ghost Of Tsushima stuff man Been trying for ages to get it like yours Like I thought we do need to use the compute shaders, so I went on learning the rendering pipeline of unreal just for that! only if I gave it a 2nd thought Thank you so much for the videos
@TechArtAlex
@TechArtAlex 4 ай бұрын
Yeah, I wish Unreal made compute shaders easier to integrate. Niagara has kind of become a hacky alternative to compute shaders. But I think PCG will be able to deliver most of the functionality they were able to with their computer shaded. Not sure which will perform better, but at this point I'm already rendering 6x as many blades of grass as the original release, even without optimization so I think it's safe to say this can work well enough.
@christopherfrancique9912
@christopherfrancique9912 4 ай бұрын
looks great
@TechArtAlex
@TechArtAlex 4 ай бұрын
Thanks!
@dudeok8457
@dudeok8457 Ай бұрын
Thanks for this great tutorial, I have a question is it possible to rotate the grass facing the wind direction / or certain angle , if yes could you tell me how and thanks again for this great tutorial.
@TechArtAlex
@TechArtAlex Ай бұрын
Yes. After all other WPO is prepared, you can use the rotate about axis node. You will also need to rotate the normal vectors in the shader in a similar manner. Here is an example node setup: i.imgur.com/TlROHY1.png
@dudeok8457
@dudeok8457 Ай бұрын
@@TechArtAlex Thanks dude this is exactly what i needed thank you
@TomDenny-s7n
@TomDenny-s7n 3 ай бұрын
Thank you so much for this series. I have been trying to implement the wind system shown in this video to my grass meshes (from videos before) and it just disappears and I think I may be missing something. Any ideas? Or maybe a screenshot of the wind shader that I could check mine against?
@TechArtAlex
@TechArtAlex 3 ай бұрын
A disappearing mesh may have something to do with the mesh bounds, or just displacing the mesh far away accidentally. Make sure you're only applying the wind to p1 and p2 and not p0.
@TomDenny-s7n
@TomDenny-s7n 3 ай бұрын
@@TechArtAlex Ah, Thank you so much for the quick reply. It turns out because of my messy code I was applying wind to P0 not p1. Once again thank you for this brilliant series.
@Vortex-jk7lb
@Vortex-jk7lb Ай бұрын
Is it possible to dynamically change the grass facing direction based on wind and thanks for the tutorial.
@TechArtAlex
@TechArtAlex Ай бұрын
Yes, you can use the rotate about axis node to rotate the grass in the shader based on wind and/or an interaction system. You will need to apply this rotation after the bezier curve is constructed. Also don't forget to rotate the normal vectors too.
@Vortex-jk7lb
@Vortex-jk7lb Ай бұрын
@@TechArtAlex Thanks for quick reply
@Vortex-jk7lb
@Vortex-jk7lb Ай бұрын
@@TechArtAlex I tried it. it rotates the mesh but the shape of the grass doesn't stay the same it turns back to a plane any fixes if possible and thanks again.
@TechArtAlex
@TechArtAlex Ай бұрын
@@Vortex-jk7lb I made an example node setup i.imgur.com/TlROHY1.png Remember that you will also need to rotate the normal vectors in the shader when rotating a mesh in shader. See my video about how to rotate normals if you need help with this.
@Vortex-jk7lb
@Vortex-jk7lb Ай бұрын
@@TechArtAlex Thanks man it works good stuff.
@Cloroqx
@Cloroqx 4 ай бұрын
Does this approach play well with Nanite + VSM? With it being an opaque shader, I feel as it should work nicely.
@TechArtAlex
@TechArtAlex 4 ай бұрын
As of now I find it works a bit better with nanite disabled. VSMs would be invalidated every frame, which isn't ideal. One advantage of non-nanite geometry is that you can control shadow casting per LoD. This means you can set VSM up on just the close grass, but use contact shadows on the distant grass for much better performance with very little quality loss. Meanwhile nanite draws into VSM regardless of distance, and both the main nanite and VSM nanite passes will have lots of overdraw with so many small meshes. Being opaque, it does perform significantly better than a masked version would.
@Cloroqx
@Cloroqx 4 ай бұрын
@@TechArtAlex It's probably slower due to overdraw or WPO. Contact shadows should be good enough regardless. Thanks!
@SpaceShrimp
@SpaceShrimp 4 ай бұрын
nice ! but maybe controlling the blade curvature based on the intensity of the wind could create a better result?
@TechArtAlex
@TechArtAlex 4 ай бұрын
That is effectively what this is doing. The sine wave is moving the tip and midpoint up and down, which will increase and decrease the curvature of the blade depending on how intense of a wind swell it is hit by. This is most noticeable when I set the tip wind strength to 0, so only the curvature of the blade is changing and not the overall tilt. Naturally you can tweak the specifics of the implementation, but the core methodology is that the wind should be animated by shifting the control points, which is what defines the curvature at the end of the day.
@SpaceShrimp
@SpaceShrimp 4 ай бұрын
ok cool ^^ good job, you are. great inspiration ! :)
@TechArtAlex
@TechArtAlex 4 ай бұрын
@@SpaceShrimp Thanks! Glad you're enjoying the videos
@israelanthony3129
@israelanthony3129 Ай бұрын
I keep getting an issue with swell values causing the grass to rotate/position itself beneath the ground. Do you know what might be causing that? It seems to also only output one color to the debug rather than the red/blue/green I expected. Maybe there has to be something with my noise texture?
@israelanthony3129
@israelanthony3129 Ай бұрын
I realized that I was sampling my nosie texture as a Color and not a Linear Color so that caused my swell values to go wrong. Still having the problem of my blade's tip being positioned beneath the ground making half of it glitch into my landscape.
@TechArtAlex
@TechArtAlex Ай бұрын
Is the wind pushing the tip beneath the ground or is it beneath the ground even when the wind is off? Keep in mind the wind is basically bobbing within a predetermined range of motion defined by the texture, so you will need to make sure that the rotation determined by the grass spawner doesn't place part of that range below the ground.
@israelanthony3129
@israelanthony3129 Ай бұрын
@@TechArtAlex When I turn the swell off, it flutters normally and stays above ground in the preview within the material editor. When I have it on, it sends the tip below the ground, and I'm not sure where my calculation goes wrong to make that happen. I keep wondering if my texture is the issue because the flutter works in isolation and the swell seems to be calculated as yours is, which leaves only my texture's data to be different?
@israelanthony3129
@israelanthony3129 Ай бұрын
At high values the swell flattens the blade, but my tip seems to be at (1, -1) instead of (1, 0)
@TechArtAlex
@TechArtAlex Ай бұрын
@@israelanthony3129 It's possible it could be the texture although that seems unlikely. You could test with the one I'm using, it is just part of the default engine content.
Noodles Eating Challenge, So Magical! So Much Fun#Funnyfamily #Partygames #Funny
00:33
Как Я Брата ОБМАНУЛ (смешное видео, прикол, юмор, поржать)
00:59
Натурал Альбертович
Рет қаралды 4,4 МЛН
Do you love Blackpink?🖤🩷
00:23
Karina
Рет қаралды 17 МЛН
How Not To Make An Environment
24:43
caponeart
Рет қаралды 20 М.
Anime Grass Tutorial | Blender (include Project Files)
18:28
trungduyng
Рет қаралды 21 М.
3 Hours vs. 3 Years of Blender
17:44
Isto Inc.
Рет қаралды 6 МЛН
How To Create Epic Procedural Dungeons In Unreal Engine 5 - Part 1
1:48:31
Why Unreal Engine 5.5 is a BIG Deal
12:11
Unreal Sensei
Рет қаралды 1,1 МЛН
Noodles Eating Challenge, So Magical! So Much Fun#Funnyfamily #Partygames #Funny
00:33