The trick is to add the Join geometry node before the group output for the source object and plug the pointcloud that you need in there:
Then that pointcloud can be read by other geo nodes with all the attributes.
The trick is to add the Join geometry node before the group output for the source object and plug the pointcloud that you need in there:
Ahaaaaaaaa Nice trick !!!
I hope this has no impact on performances tho
@slowburn
I tried and itās partially working but, thereās a problem with this technique,
if you do your instancing is coming from emitter vertices, then thereās no point cloud componement
or a task for this perhaps? perhaps a component convert node in the work?
No, thereās no way to convert vertices directly into a point cloud AFAIK. Maybe developers didnāt see a point to do that. But for interacting between different GN modifiers it would be useful.
Well a node that convert vertices to point could resolve a lot of the issues,
because per vertices distribution is often forgotten.
just to give an example, we donāt have proper ID seeds
TBH there is no need for an specific vertex to points convert node, just a point distribution mode that places one point per vĆ©rtice, thatās it, or could be part of the actual point distribution node, the one with random or poisson disk
Well for flexibility of course converting vertices to point and points back to vertices seems a no-brainer
Let say you just distributed your point clouds with the scatter node and want use modifiers on your cloud?
well you canāt because point clouds types are not supported by modifiers and other nodes dedicated to meshesā¦
Vertices and point cloud are extremely tied anyway, to be honest i donāt understand why they go splitted back in 2020
I know that these kind of ādetailsā are boring comparing to working on new features but at some point we need to tackle the workflows incoherencies like this IMHO
But thatās not converting vertex to points, what you want is to convert from one object data type to another, thatās a different thing.
AFAIK thatās not going to happen, at least for now, but I can be wrong.
What you are asking for is that if your output in the modifier is a point cloud, then the object data should turn into a point cloud type, however AFAIK that cannot happen.
What you can do is to create a mesh object and then get the data from the point cloud, that way you will be able to use the mesh modifiers.
Just like you can convert a volume to a mesh and a mesh to a volume, i donāt see why we couldnāt do that with vertices & points
I think thereās some misunderstanding here, because mostly everything you can do with points you can also do with mesh vertices. The idea of point clouds is to have a more basic storage for data with none of the complications like edges, faces, etc.
So in any current workflow, converting from mesh vertices directly to points will not get you anything. If you want the id
attribute for instancing, just use attribute randomize with id
as the result. The result should be the same.
I honestly donāt understand what youāre skeptical about. The point to volume node already does this, and a Point Distribute Volume node will cover the other direction.
What might actually be helpful is a way to generate one point per mesh face, that would be simple to add and possibly a nice improvement.
That would be very useful
@JskJ I may have missundertood you, but you want is this:
1.- You create a point cloud object
2.- You create a GN modifier and distribute some point clouds
3.- You create some geometry inside GN from that point cloud
4.- You want to modify that PointCloud object with some other modifier put after the GN modifier
Since PointCloud is an specific data type you cannot add a Subdivision Surface Modifier to that point cloud object.
That does not mean that you cannot use nodes internally in the GN modifier/tree, but in the end you cannot treat that object as a mesh data object because in the end itās a point cloud data object.
Thatās what I meant
Iām not sure if thatās what they were talking about, but yes : a more ārationalā scattering method would be very welcome. Iāve seen people trying to instance objects in regular patterns to make tires, for instance. Of course itās possible to use the points directly, but more often than not youāll want to instance the object on the face itself. Same goes for edges, although this is most likely less useful than faces.
OR this could be covered by a loop and some mesh analysis variablesā¦ something like āfor each edge in mesh, create a point on edge centerpoint and inherit normalā
A nice tool would be something similar to the Component Analyser in Sverchok. Lotās of super handy analytical outputs that can be use for all sorts of selections and masking like face centres, face areas, boundary edges, edge angle etc. That would give people access to things like face centres but also other data that is invaluable
Hehe that canāt work because the randomize node need id
as the seed
But I get it, yeah we can create the id
attribute ourselves. By default it will use listing order, we also could use their local position, both have their cons but itās indeed possible
I was just explaining to @JuanGea that converting one type to another is possible and already happening, ( because āAFAIK thatās not going to happenā as he said )
If complex type conversion such as volume to point already exists, why couldnāt we have a simple node that convert a mesh type to a pointcloud type (with option per vertices/edges/face for example) and another node that convert pointcloud to back to meshes?
And the argument of āthey are mostly the same thing hence no need for conversionā do not make sense, because otherwise the separation between the two type wouldnāt be done at the first place.
From a methodology & flexibility standpoint, once we propose two similar type, a way to convert them seems quite obvious. And yes, would be useful in a lot of cases too. Let say we want to store a suzanne mesh with itās point cloud emitted from their vertices in a geometry?
Just like @slowburn teached me above
The trick is to add the Join geometry node before the group output for the source object and plug the pointcloud that you need in there:
well right now itās not possible if I made my scatter from vertices because we have no conversion bridge between mesh/point cloud.
I think I demonstrated quite clearly in this case that having to bridge between these two similar type can cause issues
What might actually be helpful is a way to generate one point per mesh face, that would be simple to add and possibly a nice improvement.
Note aside, Thatās already possible By subdividing the faces and using the attr proximity node
But yes that would be nice to have a node that can create points out from meshes vert/faces/edges with all the attr weād need
Yes and thatās the problem !
having a node that convert pointcloud back to vertices would let us use features exclusive to the mesh type, aka all current modifiers.
Subdivision is a bad example in this case because subdividing a mesh only made from vertices do not make sense, but think about every other modifiers that the pointcloud type cannot use.
Which modifiers exactly do you wish you could use with point cloud objects ?
All of them?
Iām simply pointing out a design that leads to a limitation/ lack of flexibility
Maybe you know this already, but point clouds in the output of the nodes modifier are automatically converted to mesh vertices if the next modifier does not support working with points directly.
Iām not challenging you, @JskJ
I am trying to help point out the use case, the lack and the need
Ah no i didnāt knew that,
last time i checked it did not worked,
itās a bit weird that this is done automatically tho
Iām not challenging you, @JskJ
I am trying to help point out the use case, the lack and the need
Sure
here is an example where Iām stuck because I canāt convert points back to vertices
I canāt save my points by joining them in the geometry to split the component later because thereās no way to convert my vertices into a pointcloud
and here are examples on how a node that convert mesh to point can be useful:
-place points on middle of edges/ per faces/ per vertices with id/normal attr already set up
@HooglyBoogly I think he means that if he uses a point cloud object for GN, and then the end geometry is a cube for example, after the GN modifier he canāt add any Mesh modifier, like a subdivision surface or a boolean.