⚠ The transfer attribute node no longer exists! Use the sample index and sample nearest instead. Watch this to learn more: ua-cam.com/video/K-L2eIHu7ic/v-deo.html
Okay, so I have been trying to understand this concept for so long and I have watched so many UA-cam videos for this where they literally just over-complicate things and I am eternally happy to have found a video showing me how to actually use it in a real world situation!! Thanks a lot for making this awesome video! I will experiment with them myself and use what I understood to come up with something nice.
you are perfectly and smoothly explaining certain concepts that I was struggling to understand for months. Tutorials all over the internet are just a waste of time. they are all about how, not WHY. Thank you, very much appreciated. Anyway wants to learn GN must be directed to your channel first before going anywhere to save his life and time from burning.
Truly great video. There are many tutorials for beginners that try to explain how geometry nodes work and they just casually use the position, normal, index, and all the other Fields nodes without any explanations. As if they think we are automatically supposed to know everything that you've discussed during this nine-minute video. Thank you very much, very helpful
the blender 3.4 version has delete the transfer attribute node, replaced it with the sample nearest and sample index nodes, so if you are using the new version, you can adjust a little bit, and the mix rgb node is also replaced by mix node, but you can change the pulldown list and select the color to use the node in the old way. i spend half any hour to figure out the change in new version, hope to have some help
@@woodbook7514 Still doesn't work :(, 1. I connected the cube to both Sample Nearest and Sample Index geometry, 2. I connected the position to the SamplePposition, 3. then the index output from "Sample Nearnest" connected to the "Sample index", 4. then I connect the "Sample Index's" Value to Mix node(which I changed to color), 5. then connect the "Result"(From Mix Node) to Position on "Set Position". When I change the Factor from the "Mix Node", the Suzanne just goes small. It seems like the node from Cube doesn't pass through "Sample Index."
Here is the code of the `geonodes` module: import geonodes as gn from geonodes import nodes with gn.Tree("Geometry Nodes") as tree: factor = gn.Float.Input(0, "Factor", 0, 1) cube = nodes.Cube() p = nodes.Position() geo = gn.Geometry(tree.ig) attr = geo.capture_attribute(p.position) # This is the key line value = cube.mesh.sample_index(p.position, index=cube.mesh.sample_nearest()) geo.set_position(position=gn.vector_mix(factor, attr, value)) tree.og = geo
Bro that morphing tool is so underrated! You may need to make a new video with its own title do that people can find it. Really tho, I've always wanted to know how to morph 2 objects
Keep in mind, blending between 2 shapes will only work if both objects have the same topology type. For example you cannot mix susane with the donut, because donut has a hole.
What does blender do in case there are a different number of vertices between meshes like in your example with the ico sphere and the cube? (8:00) Does it move the sphere's vertices to the closest vertex on the cube? and one other question, in 5:55 , if the offset is supposed to move the cube's vertices, how does it deform the edges and the faces as well? I guess I don't understand what the position attribute holds, because according to the examples its not just the vertices
Actually a function is a cross product relation between preimage space and image space with only one preimage for every image. But I liked the very descriptive explanation. Good job.
i have been experimenting wit this and apparently when I wanna morph something into a torus its just deletes some faces. Idk why that's happening and plz let me know if there's a solution
How do you grab the desired attribute if you have say both position and color attributes on the geometry. which one does the node pick since both are vectors?
Currently (in Blender 4.2, October 2024) I am finding most, if not all, Field Nodes in the 'Read' sections of the 'Geometry', 'Curve', and 'Mesh' categories on the 'Add' menu dropdown in the Geometry Nodes Editor. Most of these 'Read' nodes have no inputs. The Geometry Node (GN) inputting the Field Node (FN) output ALREADY CONTAINS the data. It arrived as a geometry object through a DIFFERENT INPUT socket. The FN is simply telling the GN what data to use off of that geometry object. For those with a background in computer languages, I see a FN as an ITERATOR generating a stream of data into the GN's input socket, using some of the properties of the geometry object that arrived at the other input socket. If that is confusing, ignore this paragraph.
hey man! thanks for the video, i now get a lot more than before lol. do you by any chance know how can sample nearest and sample index nodes be replaced? im trying to replicate a geometry node tree from a video making renders into paintings where sample nearest and index is used but im on 3.3 and cant upgrade so i have to figure something to replace them.
Great Tutorial! It actually took me a lot of time to understand why field nodes like position node have no input. I use Grasshopper a lot for parametric design, but when I started trying Geo Nodes in Blender, nodes like position really bothers me because I dont understand which geometry's position data it is gathering. I initially thought it gather the position data from whichever geometry the Geo Nodes modifier is assigned to....but then I realized another problem, how to get the position data of another object? Because blender does not seem to have a position node with geometry input.....
Thank for the clear explanation of these complex nodes. But i wonder that, how the tranfer works when the vertex number is different? I mean that, for example, the cube has only 8 vertex, but the sphere has more than that. How does blender calculate the vertex to be merged or??
Your videos are pretty awesome, you heard it all I bet. I haven't watched all of them, but I'm going through them as I type, but felt like leaving a comment just because I can't seem to find any guidance for what I would like to do with geonodes, that is to pick a specific vert, edge or face and just move it around. I feel silly just typing it as the way I put it seems so simple/basic, have you covered this in any of you videos? Thanks
You can use a set position to move stuff around and you can select a specific part by using the index node with a compare node. There are lots of ways to handle selections
The shape morphing setup seems to actually not work on complex object like character and cube.... wonder if there can be a global setup that works on any shape regardless
Great vid thanks Joey rare to find people that break down geometry nodes so well. Any idea on how to make the morph work on more complex objects? Im trying to morph a head into another head but it gets all messed up when i try to morph it using this technique
The second part about attributes is already outdated as of November 2022, in 3.4 beta. Transfer Attribute has been split into multiple Sample nodes and the morph example cannot be reproduced that easy.
Thanks! i feel like nodes trees for shaders and geometry work so different that they should have a different graphic design. For me those are not that intuitive, way harder to work with and very different functionality.
I think the terminology around fields just makes it confusing. They way I read it is, "A field is an operation that is applied to each vertex with some data being unique to that vertex". Or from a code perspective, "this is a portion of the workflow where a vertex shader is being used to build up the next geometry". It may be late at this point, but I think naming it "field" and calling it a "function" is very confusing to most. Not harping. It's just one of those "tough to define" things, and unfortunately, confuses most for a while. Something like "Vertex Mod" would make more sense than "fields" I think. You're using some field data, but the entire thing is a modification (an operation to a vertex) Or even call it a shader ... That segment that plugs into a diamond is a shader (vertex shader) - or at least a portion of one. EVERYONE gets confused on fields. That's exactly why I watched this video. I get it now, but it's really hard to visualize at first because I think the term is being overloaded a bit to mean both the data being provided (attributes of the point/vertex of current geometry) as well as meaning the operation as a whole. I think it likely started down the path of naming it to mean the actual per-vertex data, then took on a different meaning. I'm still coming up slowly. switching back and forth with other training. But, fields is one that got me. I'm past it now thanks to this video. Case in point (or case in vertex, I mean) - @4:25 - that's not really a function - it's a per-vertex value (technically there *could* be function involved, but doesn't need to be). It's just that the term 'field' got re-used to mean both the operation as a whole (shader) and the per-vertex data. So, and this isn't a stab, but I think it kinda got you, the trainer, as well. It's confusing ... If you "encapsulated the Position node AND the Add node And the Set Position node" together, that would be the vertex shader function, but the position alone is not a function. One last note, is that you could simply describe each green node as a "vertex shader node". All the data and ops plugged into it are simply "part of that shader" with the exception of the geometry of course which is what the shader is applied to. It's basically waht they call "the strategy pattern" in programming. All the input sockets are "your strategy" for how you want the bigger operation (set position for instance) to work. So we pick a shader that encapsulates the overall thing we're doing (SetPosition), then we customize that behavior with our strategies.
in programming, getters are also functions so example in 4:25 it is also a function. if you think about it, you bring it a mesh as a parameter and it extracts the position from it. thats why you can connect more than 1 mesh to it and it brings you the appropriate position form it
⚠ The transfer attribute node no longer exists! Use the sample index and sample nearest instead. Watch this to learn more: ua-cam.com/video/K-L2eIHu7ic/v-deo.html
Okay, so I have been trying to understand this concept for so long and I have watched so many UA-cam videos for this where they literally just over-complicate things and I am eternally happy to have found a video showing me how to actually use it in a real world situation!! Thanks a lot for making this awesome video! I will experiment with them myself and use what I understood to come up with something nice.
Same here.
Joey, you're gradually making me fall in love with Geometry Nodes.
you are perfectly and smoothly explaining certain concepts that I was struggling to understand for months. Tutorials all over the internet are just a waste of time. they are all about how, not WHY. Thank you, very much appreciated. Anyway wants to learn GN must be directed to your channel first before going anywhere to save his life and time from burning.
Truly great video. There are many tutorials for beginners that try to explain how geometry nodes work and they just casually use the position, normal, index, and all the other Fields nodes without any explanations. As if they think we are automatically supposed to know everything that you've discussed during this nine-minute video.
Thank you very much, very helpful
the blender 3.4 version has delete the transfer attribute node, replaced it with the sample nearest and sample index nodes, so if you are using the new version, you can adjust a little bit, and the mix rgb node is also replaced by mix node, but you can change the pulldown list and select the color to use the node in the old way. i spend half any hour to figure out the change in new version, hope to have some help
How do you make it work? I tried to connect the cube with Sample Nearest then Sample index, but it doesn't show anything
@@hugochan4309 cube node's mesh connect to sample nearest node's geometry and the sample index's geometry at the same time.
@@woodbook7514 Still doesn't work :(,
1. I connected the cube to both Sample Nearest and Sample Index geometry,
2. I connected the position to the SamplePposition,
3. then the index output from "Sample Nearnest" connected to the "Sample index",
4. then I connect the "Sample Index's" Value to Mix node(which I changed to color),
5. then connect the "Result"(From Mix Node) to Position on "Set Position".
When I change the Factor from the "Mix Node", the Suzanne just goes small. It seems like the node from Cube doesn't pass through "Sample Index."
@@woodbook7514 I figured it out, I also connected the "Position" to "Sample Index's Value" and it shows. Thank you for the help!!
Here is the code of the `geonodes` module:
import geonodes as gn
from geonodes import nodes
with gn.Tree("Geometry Nodes") as tree:
factor = gn.Float.Input(0, "Factor", 0, 1)
cube = nodes.Cube()
p = nodes.Position()
geo = gn.Geometry(tree.ig)
attr = geo.capture_attribute(p.position)
# This is the key line
value = cube.mesh.sample_index(p.position, index=cube.mesh.sample_nearest())
geo.set_position(position=gn.vector_mix(factor, attr, value))
tree.og = geo
The best tutorial I've watched about fields! Very well explained!
謝謝!
Bro that morphing tool is so underrated! You may need to make a new video with its own title do that people can find it. Really tho, I've always wanted to know how to morph 2 objects
every time I search for anything Blender related your videos about it come up .. XD nice
Thanks so much for the clear and detailed demonstration ❤️❤️
Essential info. Thanks as always man!
I often use some of these nodes but never quite understood why. Thanks for the explanations!
These node explanation videos are gold! Thank you so much!
Thank you so much! Hope we get more in-depth videos like this :)
I have been trying to figure out how exactly these all work for months now, thank you so much :3
Keep in mind, blending between 2 shapes will only work if both objects have the same topology type. For example you cannot mix susane with the donut, because donut has a hole.
Super well explained. Now I understand it better. Thanks
Amazing video and teachings, thank you! 🙌
Thats some valuable stuff here
you really know how to explain, great tutorial!
Nice video! Thanks Joey!
thanks mate! this is really clear explanations
Well done Sir, an excellent example well executed. Thank you.
Best explanation about fields! Thanks!
Dude really awesome and helpful video man 🤩, thank you for this. The more I learn Geon node the more I love 🥰 what I can do.
What does blender do in case there are a different number of vertices between meshes like in your example with the ico sphere and the cube? (8:00)
Does it move the sphere's vertices to the closest vertex on the cube?
and one other question, in 5:55 , if the offset is supposed to move the cube's vertices, how does it deform the edges and the faces as well?
I guess I don't understand what the position attribute holds, because according to the examples its not just the vertices
THANK YOU, your videos are the best! I MEAN IT!!!
This is exactly what I needed :D
Actually a function is a cross product relation between preimage space and image space with only one preimage for every image. But I liked the very descriptive explanation. Good job.
I finally understand it, thanks.
I did not know you could morph with mixRGB node. Thanks!
Great tutorial. Thank you.
Dude.. You're awesome
This is GOLD
Excellent video.
i have been experimenting wit this and apparently when I wanna morph something into a torus its just deletes some faces. Idk why that's happening and plz let me know if there's a solution
thanks for explaining:)
How do you grab the desired attribute if you have say both position and color attributes on the geometry. which one does the node pick since both are vectors?
Currently (in Blender 4.2, October 2024) I am finding most, if not all, Field Nodes in the 'Read' sections of the 'Geometry', 'Curve', and 'Mesh' categories on the 'Add' menu dropdown in the Geometry Nodes Editor. Most of these 'Read' nodes have no inputs.
The Geometry Node (GN) inputting the Field Node (FN) output ALREADY CONTAINS the data. It arrived as a geometry object through a DIFFERENT INPUT socket. The FN is simply telling the GN what data to use off of that geometry object.
For those with a background in computer languages, I see a FN as an ITERATOR generating a stream of data into the GN's input socket, using some of the properties of the geometry object that arrived at the other input socket. If that is confusing, ignore this paragraph.
Well done!
hey man! thanks for the video, i now get a lot more than before lol. do you by any chance know how can sample nearest and sample index nodes be replaced? im trying to replicate a geometry node tree from a video making renders into paintings where sample nearest and index is used but im on 3.3 and cant upgrade so i have to figure something to replace them.
so good. Thank you.
Great Tutorial! It actually took me a lot of time to understand why field nodes like position node have no input. I use Grasshopper a lot for parametric design, but when I started trying Geo Nodes in Blender, nodes like position really bothers me because I dont understand which geometry's position data it is gathering. I initially thought it gather the position data from whichever geometry the Geo Nodes modifier is assigned to....but then I realized another problem, how to get the position data of another object? Because blender does not seem to have a position node with geometry input.....
yes,I use grasshopper too. I'm not sure if blender has a data structure
wow ! as usual, your tuts are insanely 'teachfull' !
My only problem is to think like blender devs do :P
This is massive
sos un genio muchisimas gracias
Thank you!
Thank you so much for melting my brain. ;-)
Hey! How to do this in 4.2? They removed the Transfer attribute and we're left with only "Sample index".
check the description and pinned comment
Hey ! Thx for the video , so u know why in bender 4.0 their is no transfer attribute ? Cuz I can not find it , thx
Yep, check the pinned comment
@@JoeyCarlino thx a million mate
Can you do a video on attribute static please
There is no video about this node and it's use cases
Thanks
Thank for the clear explanation of these complex nodes. But i wonder that, how the tranfer works when the vertex number is different? I mean that, for example, the cube has only 8 vertex, but the sphere has more than that. How does blender calculate the vertex to be merged or??
There are options for that in the node. By default, it will look for the closest face and use that position
thx you
So it won't work with other mix nodes rather than mix color?
fire!!!!!!!!!!!!!!!!!! thanks!!!!!!!!!!!!!
Your videos are pretty awesome, you heard it all I bet. I haven't watched all of them, but I'm going through them as I type, but felt like leaving a comment just because I can't seem to find any guidance for what I would like to do with geonodes, that is to pick a specific vert, edge or face and just move it around. I feel silly just typing it as the way I put it seems so simple/basic, have you covered this in any of you videos? Thanks
You can use a set position to move stuff around and you can select a specific part by using the index node with a compare node. There are lots of ways to handle selections
The shape morphing setup seems to actually not work on complex object like character and cube.... wonder if there can be a global setup that works on any shape regardless
Great vid thanks Joey rare to find people that break down geometry nodes so well. Any idea on how to make the morph work on more complex objects? Im trying to morph a head into another head but it gets all messed up when i try to morph it using this technique
You can try adding more points to the first mesh. Like a subdivision node.
nice
Noob here 😅 How to achieve that coloring on faces ? Each time you add objects faces colored randomly how is that possible?
The second part about attributes is already outdated as of November 2022, in 3.4 beta. Transfer Attribute has been split into multiple Sample nodes and the morph example cannot be reproduced that easy.
You're right, I'll make a note about it
Thanks! i feel like nodes trees for shaders and geometry work so different that they should have a different graphic design. For me those are not that intuitive, way harder to work with and very different functionality.
Joey what happened to your audio?
👍
Not sure the underlying consideration of such design instead of explicitly having a geometry input at the left.
🥰🥰
I want introduction for every single node
god
I think the terminology around fields just makes it confusing.
They way I read it is, "A field is an operation that is applied to each vertex with some data being unique to that vertex".
Or from a code perspective, "this is a portion of the workflow where a vertex shader is being used to build up the next geometry".
It may be late at this point, but I think naming it "field" and calling it a "function" is very confusing to most.
Not harping. It's just one of those "tough to define" things, and unfortunately, confuses most for a while.
Something like "Vertex Mod" would make more sense than "fields" I think.
You're using some field data, but the entire thing is a modification (an operation to a vertex)
Or even call it a shader ... That segment that plugs into a diamond is a shader (vertex shader) - or at least a portion of one.
EVERYONE gets confused on fields. That's exactly why I watched this video. I get it now, but it's really hard to visualize at first because I think the term is being overloaded a bit to mean both the data being provided (attributes of the point/vertex of current geometry) as well as meaning the operation as a whole. I think it likely started down the path of naming it to mean the actual per-vertex data, then took on a different meaning. I'm still coming up slowly. switching back and forth with other training. But, fields is one that got me. I'm past it now thanks to this video.
Case in point (or case in vertex, I mean) - @4:25 - that's not really a function - it's a per-vertex value (technically there *could* be function involved, but doesn't need to be). It's just that the term 'field' got re-used to mean both the operation as a whole (shader) and the per-vertex data. So, and this isn't a stab, but I think it kinda got you, the trainer, as well. It's confusing ... If you "encapsulated the Position node AND the Add node And the Set Position node" together, that would be the vertex shader function, but the position alone is not a function.
One last note, is that you could simply describe each green node as a "vertex shader node". All the data and ops plugged into it are simply "part of that shader" with the exception of the geometry of course which is what the shader is applied to.
It's basically waht they call "the strategy pattern" in programming. All the input sockets are "your strategy" for how you want the bigger operation (set position for instance) to work. So we pick a shader that encapsulates the overall thing we're doing (SetPosition), then we customize that behavior with our strategies.
in programming, getters are also functions so example in 4:25 it is also a function. if you think about it, you bring it a mesh as a parameter and it extracts the position from it. thats why you can connect more than 1 mesh to it and it brings you the appropriate position form it
hi
mac
This is massive