4
$\begingroup$

I'm wondering what the best way is to evenly distribute objects onto another object. I have a circular object that I would like to evenly distribute these instances onto. I was thinking geometry nodes would be a good solution but I'm having some doubts as something I would like to have is a way to control clipping. I'm sure there is a way I could do this almost programmatic and not manually aligning. A couple of things that are technically challenging here for me are the alignment and then somehow placing these flat objects onto a curved surface in a way where they lie flat and follow that curve. enter image description here

This is an example of the curved object and one of the instances I'm trying to place. If anyone has a suggestion or a workflow to accomplish this I'd really appreciate the input. Thanks so much!

edit: Figured out how to place the object onto the curved mesh using this tutorial https://www.youtube.com/watch?v=-XYuno3DgAo

Though I am still stuck on how to array this around the circle evenly. enter image description here

I went ahead a used the tissue tools tessellate function suggested by @moonboots and was able to accomplish evenly spacing the instances across the target object. Now my only question is how to change the spacing. It looks like the tissue tools append an instance onto each face, is there a way to adjust this to say 4 faces instead of one and increase the scale of the instance to achieve the same result?

enter image description here

current progress: I found a geometry node set up and modified it slightly to end up here. I'm getting a semi desirable result, as I'm getting instances on the object but the problem is there are the way to many lol! Any idea on how to remove some or control the density/position of the instances? feel like im getting closer!

current object results: enter image description here

geometry node set up: enter image description here

$\endgroup$
5
  • 1
    $\begingroup$ Maybe this is what you want. blender.stackexchange.com/questions/256450/… $\endgroup$
    – NatureK
    Mar 15 at 23:25
  • 1
    $\begingroup$ is you mesh always circular? then i could offer a solution with GN $\endgroup$
    – Chris
    Mar 17 at 16:43
  • $\begingroup$ it is! i'm using a uv sphere. $\endgroup$
    – rtwhite
    Mar 17 at 23:46
  • $\begingroup$ I think the idea could be similar either you use tissue, or geometry nodes or just textures: have a low res mesh to place the objects and then subdivide it to have a smooth surface to project onto... that would give you max control I think... as an alternative you could use 2 meshes and wrap one into the other, but the concept is the same. $\endgroup$
    – alambre
    Mar 19 at 7:02
  • $\begingroup$ Here some tests based on that one in previous thread, but using face area to try to get the scale of instances... by sliding edgeloops you can modify shape distribution. First example is a more generic one, that 'works' on any shape... second one generates a virtual sphere, you set resolution and will project onto object... the red objects and the blue ones uses different approach to get the face area and projected vertex. Many things to improve yet... $\endgroup$
    – alambre
    Mar 19 at 7:07

2 Answers 2

5
$\begingroup$

This group will allow you to 'UV Map' any geometry in the 0-1 XY square, in the same way an image texture, onto the surface of a UV-mapped object, independently of the target's topology.

  • This example splits the edges of the target object , captures its 3D point locations and normals, and then flattens it to its own UV Map.
  • It arranges your motif object in the World 0-1 UV square, exposing various adjustments as parameters in the modifier for thickness, X and Y counts, map-scales..
  • It can then transfer the locations and normals of the target object to the motif-arrangement by interpolated proximity...
  • .. and deform the motif-geometry to the transferred values:

enter image description here

I'm sure the interface could be improved to suit your requirements, maybe by adding some nodes; this example is to illustrate the principle. You could change the mapping-area to something more convenient, imitate Image Texture's 'Repeat' setting, arrange instances hexagonally, and so on.. Any geometry in the UV square, (or maybe a scaling of it) will be deformed to the UV-mapped surface.

enter image description here

If you plug the last node in Motif Settings straight into the output, you'll see how it works:

enter image description here

Blender 3.1 stable

$\endgroup$
9
  • $\begingroup$ Thank you so much!! this actually got me super close to what I've been looking for during this journey of mine! The only issue is that the seems are pretty apparent, any eloquent ways of hiding this? imgur.com/g8FxzzW imgur.com/FabrEzM $\endgroup$
    – rtwhite
    Mar 20 at 2:31
  • 1
    $\begingroup$ Hi @rtwhite ! Maybe you could share your file on pasteall.org/blend so we can see what's up :) $\endgroup$ Mar 20 at 7:53
  • 1
    $\begingroup$ @rtwhite Here's a Fixed Version. If you want a single line of instances, a grid won't do.. painfully, it needs at least 2 vertices in each direction. I've made a version which uses a line instead. Your defect was showing because you had an instance outside the UV grid, crossing the seam from 1 to 0. I've added a yellow cluster which optionally shows the UV map, so you can see where it's safe to put the objects to be deformed. (You don't have to use the 'Motif Settings' at all.. any geometry you put in the UV area will be mapped) $\endgroup$ Mar 20 at 18:10
  • 1
    $\begingroup$ @rtwhite No problem. Answering other people's questions helps me learn GN myself.Personally, I get impatient with most of the GN tutorials out there..they don't break down / abstract the principles enough for me. I like Entagma's videos, though... a lot of the Blender GN stuff is out of date.. old GN system, but still useful for ideas, general understanding. $\endgroup$ Mar 21 at 18:20
  • 1
    $\begingroup$ @rtwhite Indeed. A simple image-texture, or a more tricky procedural texture, in a material, would be a more conventional approach to decorating the bowl. Maybe with a bump-map to get a simulation of shallow-relief. But this problem is worth solving for close-up: no way would you get such nice crisp edges and profiles on an applied motif that way. A completely flat motif would need some sort of offset from Z=0 for it to show cleanly.. and there's a danger you would see the gap. $\endgroup$ Mar 22 at 7:04
4
$\begingroup$

There are several ways to do it, like Array + Simple Deform (Bend) + Lattice, but you can use the Tissue Tool addon:

Install the addon, activate, select your object, shift select the bowl, open the N panel > Tissue > Press the Tessellate button:

enter image description here

Here is what it gives, it creates one instance per face:

enter image description here

$\endgroup$
7
  • $\begingroup$ So this is super cool! My only question would be how could I adjust the placement? It looks like this places the instances on every face. Is there a way to do every other face or even increase the face placement size to 4 from 1, ect. Thanks! $\endgroup$
    – rtwhite
    Mar 16 at 23:17
  • 1
    $\begingroup$ I don't see that in the options of Tissue Tool, if you want something more flexible, maybe try Array + Simple Deform + Lattice, do you want me to explain? $\endgroup$
    – moonboots
    Mar 17 at 8:36
  • 1
    $\begingroup$ If you plan to change the emitter shape (your bowl) it's better to use a particle system or even better Geometry Node, I'm going to see the way to do it, or maybe someone better than me in that field ;) $\endgroup$
    – moonboots
    Mar 17 at 15:57
  • 3
    $\begingroup$ So I've given some tries and methods like Instancing or Particles have some drawbacks if you plan to have something not destructive that allows to change the bowl shape, Geometry Nodes are the way to go, I hope someone will answer, Chris is a beast in GN but he's lazy, maybe Gorgious or Robin Betts? $\endgroup$
    – moonboots
    Mar 17 at 16:37
  • 1
    $\begingroup$ i feel very flattered - but my knowledge is in fact very limited. Robin is THE beast and Gorgious is - as the name says - just gorgeous. $\endgroup$
    – Chris
    Mar 17 at 16:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.