Transfer Your Attributes - Geometry Nodes 101
Vložit
- čas přidán 16. 07. 2024
- Check out my new procedural modelling bundle: www.nodegroup.xyz/procedural-...
Advanced Geometry Nodes course: www.canopy.games/p/advanced-g...
Grab the beginner course: www.canopy.games/p/bcs-geomet...
Want to learn about the new Geometry Nodes? You're in the right place!
I've got a 6 video crash course coming right up!
$40 off a holographic display? Yes please. lookingglass.refr.cc/erindalew
Geometry Nodes Toolkit: gum.co/erintools
Merch? erindale.threadless.com/desig...
Discord: / discord
My Courses:
www.futurly.com/s/store/cours...
www.canopy.games/p/bcs-geomet...
www.canopy.games/p/procedural...
Contents:
00:00 - Intro
00:40 - The Node
03:17 - Extrude Spline Example
09:10 - Outro
Patreon: / erindale
Ko-fi: ko-fi.com/erindale
Twitter: / erindale_xyz
Instagram: / e.r.i.n.d.a.l.e
Gumroad: gumroad.com/erindale
Blender Market: blendermarket.com/creators/er...
Music Attribution:
Afterglow - Kulpa
Shoutout to the developers for getting us these tools in time for Nodevember!
true
excited to learn from your experiments again!
and stable af too. Like at the final hour.
The Devs need to rethink their use of the word "target". Something like "source" would be far more appropriate and intuitive. But, to focus on the video at hand, thank you for this! Excellent teaching as always.
Agreed! Target is very misleading!
I agree that it should change. But I also understand how the "target" is logical, since the attributes are being calculated "backwards"
It is "source" on 3.1, I wonder if that was on your suggestion.
@@glennet9613 I'm smart but there's wayyy smarter people who have been working on this. I highly doubt it was li'l ole me...
damn, i wrote the exact same thing, then saw your reply!
Thanks for these tutorials, they are extremely helpful to understand how the new fields system works. Love your teaching style, and your voice is quite relaxing to listen to and verging on ASMR :D
Haha thanks 😁
Hi Erindale, I enjoyed a lot your other GN 101 videos - I watched them each two or three time and i understood and they both helped me on my project AND were pleasing to watch and got me evenmore motivated to learn GN.
I gotta share that this video however goes above my head.
I'm not sure its 101.
it requires to much specific knowledge - it seems to me you're more focusing on explaining how to already use transfer attribute to extrude, rather than starting by demonstrating what this node is and how we can our-self use it.
I'm not sure this is the easiest way to show what is this node but it's probably a very usefull tutorial for intermediate
I really tried to go along step by step but it's too complicated and I have too many questions and not the energy to go through all of them.
I guess when you reach a certain level it's hard to know how far you can go to explain it to beginners that are not in the room to say "slow down". That's why I'm writing this feedback.
Anyway, otherwise, I really love your voice, it's very nice to listen to and it helps me focusing, your patience and your overall pedagogy.
Cheers from Brussels ! I hope you keep sharing these crash courses :)
So the Transfer Attribute node simply allows you to take a field from your target geo and use it in another geo by transferring that data either by nearest face interpolated (which will kind of average the field to give a 'correct' value for the specific location that your geo lands on the target geo), nearest (which will just take the explicit value from the closest mesh element of the selected domain), or index (which will literally transfer from element N to element N. That's what we do in this video just using the extrude as an example.)
Hopefully this helps a bit! Feel free to ask any questions if you need
You have by far the most soothing voice I ever had the pleasure of hearing. Also your tutorials are mint!
Thank you so much! Too kind!
this went over my head. Obviously I need to have some more hands on practice to get used to some of these nodes and concepts.
Been waiting for index transfer for months! This can be used for shapekey-style morphing for large crowds.
OMG RAYCAST NODE VIDEO NEXT
I WAITED FOR THIS FOR SO LONG 😍
This is incredibly useful. So well taught! Thanks for sharing your insights.
I must say I have learned a lot, the 'fake extrusion' is quite accurate. Will purchase your course later, ty
for your work.
i love the thumbnails of these videos, good stuff
Hah thanks so much 😁
Another great video. I was waiting with getting into geometry nodes for release, because I was worried that they might heavily change it in the development process. What actually happen to some degree with attributes introduction. But now I think is the time and your videos are awesome help.
One issue is I'm a little bit torn. I've subscribed thanks to your jaw dropping abilities with procedural shaders, but now I see that geometry nodes are winning your affection. It is totally understandable. It's very interesting new playground to tinker with. I just wish it would be possible to have two of you so we could get the best of both worlds. :)
Thanks! Geometry Nodes is stable enough now I think. There shouldn't (touch wood) be any more big workflow shuffles. I will aim to add shaders to the rotor after Nodevember!
@@Erindale Great to hear that! But of course don't worry to much about my "complaining", take it with a with a grain of salt. ;) Choose what works best for you and your channel to grow. Geometry nodes could become hot topic after 3.0 release and with your skill proven in shaders area I see big potential in this. It's great content and tons of stuff to learn from your videos no matter which area you'll choose so I'm waiting eagerly for any content.
Smashing! What great fun!
You are incredible.
I’m coming from 3.2 and while just about all of this still applies, seeing you say “no extrusion, but I got a solution!” Obviously by 3.1 and 3.2 there IS extrusion, but you’re a genius for these creative solutions.
Thanks so much! I know it’ll take me a while to reallyyy get the meat of the subject, but your explanations are sooo helpful :)
Thanks so much! That means a lot
@@Erindale np! Some of the math admittedly goes way over my head, but I know a huge chunk of Geo Nodes is just getting the basics and messing around from there :)
And in general, it’s amazing what you’ve been doing with the system since even the first iteration in 2.9 before the rework!
Thanks again! I’m glad it means a lot because it’s definitely well deserved!
Great stuff
Now in 3.6 version we got the Extude Mesh node by the way)
That's a lot of mental gymnastics for an extrusion.
But I understand now. This is Zverchok minus all the quality-of-life nodes. Got it.
Yeah not a bad comparison. Give it a year or two to catch up and it'll be a great system!
Thank you, nice tutorial=)
your teaching style is unique .
In a good way I hope 😅
@@Erindale that is what I mean.
Target = source, I'll keep in mind, thanks
wow... i thought about how to extrude a curve and came to no solution. this is genius, as always! thank you
Unfortunately it'll only work on single curve segments. I'm not sure if there's a clever way to go across multiple and selectively delete the joining faces?
Hey @Erindale, I was wondering if you could find a mathemathical way to permutate a collection. I mean basically making a row of instances randomly selected from a collection, but without repetition!
🔥🔥
so educational.
This one has me lost. Needs more explanation of whats going on in my opinion.
What would you like to know? I can try to explain further here 🙂
Got me lost also… should have enabled the wireframe so we could see better the structure of the mesh he was playing with.
Just copy along the exercise and it should make more sense. We're starting to get into fairly abstract logic so you'll only really get a proper understanding by exploring it yourself!
@@Erindale Of course, its easy to copy one to one what you're doing and make minor changes. But application for different contexts make it a lost cause for us more stupider crowd. I understand this is completely advanced territory but a bit more indepth explanation would go a long way. At the same time I'm sure your work is very beneficial to more intermediate-programmer types.
you should also start making asmr videos your voice is so relaxing😁😁👌👌
I was wondering if is posible to uv unwrap in the new geometry nodes workflow, I would love to apply nice textures to the geometry without needing to apply the geometry node modifier.... thank you very much :):)
We can't write UV maps but we can output a vector and use the attribute node in shaders to read it. We'll actually do that in a video tomorrow. I think you would have a bit of a tough time with it at the moment although maybe transferring data from curves to a mesh might allow for some interesting results 🤔 I need to have a play with this
Thanks a lot for this informative video. What is actually the purpose of resampling the curve? I see this in a lot of videos and I'm wondering why not directly use the resolution on the curve primitives instead? Is there any difference in doing it this way? Thank you!
The best example is the spiral curve. Add that and set the resolution to 3. Resolution doesn't define the overall number of points whereas the Resample Curve node does let you do that.
@@Erindale ah ok. Great, thanks for the explanation
Great way to make extrusions inside nodes...!!!!
sheesh ... quite convoluting 😂
How in the world do you imagine this in your mind that's amazing
The transfer node has been replaced with the sample nodes now by the way. They split out each function into its own node
@@Erindale Thanks for the info, I'm still new to all of this at the moment
You have a fun journey ahead! Jump on my discord if you need more immersion / help
Hi Erindale, thanks for the great videos you made, but I have to agree with @Jonquille hhh comments. I don't think this is a geometry 101 video even for people who knows blender. For example, at 6: 35 you mention the curve gots 0 to 19 and the grid is 0 to 39. But unless the person watching has prior computer science knowledge or knows how computer calculate curves and grids. They would simply don't understand why it is 0 to 19 and 0 to 39 and why do you need to modulate it. Also an explanation of what index is in the context of computer graphics geometry would be nice. I am lucky to know the very surface of how computer calculate curves thats why it comes natural to me when you say 0 to 29 (cos with 20 samples), but even that it is quite hard to follow along, I can imagine it would be harder for an artist not knowing all that. Anyways, thank you so much for the series. i really like your work!
Thanks for the feedback! It's definitely a hard balance to strike but I'll try and be more explicit for these every level videos
Hello Erindale. wouldn´t this node be the one I had to look at if I wanted to transfer an animated mesh (-deformation) to another geometry?
here´s my unsolved Problem: I need to use an imported (and deformed) alembic animation in my fluid sim as an obstacle. Since the alembic is only referenced (or streamed?) in blender, it seems to be not suitable for this kind of physics simulation. So my thought was to transfer the deformation to another (internal) geometry and use that as an obstacle in flip fluids. Can you follow my thoughts? Would you know about a better approach to that issue?
Are alembic not properly importable? Transfer seems like it would be the right path yeah 👍
Hey great. Yes they are importable, but for some reasons I really cannot make up, they don't react to fluids... Maybe due to the internal data handling of alembics. Thank you for your quick reply though 😀
Hi Erindale, I rebuilt this tutorial but tried to use a closed spline (circle) which leaves me with a gap in my extruded mesh. How would you go about that? Obviously I would need to use one index twice, but I couldn´t figure out which nodesetup to use...? I would be thankful if you could point me into a direction, maybe just name the node I need to work with... Thank you very much, cheers eL
If you make your grid one vertex more than the spline then instead of modulo at the spline count, modulo at that count +1, but then immediately after, modulo at the spline count. Eg if you have 4 verts on the spline the grid wants 5. So the grid verts indices will go 0..9. then modulo by 5 and you'll get 0,1,2,3,4,0,1,2,3,4. Then modulo by 4 and you'll get 0,1,2,3,0,0,1,2,3,0.
@@Erindale YAYYY wow thank you for that quick reply - even though I am having a really hard time to picture what two modulos in a row really do (mathematically), it works like I need it to... Thanks a lot Erindale.
Transfer Attribute node no longer available in Blender 4.0 ? Is this concept still valid ? was it renamed?
They are now in the Sample nodes, eg: transfer by nearest face interpolated is now Sample Nearest Surface
Can we transfer UVs using Transfer Attributes node.
You can yeah, you just need to bring the UV into the node tree and you can transfer like any other value.
Does the "index" at the Transfer Attribute node refer to the target geometry (curve) or to the geometry in whose context the attribute is being calculated (plane)?
At first i thought it refered to the curve indexes, but if we are doing the index modulo 20, it means that the first input of the modulo/math node goes up to 40 (0-39, actually), doesn't it? (so that we are doing 2 cycles of 0-19 indexes at the modulo node)
It's either both, or just the geometry whose context it's calculated. But definitely not just the target. I know that's super confusing when the other inputs are for the target but just one of those quirks you learn.
@@Erindale Oh, Ok!
(thank you for the invest in making these, by the way :) )
Thank you, I think transfer attribute is what I'm looking for, but I can't get it to work. Basically I have a straight spline with let's say 10 points and I manage to distribute the points along the line (position calculated with their indexes).
But what I want instead, is to calculate each point based on the location of the previous point. Even if I substract 1 to my index and plug it in the transfer node, it doesn't work. Seems to be working with first one, so I think it doesn't access correctly indexes. I would do that in couple of minutes in Unreal Engine, but I'm struggling for almost 2 weeks with geo nodes 😅
There's a Field at Index node which you can use with the index - 1 idea to check the position of the offset index. Are you wanting a loop though? Maybe look into the Accumulated Field node. It's a sum loop suitable for linear packing. Johnny has some good tutorials on it
@@Erindale @Erindale Thanks for the quick reply!
V 3.4 has now a "sample index" node that seems to do the job (and they removed the "transfer attribute" apparently), I'm trying it at the moment but I can't understand the result, I don't understand how blender uses indexes, or maybe I'm just misundertanding the set position node.
Yes a loop would be good :
Set position for each point => get the position of the previous point and add (direction*distance).
I'm going to experiment with field at index and accumulate field as you advised ;)
I don't know Johnny but if you have a link to his channel I'll take a look
Why should we use Y input instead of X? Why should we modulate that? It's literally the same. Number of points remains the same and 0 modulo 20 is still 0
Could you elaborate a little on how the modulo is calculated/evaluated? I understand the concept of modulo when calculating a single set of values. For example, 12mod3 = 0, or 10mod3 = 1. I don't know how this modulo setup is used to evaluate the first row of verts of the grid to set their position from the curve, then start over again and apply the same positions to the second row of verts.
So each very has a value for it's index like 10 or 12. So mod3 would output a value 0, 1 or 2 for each vert. This is then has the data transferred from the curve point that shares that index.
@@Erindale thank you!
Hi Erindale,
thank you for your explanations. I like your way of teaching.
I also have few questions about the transfer attribute node and how it works in your tutorial.
1.) Why has the first set postion node after the modulo operation was executed no points dedicated?
2.) i am a litte bit confused of this modula operations. I need further explanations. If i modulate the index by 20. What does that mean?
Index of 20 mod 20 is 0, index of 19 mod 20 ist 1 etc.
What does that mean for the first set position node?
I am sorry, but i don't understand this context, although these questions were asked some days ago.
Maybe you can help me.
Thank You.
Daniel
Hi Daniel, about the modulo: You have a mistake there, "19 mod 20" is 19. 19 fits zero times into 20 (which we dont care for) and the remainder is 19. Now in the second loop, the last point with index 39 fits once into 20, with a remainder of 19 as well. So these two points get "grouped" by modulo and put at their place by the first "set position". to give #39 some height over #19, that's the "greater than", which separates 39 from 19 (and all the other pairs) and adds height to the one with index >=20.
I wonder where the "greater than or equal" nodes come from, I don't have these, just "greater than", so I had to add a "subtract" node before to get the one end right.
@@riidom Thank you for your explanations.
Greater than or equal can be found in the compare float node,
I can see much better you did good job on THEME color and big mouse I can catch where your mouse move and click is great but one thing would you like add-ons ScreenCast Key please.
I am full deaf and I have low vision.
Generally I have screencast keys on but it doesn't always work in beta builds of Blender unfortunately
@@Erindale No not true. They already fix a bug 4 months ago everything worked.
If you watch my other videos you'll see I use it almost all the time. And also if you use 3.4 or 3.5 in the last few weeks you'll see there's a bug causing the UI to hang unusably after scrolling in the node editors if screencast keys is running hence me using Shortcut VUr instead in my last video
@@Erindale Allright
Not the easiest concept...
1) Nothing changes when I disable/delete Curve to Mesh node. Is it really needed ?
2) Why is attribute type Node and not drop down ? Is there like interface for attributes that can be implemented and added to Blender ?
3) About Transfer attributes "Type for Source and result data". Vector is the only possibility for position ? Or changing type can have some interesting results ?
Would be interesting to see other use cases for this node.
It's likely that you don't need curve to mesh now but when I made the video it was different.
What do you mean by attribute type?
If you have a vector like position to through a float socket, it will compress it into a single flat value (using the mean average of the three channels). So it can be interesting but usually in a less useful way. I use transfer quite a lot. Check out my train stream as I think I used it a bunch in there. Or really any of the Nodevember streams as well
everything is going ok, over my head a little, but ok. at 5:08 and my question is How come your Compare Float node goes up/down in whole #s and mine does fractions? Not sure how to put it = yours - 1,2,3 . . . , mine - 1.1,1.2,1.3 . . . ? not sure this won't mess things up later on.
3.0beta from 11/10/21
@@djC653 If you hold CTRL while dragging a slide in Blender (anywhere in Blender) it will snap to larger increments. If you want to snap to smaller increments, SHIFT+CTRL while dragging.
@@Erindale ok good to know
What is the equivalent of transfer attribute node in blender 3.4.1 ?
Depends on the algorithm. We now have Sample Index, Sample Nearest, and Sample Nearest Surface. Additionally they added Sample UV Surface and updated Sample Curve
@@Erindale So, for getting the same effect as in this video, which node would work..?
@@ThePhysicsTrain Sample index is what you want, also greater than or equal doesn't exist anymore, so you have to use greater than with add node before and adding one
Greater than or equal is on the compare node, not math node
@@Erindale Yeah, I realized watching some of your other videos after that 😅
The first one
Why I can't see the "TRASFER ATTRIBUTE" node in the search menu? :( Please Help
You're in 3.4? It's now been replaced with the sample nodes. Nearest face interpolated is now Sample Nearest Surface, index is now Sample Index, and nearest is now Sample Nearest with a Sample Index
@@Erindale thank you!
Hi. How to see python code when hovering over a node?
Turn on developer tooltips in the blender preferences
@@Erindale Where is developer tooltips in blender preference. I'm using blender 3.4.1. I searched tooltips everywhere in preference, but am not able to find it. Kindly help.
Preferences > Interface > Display. You have Python tooltips there
@@Erindale Thank you.
His sounds like wizard
Your voice is asmr
Haha thank you so much
I'm hoping your treatment for the 3.3 transfer attributes node will get me to be able to replicate with some combination of 3.4's Sample Nearest Surface and/or Sample Nearest with Sample Index, this in Blender 3.4... Otherwise I will Logically Fallaciously ask on your Discord later today (!) and/or: tutorial suggestion... 😬
I'm usually the guy that asks the question everyone else wants to ask but don't because they don't want to "look stupid." Or was the kid in the Emperor's New Clothes. Given Idc what other ppl think, because if it's false I ignore it, and if it's true, I fix it... I must dare to look stupid alot, I guess.
Videos already scripted 👍
Did you already get the help you needed? Opening a 3.3 file in 3.4 will update the nodes and show you the change
@@Erindale Whoa, I didn't try that, I just downloaded K-Cycles 3.4 now, so I'll do that and watch the magic happen 🤞
Blender will "auto update" the nodes in the GN tree? I'm gonna confirm... pretty excited if true... this wouldn't work for the 2.93 deprecated nodes too, would it!?
I'm gonna not overthink things, lay back and think of England and see if Blender does things helpful for me first, then fix as necessary.
Tyvm for responding and sharing!
@@Erindale Verified it auto updated... Magic!
thanks for the tut, I must admit this is overkill for a 101 tutorial ,, imho , lol... constantly losing track of whats going on there.
Haha yeah and the node isn't in blender any more, it's been split into the sample nodes 🥲
"Target" is a bad choice of name, everybody thinks of a target as something you shoot at, whereas the idea of "pulling from" better expresses what's happening. "Source" would be a better choice of name for that input.
Yeah everyone agrees as well 😅 even the Devs talk about it. Imo raycast is the only one that should be called target
@@Erindale I spoke too soon before actually trying it, they already changed it to "source"!
sorry but you started off with some clear cut example, but it got complicated for no reason. You could make a simpler example...... yet somehow i walked away from this tut more confused than I was...
Tl:dw - Transfer attribute transfers attributes between different geometry. In 3.4 it's replaced by Sample Index, Sample Nearest, and Sample Mesh Surface nodes.