Blender 3.3 LTS: Making and Using a 'Distribute Points In Mesh' Node

Поділитися
Вставка
  • Опубліковано 21 сер 2024

КОМЕНТАРІ • 73

  • @yesterwhere
    @yesterwhere Рік тому +20

    For Blender 3.4+. The Transfer Attribute node is gone and replaced by 3 other nodes (Sample Nearest Surface, Sample Nearest Index and Sample Nearest). I got this tutorial to work by simply replacing the Transfer Attribute node with the Sample Nearest Surface node without any other changes. Thanks for another awesome tutorial, Johnny!

  • @davidkopnicky6741
    @davidkopnicky6741 4 місяці тому +1

    For modern versions use "Mesh to volume" > "Volume to points" > "Instances on points" > "Join geometry".

  • @chicao.do.blender
    @chicao.do.blender 2 роки тому +4

    johnny with the absolute banger tutorials, thanks for it, i got an opportunity to help my 3d modelling teacher to teach a lot of other students, and am looking to get better at geonodes so that one day we can teach more people to make awesome stuff

  • @kes099
    @kes099 8 місяців тому

    Thank you so much for this informative tutorial. The ability to determine if a point is inside or outside of another mesh is vital to many further operations such as determining which points to delete or to displace. You have shown us how to do it, although I do feel it should be a basic output (Boolean "Is Inside?") from the Geometry Proximity node and/or the Raycast node.

  • @activemotionpictures
    @activemotionpictures Рік тому

    I really like how you broke down the steps on this video, specially regarding the normal find orientation.

  • @vince3081
    @vince3081 Рік тому

    most underrated blender youtuber. Thanks for everything you do.

  • @gandydaa
    @gandydaa Рік тому

    You explain things so calm and well

    • @JohnnyMatthews
      @JohnnyMatthews  Рік тому

      I have 7 kids, I have to be as calm as possible!

  • @gemologialevi6102
    @gemologialevi6102 Рік тому

    exactly what i was looking for, no more no less, perfect

  • @AhmedNassef
    @AhmedNassef 2 роки тому

    I hope that someone has already told you you're one of the Blender wizards.. Love your content..

    • @JohnnyMatthews
      @JohnnyMatthews  2 роки тому

      Ah thanks. I don’t always feel that way, especially when I watch other peoples content, but I appreciate the kind words and support ☺️

  • @davidmcsween
    @davidmcsween 2 роки тому

    I really like that you kept the error and pointed it out... you know, just to make you look human and not so God Like! :D Terrific tutorial BTW

    • @JohnnyMatthews
      @JohnnyMatthews  2 роки тому +2

      The amount of screwups I edit out of my raw footage is embarrassing.

  • @grobknoblin5402
    @grobknoblin5402 Рік тому

    You are amazing! Every time I need some help you have put a video out that saves me! Your work is incredible! Hope you are doing well!

  • @Seviexe
    @Seviexe Рік тому

    A really great explaination, especially the bit about delete geometry selection was godly. Helped me a lot with something similar.

    • @JohnnyMatthews
      @JohnnyMatthews  Рік тому

      That’s great to hear! I’m glad to have helped 😀

  • @RobertWildling
    @RobertWildling 8 місяців тому

    Awesome high-quality great-info channel! Subscribed!

  • @RazsterTW
    @RazsterTW 2 роки тому

    You're a wizard Harry!

  • @ZeroDean
    @ZeroDean 2 роки тому

    It's like it was made for meeeeee! 😉 Love this and will be using it in my current diorama project. Guess I'll just have to watch it again.

    • @JohnnyMatthews
      @JohnnyMatthews  2 роки тому +1

      Lol, I'm not sure I've got great replay value.

    • @ZeroDean
      @ZeroDean 2 роки тому

      @@JohnnyMatthews You think I learn this stuff with just a single watching!? In this case, I watched on my phone while doing cardio at the gym. Now I have to go back and actually follow (& copy) you on my laptop.
      One thing about this is I'm a big fan of being able to pull instances from a collection... for example, different leaves. Between this video and your circular array video, I *might* just be able to figure it out. We'll see.

  • @RamiLovesFortnite
    @RamiLovesFortnite Рік тому

    thank you soooo much for sharing your skills with us. very educative tutorial!

  • @qedqubit
    @qedqubit Рік тому

    dang ! the transfer attribute node changed in 3.5... but wow ! great tutorial, thanks 😀!

    • @dragonfire133
      @dragonfire133 Рік тому +2

      I looked up online and you can substitute the "Transfer Attribute" node for a "Sample Nearest Surface" node. Hope this helps.

  • @__leoayres__
    @__leoayres__ Рік тому +1

    Thank you!

  • @curtisnewton895
    @curtisnewton895 8 місяців тому

    ok I read your comment but this is bs. I would parse all faces and use random barycentric coordinates or something. your method is incredibly inefficient
    thx for sharing. I learned a lot

  • @Hakimation
    @Hakimation 2 роки тому

    Thanks! Awesome Tutorial!👏

  • @limarest761
    @limarest761 2 роки тому

    Without these videos I would have zero clue what to do with all the new nodes, great stuff. I don't understand though how transfer attribute worked in this case.
    It seemed to me like you compared face normals and face positions but for some reason what ended up deleting were points and not faces. The attribute workflow is extremely abstract to me..

    • @JohnnyMatthews
      @JohnnyMatthews  2 роки тому

      Well I'm getting the normal from the nearest face which is a vector. Then creating a second vector between the point in question and the closest point on the closest face. So now I have 2 vectors that are related to that point. Then that dot product is specifically related to that point in question. It's tricky and very hackish :)

  • @rastro-arthur
    @rastro-arthur Рік тому

    this was perfect thank you so much

  • @maryoriski2013
    @maryoriski2013 2 роки тому

    Thanks a lot man, you saved my time 🤣

  • @ibotpl
    @ibotpl 2 роки тому +1

    Great tutorial as always, thank you! Is there a way to connect those points and transform them to edges to feed the shortest path node?

    • @JohnnyMatthews
      @JohnnyMatthews  2 роки тому +1

      That’s coming in another video! Both methods will be hackish, but for the time being will work.

    • @fuglsnef
      @fuglsnef 2 роки тому +1

      One way I've seen is to create two 3D grids, rotate one 90 degrees, then join them together with merge by distance.
      Now you have a grid connected by edges that you can use the node group in this video to cut to shape.

  • @glencandle1772
    @glencandle1772 Рік тому

    Very insightful, thanks. Curious, wouldn't the "Distribute Points on Faces" node shortcut most of this process? I'm playing with it now and not having great results, which is how I came to find this clip, but I'm assuming that aside from my own ignorance this node should conceivably, um, distribute points onto faces, no?

    • @JohnnyMatthews
      @JohnnyMatthews  Рік тому +1

      Unless you get full coverage the insides will not have anything filling it, giving empty space.

    • @glencandle1772
      @glencandle1772 Рік тому

      @@JohnnyMatthews Ahh, good point!

  • @satyakimandal6572
    @satyakimandal6572 Рік тому

    really great video. i am currently using this in my own project...
    but is there a way to generate a gradient parameter where it goes from core of the object to it's edge....
    i want to uss it to make leaves bigger inside the bush...

  • @domenicobezuidenhout1587
    @domenicobezuidenhout1587 Рік тому

    Excellent video!
    How would we go about removing all nodes and only placing nodes that are in the bottom 5% along the x axis?
    Currently I have set up: position-> separate xyz -> less than or equal .05 for x ->delete geometry which recieves the point generation data. For some reason it is not working and has random points well into the mesh

    • @DeShark88
      @DeShark88 Рік тому

      You might be better off doing it earlier in the process? Take the bounding box X vector and set the max value to something like max-range*0.05? Or min+range*0.05.

  • @RealGaryGibson
    @RealGaryGibson 2 роки тому

    Is there a way to just test if the A-B vector is negative? If so then the dot product with the Normal vector would not be necessary.
    Great tutorial!

    • @JohnnyMatthews
      @JohnnyMatthews  2 роки тому +2

      But we still need the normal as a point of reference. Lets say your face point is (0,0,0) and you have 2 points (-1,-1,-1) and (1,1,1): the differences will be (-1,-1,-1) and (1,1,1) respectively. But you still have no information about which way the face is pointing. So you can't compare.

    • @RealGaryGibson
      @RealGaryGibson 2 роки тому

      @@JohnnyMatthews Thanks for explaining that Johnny!

  • @amalbubble7812
    @amalbubble7812 2 роки тому

    Wow!😃

  • @AngelAgudoGuerrero
    @AngelAgudoGuerrero 2 роки тому

    Cooooool!

  • @christianholl7924
    @christianholl7924 2 роки тому

    I was very curious about your idea of distributing points in a mesh, because that was always a great challenge for me too. Sadly you came up with the same idea and solution that I had some time ago... And that's not good, because that is not how a 'Distribute Points In Mesh' Node seriously should work. Please let me explain why:
    The "Point Count" value in your parameter is not the point count that you actually get, because you're removing every point outside the mesh. It should behave like the original "Distribute Points on Faces" node in which you can define a reliable density (and indirectly also the point count). It would also be nice to have a "Poisson Disk" mode which tells every point to have a certain distance to each other.. but I can't imagine how to do that in geonodes..
    But I don't want to discourage you! You're greate and tutorials are always an awesome source of ideas!

    • @JohnnyMatthews
      @JohnnyMatthews  2 роки тому +2

      Well yes, this is using the tools at hand until a proper node is written in c++. With the speed of the points node, this is a workable stopgap measure.

  • @KRUChY_80
    @KRUChY_80 Рік тому

    in 3.4 i cant find transfer atribute node - with what to repleace it? It automatically changed to "Sample nearest surface" and it works...
    And more important question, how to make, instance not to overlap??? I distribute balls, and i dont want them to overlap, bacause it looks wired... HEEEELLLPPPP !!!!

  • @diox0653
    @diox0653 2 роки тому

    Thx

  • @_blender_man_
    @_blender_man_ 2 роки тому

    Hey Johny thanks! What kind of Computer do you use? I’ve noticed you have cycles so quickly updated in viewport. Can you share with us what to buy for smooth work in cycles ?)

    • @JohnnyMatthews
      @JohnnyMatthews  2 роки тому +1

      That’s mainly an RTX 2070S doing the heavy lifting.

    • @_blender_man_
      @_blender_man_ 2 роки тому

      @@JohnnyMatthews thanks you !

  • @ccb4911
    @ccb4911 2 роки тому

    Thanks johnny,
    any idea how we can have a stable density per m3 ?

  • @bzikarius
    @bzikarius 2 роки тому

    Yes, but initial random distribution is not nice.
    It is better to combine surface poisson disk distrubution and pyramid-grid distribution inside. Also there is no reason to delete geometry.
    We can just instance on points inside with selection.

    • @JohnnyMatthews
      @JohnnyMatthews  2 роки тому

      Obviously, but until someone codes that as a built in node, this is a decent workaround.

  • @fvalduga
    @fvalduga 2 роки тому +1

    It will be nice if they implement a node to distribute points on volume...problem solved in seconds.

    • @JohnnyMatthews
      @JohnnyMatthews  2 роки тому +1

      It's on the developer radar for sure. It's just not on the front burner at the moment. If a community developer stepped up and coded it, it would get done. However it's not exactly a simple programming task and the core devs are busting their tails on many other tools (see the new hair system for example!)

  • @vowel8280
    @vowel8280 Рік тому

    I have one question, is there a way to distribute points and make them stick to the surface or volume without appearing and dissappearing when the mesh is displaced?