How to Avoid Object Intersection | Blender Geometry Nodes Tutorial

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ส.ค. 2024
  • In this Blender tutorial I break down the RayCast Node in a Geometry Nodes network. The RayCast node can be used for multiple things, including telling Blender to avoid objects on the ground plane where we want to grow grass.
    Download the Foliage Pack: www.motionblen...
    Facebook: / motionblendstudio
    My Website: www.motionblen...

ความคิดเห็น • 80

  • @samuelsantos
    @samuelsantos 2 ปีที่แล้ว +26

    Nice one! I just noticed it's possible to use "Set Position" just after the "Object Info" to slightly scale the rock's vertices in its normal directions just in the context of "RayCast". This way you can have an even better behavior preventing intersections. Just plug "Normal" -> "Scale (vector)" - > "Set Position (Offset)".

  • @RealGaryGibson
    @RealGaryGibson 8 หลายเดือนก่อน +5

    FINALLY someone explains raycast in a way that I can understand it. Thank you soooo much!

    • @KenanProffitt
      @KenanProffitt  8 หลายเดือนก่อน +1

      You’re welcome! So glad it’s helpful!

  • @SpencerMagnusson
    @SpencerMagnusson 2 ปีที่แล้ว +12

    Great implementation of the Raycast node! Love seeing more people experimenting with it and coming up with good solutions. One tip I'll mention is that the "Ray Length" property for the raycast node can be shortened, not just to accidentally hit hovering objects that may not count as an intersection, but it can also drastically improve performance when colliding with more or more complex objects. The performance hit is minimal with smaller meshes like this, but may be helpful for big scenes.
    This is coming from someone who's used the Python equivalent of the Raycast in Blender for an add-on and learned that the hard way :) cheers

  • @gordonbrinkmann
    @gordonbrinkmann 11 หลายเดือนก่อน

    Great basic tutorial on the Raycast node. Just a quick tip, when you hoped the points would be visible enough in the video, there is a Set Point Radius node which could make them larger and much easier to see in the video. Setting the sphere to wireframe or bounding box while leaving the viewport in Solid mode would have also helped and saved you always switching between modes.

  • @Mr_Steve3D
    @Mr_Steve3D ปีที่แล้ว +2

    Awesome, thanks. You can also get rid of all clipping by adding a scale elements node just before you realize :) It is the cheat method to get proximity!!!

  • @iraisynn.attinom
    @iraisynn.attinom ปีที่แล้ว +3

    very nice! thanks! will implement it in my addon (ia scatter) asap. also, connecting a normal node to the ray direction input makes sense for both horizontal and vertical surfaces

    • @KenanProffitt
      @KenanProffitt  ปีที่แล้ว +1

      Awesome thanks for watching! And yes, good tip!

  • @contentwh0re
    @contentwh0re 2 ปีที่แล้ว +7

    i must have done something wrong. using blender 3.2.2 and all points disappear when i add the raycast, when i add the NOT bool, all points show even in the sphere? :(

    • @contentwh0re
      @contentwh0re 2 ปีที่แล้ว +8

      nvm i figured it out. the plane needs to be subdivided a bunch as all those vertices on the plane are where the actual rays fire from. I was just using a plane with 4 vertices. hope this helps someone.

    • @KenanProffitt
      @KenanProffitt  2 ปีที่แล้ว +3

      Glad you figured that out! And yes thanks for sharing. I should have mentioned that tip in the video. 😅 best of luck to you!

    • @daimonxart8253
      @daimonxart8253 5 หลายเดือนก่อน

      @@contentwh0re Gd, you sabed me, for ome reason i couldt make it work, thank you so much for your comment!

    • @yuroomsusa
      @yuroomsusa 3 หลายเดือนก่อน

      Thank you. I had the same question and you answered it!

  • @AnthonyAragues
    @AnthonyAragues ปีที่แล้ว +2

    thanks for this. I keep finding new uses for this node. Still have the big open question I came here for. If I instance on points, I want its instances to avoid colliding with each other. so far I managed to create some circular logic that errors :)

    • @Boipelo
      @Boipelo ปีที่แล้ว +1

      On your point distribution node, change the distribution method from "Random" to "Poisson Disk" using the drop down arrow. You can then adjust the "Distance min" value to your liking.

    • @AnthonyAragues
      @AnthonyAragues ปีที่แล้ว +3

      @@Boipelo thanks, I was aware of that and it only works with the max size in a collection, not great with varying sizes

  • @kazes
    @kazes ปีที่แล้ว +1

    This is super cool and usefull for my project which is generate old stone houses. The wall ares mades with stones not the same sizes and shapes and no mortar, so I wanted them to scatter on wall faces but not overlap. Thanks!

    • @KenanProffitt
      @KenanProffitt  ปีที่แล้ว +2

      Sounds cool! I'd love to see that when you finish it. Thanks for leaving a comment!

  • @DavidWinstead
    @DavidWinstead ปีที่แล้ว +2

    Wow, that's very useful man, thanks for sharing your demonstration!

  • @nswij123
    @nswij123 ปีที่แล้ว +1

    This is exactly what I was looking for! Thanks!

    • @KenanProffitt
      @KenanProffitt  ปีที่แล้ว

      Glad I could help! Thanks for watching!

  • @pcforgaming3772
    @pcforgaming3772 2 ปีที่แล้ว +3

    Now blender is becoming more powerful compared to houdini, Maya, 3dx, cenema4d

  • @SkinnyBlackout
    @SkinnyBlackout 2 ปีที่แล้ว +2

    Today I learned how to get rid of penetration.

  • @paulopma
    @paulopma ปีที่แล้ว +4

    Hello. In this case you avoid collision of two different collections. I tried avoiding collision within the same collection but couldn't make it, is it possible?
    I'm new to Blender, thx for your videos.

    • @KenanProffitt
      @KenanProffitt  ปีที่แล้ว +1

      Hey Paulo, have you tried feeding your collection node into a "realize instance" node then taking that into the raycast node? 11:50 of this video might help...

    • @cr4723
      @cr4723 3 หลายเดือนก่อน

      @@KenanProffitt He means avoiding collision within the SAME collection. That does not work.

  • @stephanepolin8981
    @stephanepolin8981 2 ปีที่แล้ว +1

    Thx a lot, very good and simple tuto for GN raycast

    • @KenanProffitt
      @KenanProffitt  2 ปีที่แล้ว

      Glad to hear it! and thanks for watching. :)

  • @DamianPatkowski
    @DamianPatkowski ปีที่แล้ว +2

    Is there a way to create a pile of rocks so I'll have a collection of big rocks, 2nd collection of middle ones, and 3rd of small and these objects inside the collections will not intersect each other?
    I wonder of is there an option to randomly create a pile of rocks where big ones are in the center, middle around, and smaller ones in small holes or outside.

  • @RefaeiWork
    @RefaeiWork ปีที่แล้ว +1

    Great tutorial

  • @kazes
    @kazes ปีที่แล้ว +4

    I just discovered the Proximity Geometry node and I was wondering if we could achieve the same effect with it?

  • @wildguardian
    @wildguardian ปีที่แล้ว +3

    Is there a way to use this in order to make every geometric shape randomly distributed into the instance points not to touch itself? "distance min" isn't good enought.. either too distant or then it clips elements when distance is setted as too close

  • @deepthoughtsradio
    @deepthoughtsradio 5 หลายเดือนก่อน +1

    Great video. Ty!

    • @KenanProffitt
      @KenanProffitt  5 หลายเดือนก่อน

      Glad you enjoyed it! Thanks for watching!

  • @MrAsavich
    @MrAsavich 4 หลายเดือนก่อน

    Awesome!

  • @VisualistAyush07
    @VisualistAyush07 2 ปีที่แล้ว +2

    Thanks man

    • @KenanProffitt
      @KenanProffitt  2 ปีที่แล้ว

      You’re welcome! :) hope it was helpful

  • @abandonedcranium6592
    @abandonedcranium6592 หลายเดือนก่อน

    Very helpful video, although I still can't figure out something. This video demonstrates how to prevent an object from clipping into another object. I'm using "distribute points on faces" to place leaves on a tree. How do I prevent the leaves from clipping into themselves?

  • @GGeneBrush
    @GGeneBrush ปีที่แล้ว +1

    Very useful.

  • @dyingeveryseconds396
    @dyingeveryseconds396 2 ปีที่แล้ว +2

    Awesome!!!!!!

  • @irismuddyhehe
    @irismuddyhehe ปีที่แล้ว +1

    thank you very much!!

  • @RamiLovesFortnite
    @RamiLovesFortnite ปีที่แล้ว +1

    Dear Kenan, thank you for sharing this amazing tool! is there anyway to prevent the grass from overlapping each others using ray cast?

    • @KenanProffitt
      @KenanProffitt  ปีที่แล้ว +2

      Hey there! it all depends on how close together the assets are and how big the overlap of the grass is. The raycast controls where the point of origin they are grown out of is located. So if you adjust that enough the grass won't intersect at all. Kind of depends on the assets. :) Hope that helps....

  • @syidm7840
    @syidm7840 8 หลายเดือนก่อน

    Hey, great tutorial! Just a quick question, why did you use realize instance node?

  • @atekdigital
    @atekdigital ปีที่แล้ว +1

    Great video will this work with particles or scatter object overlapping each other or is there any option. Thanks for the video

    • @KenanProffitt
      @KenanProffitt  ปีที่แล้ว

      It should help with avoiding collision with existing scattered objects. Hope it helps!

  • @sebastianosewolf2367
    @sebastianosewolf2367 ปีที่แล้ว

    why you jdont just added an object for the points before ? instead of "i hope you can see this little tiny gray on gray points ?

  • @alperenozgur
    @alperenozgur ปีที่แล้ว +1

    what about self-intersection?

    • @KenanProffitt
      @KenanProffitt  ปีที่แล้ว

      ah yeah, still workin on that one!

  • @aidelank
    @aidelank ปีที่แล้ว

    what if my rocks are colliding with each other and I want to avoid self-intersections?

  • @arinarici
    @arinarici ปีที่แล้ว +1

    can we do same thing with geometry proximity for instance - with a line ?

    • @KenanProffitt
      @KenanProffitt  ปีที่แล้ว

      Hey Arin! I haven't done much experimenting yet but yes it looks like you can!

  • @andallicansayis
    @andallicansayis ปีที่แล้ว +2

    4:50 :D

  • @Mr-dk1dh
    @Mr-dk1dh 2 หลายเดือนก่อน

    This didnt work for me at first, make sure your ground plane hase enough geometry

  • @_casg
    @_casg 6 หลายเดือนก่อน

    bro what if i wanna distribute on volume? how can I make my particles no touch from my collection object instances

  • @OfficiallyOToole
    @OfficiallyOToole 2 ปีที่แล้ว +1

    Are you from Nebraska? You seem really Nebraskan

    • @KenanProffitt
      @KenanProffitt  2 ปีที่แล้ว +2

      Haha nope. Texan. Nebraskan's seem cool though ;)

  • @waltage
    @waltage ปีที่แล้ว

    now it's work different

  • @phalhappy8612
    @phalhappy8612 ปีที่แล้ว

    How can I use image texture to mask point instancing in Geometry node? I have digital elevation terrain with image texture. I want to instance trees on the green channel of texture. I already isolate the Green Channel in photoshop and make it black and white as a mask. Now I don't know how to instance trees on that terrain base on texture mask. Hope that explain my problem.

  • @SanOcelotl
    @SanOcelotl ปีที่แล้ว

    How do you give a falloff to this? so the closer the grass is to the geometry the less dense it is, is it possible with this node?

  • @_editdude_
    @_editdude_ ปีที่แล้ว

    Hi it's not working in blender 3.3.1 why?

  • @Micthebear1
    @Micthebear1 2 ปีที่แล้ว +1

    What the sus it has been a year!

  • @Pkg_gaming2847
    @Pkg_gaming2847 2 ปีที่แล้ว +2

    Bro after year?

  • @mubzy4706
    @mubzy4706 2 หลายเดือนก่อน +1

    my points are massive ~~ for some reason????????

    • @KenanProffitt
      @KenanProffitt  2 หลายเดือนก่อน

      Hey! you might need to apply the scale on your object. "Ctrl-A + apply scale" that should bring the points down to the correct scale

  • @cl0msy
    @cl0msy ปีที่แล้ว

    i followed exactly what he did and it did not work in 3.4

  • @waltage
    @waltage ปีที่แล้ว

    calculation not accurate