Create Dynamic Water Ripples With Geometry Nodes And This Crazy Trick: Blender 3.6
HTML-код
- Опубликовано: 24 июл 2024
- In this video we create some dynamic water ripples. I got the math for adding the gradient to time and plugging it into a texture from @PrismaticaDev video on sin distance fields.
Also I don't wanna talk about how many ummmms I edited out of the recording and I still didn't get them all (sorry not sorry)
Project file: benjamin0weimer.gumroad.com/l...
Very helpful video - thank you!
Thanks a lot Benjamin ! It looks as if even i will be ready to follow you. Well explained by you. I learned so much. Thank you ! Greetings from germany
The rock's granulated shader looks amazing, would be a nice video showing up how to make it!
There are some shorts on my channel that go through the steps
Amazing effect. Will be using that in a future vid
Great tutorial, thank you! The result looks awesome. 👍👍
Glad it was helpful.
The collection info node may default to Original, Make sure it is set to RELATIVE.
Edit: I also now have the project file provided in the description
you are really helpful man but I need to suggest you need a new mic or get closer to mic I bearly can hear your voice
Underrated bro you deserve more views and subscribers, nice talent 👍
Thanks!
Amazing tutorial, subscribed! Thank you
Speechless! Great stuff.
ive been looking for this everywhere, thank you!
Glad I could help!
Dear Benjamin, i've just subscribed. This Tutorial by you was my entrance to Geometry Nodes. Greetings from good old germany.
Thanks! I'm so glad you found it helpful.
Awesome vid! Thanks for sharing.
Thanks for this great tutorial, just what I was looking for!
Glad it was helpful!
This is genius and exactly, thank you for sharing. 🙏🙏🙏
Glad it was helpful!
Great tutorial! Thanks a bunch for putting this together 🙏 I got everything right except the water ripples weren't as circular around the edges, but very pleased.
Oh excellent what a great resource, I've assumed something like that was possible, but that is such a clean solution.
OMG!! incredible! i love it *O*
Thank you so much this is so helpful!
Thanks glad it was helpful!
That change to the name of the MixRGB node always trips me up too.
A helpful bit of advice you might need, when I hooked up my Collection Info to the Geometry Proximity the whole mesh went white, the good news is it's easy to fix with a 'Realize Instances' node. Just thought that might help some people.
Hey guys if you scaled up the plane don’t forget to apply the scale! It took me almost an hour to realize that I went wrong there
Hehe yeah that can get you, glad you figured it out.
very cool ,thanks😁
Thank you for this incredible helpful tutorial. That's the power ob b3d community, quite unique. To find tutorials like this one. Cheers!
Absolutely, one of the highlights of using blender is the availability of resources.
5:40 Yeah it's the top one because in 3.4 (I think), they removed the mix RGB so now it is the Mix node which include most all type of mix.
And it's showing in your quick favorite because while you cannot select the old one anymore, it is still there for compatibility reason (To not break literally every material because of that)
Yeah I've since figured that out, the new ones cool cause more features but I do wish it defaulted to color settings so it wasn't extra clicks every time I want to use it.
@@benjaminweimer6327 Same here. Color settings are more used so it would be better.
Also, another way to get the old mix node is to use the mix shortcut of node wrangler. This still do the old mix node.
@@benjaminweimer6327 I think you can search and pull it in as a “color mix”
The whole video is great but that array trick solved a problem I had a year ago.. IT'S SO OBVIOUS WHY DIDN'T I THI....
Great way of showing how to get proximity between objects to affect shaders, cheers
Glad it was helpful if a bit late lol.
Superb tutorial, will try to recreate this effect
Noice, glad you found it helpful!
This is so cool!
Awesome tutorial, thanks a lot!
Thanks glad you found it useful.
Great lesson thanks!
Thanks glad you found out helpful!
I only watched till minute 5 but i can say that getting the shorelines to work does still work in blender 4.0.2, thank you so much!
benjamin the goat
Cool tut, saves ressources ;)
This is so amazing :)
Thanks
Great tutorials, thanks for the resources on YT.
Thanks!
This is awesome!
Thanks
Beautiful! Now I gotta figure out a good way to make rain to go with it
You could try building a point cloud in geo nodes, then the putting rain drops (spheres would work) on the points plug that into the (realize instances before the geo proximity node, and move that down through your water plane, you will need a fairly dense water plane.
Really Appreciate the tutorial🔥, i couldn't remember how to do this
Glad I could help
Really informative
Thanks
Just amazing
Thanks!
I like people who love their job i will subs
i tried to do this on a shader level starting with the AO node and then work my way up with gradients and noises, but failed miserably, cant wait to see your approach
That's an interesting idea, it may not work with water ripples but I feel like you could get some cool effects basing it on ambient occlusion.
thanks a lot dude!
Glad you found it helpful!
And another one ! (I mean, my sub ;)
Thanks, great tutorial !! Now, let's see if I can manage anything at all :)
I believe in you, as long as you learn a single new thing then you're learning.
Great tutorial!
Thanks! glad it was helpful.
Really great tutorial
Thanks
//BOW//
arigato sensei
u are amazing thank you
Glad it was helpful
4:07 I had one heck of a time trying to make the VALUE node to work in Blender 3.6.2
I deleted the node and inserted a new one, I had the timeline set to frame 1, etc...
I did this several times.
It almost seemed like the #frame just wasn't responding at all.
Then for some reason it started to work. Crazy!
Weird never had that issue before.
So cool and helpful! Thank you for sharing it with us man!
Glad it was helpful!
Looks great! How do you increase the size though? I have a massive boat in the ocean and its making these tiny ripples. I want the actual scale to be much bigger EDIT: Ah I just scaled the plane up and it made the ripples bigger. Seems to have worked fine
This is really awesome, thanks! Is there a way to limit the ripples strictly to where the intersection of objects occur? For example I've noticed that if you have a second plane and place it just a smidge above or below the ripple plane, the ripple will interact with the nearby plane, even though they don't intersect, if that makes sense. It's as if the the proximity is searching a little bit into the z axis above and below to find objects to ripple around.
The easiest way is to remove it from the collection. I'm not sure if there's a way to make the geometry proximity not check the z axis. You could probably check what's above and below a certain threshold and remove it from the selection.
@@benjaminweimer6327 Thanks, I'll give that a try and keep playing around with it.
Hey Benjamin this is some cool tutorials
everything works thankyou so much for this
Tho I wanted to know if you know a way to make the ripple stay and fades away when an object is moved?
Thanks a bunch 👌
Thanks, I'm not sure how to get that effect specifically, I'm sure you could do it with simulation nodes but I haven't touched them at all. You can also get something kinda like that using dynamic paint for the gradient but it's great, and a gigantic pain to get working. One way I'm sure you could do it with geo nodes is make you cider geo duplicate constantly and have those duplicates shrink over time but not move, so when you move your main mesh away it will leave a trail of shrinking meshes, then make those meshes invisible, it might give the general look your going for. I'm not sure if that would work or not but it seems doable.
@@benjaminweimer6327 hey benji thank you for the respond
these are good ideas hmm I guess I'll have to find a work around for now then
again thanks you so much and keep up the good upload my man 🙏
4:33 - You can also do `#frame/75` in the Value node, but then I suppose it's harder to modify...
Yeah, it works great if you know what number you need I like separating it out so it's easy to change.
Thx for the amazing tutorial, I just don't know how you make the ripples glow when your plane is transparent. Could you explain how you made the ripples glow? ^^
Sure, so you plug your ripple mask (what would be plugged into the mix RGB to define the colors) into the emission strength on the principled bsdf, then you change the emission color right above that to whatever color you want it to glow. If you want it brighter add a math node set to multiply right before the emission strength input and crank up the amount. Let me know if you're confused about anything
if you could re upload with louder audio that would be great but otherwise incredible
To add to this: I usually personally aim for voice to be between -12 dB and -6 dB. It works great for talking content. RUclips normalizes the audio anyways if it's loud enough.
12:50 came for the water effect, rushes to my desktop to try and make the accidental kamehameha
Hehe (off the cuff ideas are often the best ideas)
So it works fine for me in viewport (textured mode) and EEVEE render, but in Cycles render the plane just changes to a solid color.
And I tried downloading your Gumroad file but it didn't give me a zip to download after "purchasing".
Using version 3.1.0. The "color attribute" node is a merged "attribute" node, with a "color" socket, but that worked the same way as in your vid.
Hi there! this tutorial is amazing thank you so much! i guess i only have a problem where my collection info node keeps being in instance instead of geometry and i don't know if it's affecting the results ? i cant seem to change it
You should be able to stick a realize instances node after your collection node which will turn the objects in the collection from instances to real geometry.
Wow😮
I would use Geo nodes into another color attribute for encoding the "time" instead of a value node with a driver. Drivers are a bit less reliable moving from file to file, especially in materials which don't have library overrides yet.
That's an interesting idea, another option is use keyframes with linear extrapolate but your probably right, what you said would probably be pretty reliable for switching projects.
@@benjaminweimer6327 and you could even extend the idea to include more settings (like wave size or frequency) in the Geo Nodes, just to make it easier to adjust!
This is cool. A displacement node would add that extra touch
Tis true, can't that in Eevee and I like keeping tutorials fully in Eevee if possible but it could add a lil flare
@@benjaminweimer6327 Yeah, I get it. I am going to go through this tut and see what I come up with. Thanks
genial !
'collection contains current object'
i see this error under To min option in modifier tab..
sound is very soft despite max all volume.
Yeah I know, will fix in future stuff.
If this was imported onto Unity would it still work? awsome stuff btw!!!
You would have to rebuild the functionality in unity using unities systems. But the overall technique and math should be the same in other programs. The biggest thing is that you will have to do the mesh proximity in a different way, I have seen it done though so I know it's possible.
what do i do if the whit circle does not show up at 3:50 also what do i do if the floor is changing colors and not making the rings
Did you subdivide your base(water) plane?
hellos! was just wondering what would you use/how would you render this?
im not sure if i missed anything, but when i looked at it in the fully rendered view in eevee and cycles, the whole plane was just too blaringly bright. (i was only attempting the water ripples effect, not the cool ripples at the end.) i hope you could help me out here! thank you!
(ps. overall, nice tutorial btw :D appreciate the video)
The only thing I can think of that would make it too bright is if you have the emission turned up too high. Check the emission strength in the material and make sure it's not too high if you have a node driving the emission strength add a math node right before the emission strength and set it to multiply with a number that's less then 1. If it's not an invasive material make sure you don't have any lights in the scene that are too bright. If none of these fix it lemme know.
@@benjaminweimer6327 hey there, tried it both things out! but it turns out i had an extra light in the scene, and it had reverted to a ridiculous number (1000+W oof) without my knowledge, must have fumbled with it along the way on accident haha. thanks again for the tips :D
Love it. How the heck did you figure this out? Just mess around and find out? XD
I based it on some of the math from prismatitadev's distance field tutorials for unreal, (it's where I got gradient + time into a texture) but the rest is just figured out.
I love how literally everyone started using geometry nodes for motion design, forgetting that a lot of it can be done without them.
I also love the quality of excuses my brain makes for not learning geometry nodes.😅
Yeah, I've still barely touched them.
yeah but using only modifiers you don't get the data flow and it's hard to transfer attributes. Obvi you can use wave sims to do the same thing... but you wouldn't really have access to the data. It's lower level creating.... which can be more work but gives you more power. Houdini FX has something to say about that concept for sure...
I should say... you might be able to do something very similar with the dynamic paint set to waves... but once again if you use this method and kept tweaking after some time building it you could eventually be more powerful. or it would be cool if you could get dynamic data in geo nodes. Which you actually can... anyway procedurals is def. the hardcore method for creating effects.... idk. When people talk about proceduralism i don't know if they really understand the power it has. It's control from bottom up
Hey awesome tutorial! I want to implement it in my environment but I'm not sure how I can change the size (or rather the radius) of the ripples. Currently they spread over the whole plane, can I add a Node somewhere to have control over the size? (changing the "To Min" doesn't work). Thanks!
Make sure you have scale applied on both your plane and objects effecting the plane. Also make sure your plane have enough geometry. Make to max is also set to 0.ley me know if you check these and still have the issue.
@@benjaminweimer6327 Sorry for the late reply! Do you mean applying scale with Strg+A? That helped with the size of the ripples, but they still go too far into the water. (From object to object I mean) Adding more subdivisions doesn't change anything and To Max is already set to 0.0
@@keyeyey Hmmmm. if nothing else you should be able to select everything with ctrl + a, then scale it all up then apply scale, and then just repeat playing around with the overall scale till you are happy with the size.
@@benjaminweimer6327 Okay I think I figured out the problem. The shader works but because I'm trying to make a RIVER that flows though a sculpted landscape Blender doesn't understand that the part inside the landscape also should have ripples. Even if I delete the faces under the water with the Boolean modifier (applied) and even separate the Islands it doesn't work. I'm not sure if this is fixable but thanks for the help! :D
hello im following your tutorial. Great video btw. There is a issue when I trying to view in render cycle mode, the ripple wont effect the surrounding object, unlike material preview and eevee render
It works in cycles in the project file. Are you using transparency at all? If yes try just adding a math node set to multiply right before the transparency mask is used and crank it up. It might just be an issue with values mapping slightly differently between the renderers and it just needs to be a bit higher.
I may have missed it somewhere but is there a way to use it with alpha transparency? What I mean is that in the intro part you showed it was possible to get the ripple effect but with transparency instead of the water colour.
I believe I explained it towards the end of the video, but if not. You just take the ripple mask that would go into the mix rgb where you set the colors and instead plug it into the alpha slot in the principled bsdf. You may also have to set the blending mode to either alpha clip (recommended) or alpha blend. I then also set the emission color to purple and turned up the emission strength to make it glow. Let me know if you have any other questions.
@@benjaminweimer6327 That did it thanks!
Glad you figured it out!!
Hello is there a way to let the ripples interact with Caustics if you wanted to?
Plug the ripples mask into a bump node and then that into the normal, make the whole material transmissive by setting the transmission weight to one.
Huh, it works, but the gradient seen at 3:50 is smooth and mine is not, it has resolution based on the subdivisions of the plane. On 4.1
When I added a collection info node, it shows instance not geometry. How to fix that?
Make sure the collection is set to relative, and add a realize instances node right after it
how can i add this effect to the asset library? both the material en the geometry nodes tree!
You should be able to add the water plane to the asset library. I believe it will also bring dependencies so it might bring your collider collection as well but I'm not sure.
with the blur attribute note u can make it better
Very cool, I didn't know they added that.
How do I scale the size of the ripples. they are way to big for my project
Try adjusting the values of the remap range in geonodes, and making sure the scale is applied.
Hi nice tutorial, just wondering if you can do this in maya?
Maybe, if Maya has a shader editor and someway to detect proximity then probably I don't have any experience in Maya to know.
Would something like this also work for making ripples on a character model that is like a water spirit or even say a slime character?
I'm not sure exactly what you mean, but you can theoretically add the ripples to any mesh, you might even be able to plug the ripple mask into displacement and get the mesh to have ripple deformations which could be what you're thinking for a slime character.
@@benjaminweimer6327 First thank you very much for the quick response.
Second, the context on type of slimes, like what are found in say dragon quest for an example. Imagine someone poking one questioningly/inquisitively. I am curious if it was possible to utilizing the above info for making ripples in on non flat surfaces.
Since you demonstrated on a flat plane I was unsure this technique would work on a non flat kind of shaped surface. (since some past tutorials I have followed rarely show on a non flat surfaces.)
Oh yeah you could totally use it for something like that!!
6:05 There is something wrong with how you used the noise. It offsets the center of the ripples (bottom right is ok, top left is different). Not sure how to improve (multiply instead of mix ?). Besides of that, great tutorial !
Hi, Is it possible to bake and export the animation as png sequence, so that I can use it in some other software?
Ideally you would recreate it in the other program. For instance If you're working in unreal you could use sin distance fields instead of the geo nodes stuff, and the rest of the material would be largely similar. That being said you could set it up to render out as a black and white map by just plugging the color ramp before the mix node into the material output then turn all your collider objects black. Then you could point an orthographic camera down at the water plane (I have a short on my channel about rendering a texture off a plane that shows this) then just render that out as an image sequence. I can't really think of a way to render it on a large scale but you could render out single ripples and manually place them where you want them.
@@benjaminweimer6327 okay. Thanks
Does the number you divide by effect the speed of the effect?
Yes the number you divide the #frame value node by will change the speed of the ripples.
The more you divide the #frame by, the slower the animation.
Can the wave ripple movement be reversed so that the waves look like they're moving towards the objects?
Sure, just flip the sign in the divide node so if it's a positive number make it negative and If it's negative make it positive, that should work lemme know if it doesn't.
Could we control the wave's frequency? thanks.
You should be able to increase the scale of the nose texture and then tweak the factor of the mix to make it more circular again
how to mix the shader so it can fill the area of water that doesnt have the effect?
I'm not exactly sure what you're asking. Do you mean you want to make the ripples bigger? Do you want ripples where the final effect has just blue water?
👀
Hello there Benjamin, I have some question. I found this example on twitter that show a ripple sim with geo node. Any chance you might be able to share some tips?
Do you have a link or something?
@@benjaminweimer6327 yes I have but my comments keep get deleted. I seams I can't share any direct link
Can I reach you out somewhere else? wait I will try comment outside this thread. Hope sharing the name of the tweet person would be enough.
I did all and it didn't work for me and I already checked and I repaired the relative and the group and put it in the nodes and did all again but it didn't work, can someone explain pls 🥲I really want to make this tutorial on my blender
What specifically isn't working? Also I have the project file available if you want to poke around in and see how it's set up.
trying this in 3.5 blender and its just a fully coloured plane, (subdivided, applied, everything has been followed, set to relative) the "color" input just changes the color from black to white
Your plane might be too small. Try scaling everything up and applying scale.
I have the same issue.
Edit: nevermind, I was using blender 3.1 instead of the newer one.
Weird I'm surprised the version made a difference it should all be mostly cross compatible, glad you figured it out tho
I made a sphere after getting the plane water rippling, added the effect to the sphere and it works, but as soon as I move it in any direction, the rings on the sphere don't update. If I change the origin to 3D cursor, then it updates the location of the rings. Seems like you didn't have to do that for yours. Any ideas?
Are you talking about when you use an array to layer the sphere?
@@benjaminweimer6327 Just when creating a new sphere and linking the material and copying the modifier before adding an empty and an array
Weird, I can't find anything that replicates that problem. Have you tried just deleting the sphere and trying again? The only thing I can think of it's some weird issue where the material stops updating frame by frame but I have no idea why that would happen.
I have followed every step of this and for some reason the nodes dont seem to be working is there anything you could suggest?
It depends which part isn't working? Do the geo nodes make the circles? I also have the project file available for free if you want to compare them.
Idk what I did wrong but the ripples are traveling on the whole plane, not close to the object like in the video. If that makes sense?
It means something is probably going wrong with either the geometry proximity or the remapping of it. so play around with the map range node. Also make sure scale is applied. Let me know if you keep having issues.
Sorry for the trouble, the page I mention is under user HotdogNugget
Ok I'll check it out it's probably deleting comment with links to prevent spam
So I had a look and what I do know is that he is using simulation nodes that are in some of the alpha branches of blender. I personally haven't played around with them at all but he does have a screenshot of the nodes he used on his twitter
@@benjaminweimer6327 yes I there is the node example. Do yo think it still use proximity to calc the object and surface collision. Like your tutorial, but with spread and fade with simulation loop?
Maybe in all honesty I don't know what he's doing well enough to say, if you're just wondering if you could combine the effect then yeah probably. You could probably use the mask of his effect as a color attribute and use it instead of the gradients
@@benjaminweimer6327 thank you, sorry if my question is confusing. Just want to discuss it with someone. Thank you for your effort in helping.
This would be perfect for a super sayain effect
Do it! Experimenting is a great way to learn.
Everything works and the tutorial is reall good, but I can't seem to find the reason why after adding the principaled bsdf node it just won't glow, I have blender 3.6 if that changes anything for the situation.
Did you set both the emission color to not black and made sure the value you are inputting into emission strength is greater then one?
@@benjaminweimer6327 Yes, but it just makes the water look whiter, it doesn't have that glow. I'll look around, maybe I'll find my mistake 😄
If your in Eevee make sure that bloom is turned on in render settings. If your using cycles you will have to add the bloom in compositing with a glare node set to fog glow.
Does this still work? I've followed this to a T restarting multiple times and cannot get the geometry to affect the shading, the only difference I've found is my collection reference outputs a instance instead of geometry, any help would be greatly appreciated!
When I open the file in 3.6.4 it still works, although blender might be doing behind the scenes stuff to keep it compatible. I have the project file available if you want it, but as for your issue I cant think of anything specific that would cause it. make sure your collection info node is set to relative, make sure you have a realize instances node after it. Make sure the name in output attributes is exactly the same as the name in the color attribute node (including caps). Also check if scale is applied and play with the values in the map range to make sure that the gradients aren't too small to see.
@@benjaminweimer6327 I really appreciate the reply! I will continue giving you watch time by trying until I succeed brother! Thank you so much!
i follow it stap bij stap but i dont get the ring around je object sombody know how to fix that but great video zo far i can follow
Is that when you plug the attribute node directly into output color in the shader? Make sure the attribute names match including caps, and play around with the values on the map range.
How did you get the ian hubert scans?
You can get a ton of his assets, as well as a bunch of tutorials on his patreon totally worth it in my opinion.
Why aren't the color attributes in my Shader editor options?
Is the the color attribute just not appearing in the list on the node or is there no node at all?
@@benjaminweimer6327 when I add the SHIFT A node, there is no color attribute option in the search menu
Weird I just checked and it's definitely a thing in the latest version of blender. You may also be able to just use the "attribute" node but I'm not sure. I guess make sure it's spelled correctly. You can also check the add drop down under input, for me it's the fifth one down.
bro how your water effect is glowing that much can u please tell me
Have you tried using an emission shader? You could also try plugging your mix rgb with the colors into the emission slot on the principled shader and playing around with the strength.
i wonder how easy that would be to make in unity?
I've seen it done, I know in unreal you can use sin distance fields, unity might have something similar.
@@benjaminweimer6327 maybe, cool video anyhow 👍