I am not quite sure what you mean by “one scatter layer per instance”.
As an example I have created a simple file with 3 planes (yellow, green and pink) and 2 objects (blue cones and red icospheres).
The Yellow plane has the red icospheres scattered on it
The Green plane has the blue cones on it
The Pink plane has both scattered on it.
The icospheres are in the same collection as the yellow plane, and the cones are in the same collection as the green plane, the pink plane is in a collection by itself.
I then set up some view layers:
“VL YellowPlane” which has the yellow plane colleciton and the scatter collection selected. This shows the yellow plane and all 3 scatter systems.
“VL Yellow Plane no scatter” which has just the yellow plane collection. This shows no scattering (as expected)
^ “VL Green Plane” - contains just the green plane and the scatter collection. When rendered, shows the green plane but all of the scattered assets for all 3 planes.
“VL Pink Plane” contains just the pink plane and the scatter collection. When rendered, shows the pink plane but all of the scattered assets for all 3 planes.
“VL Everything” contains all collections and when rendered correctly shows everything
It seems that the only collection that controls if a scatter is visible is the “Scatter5 [Scene] scatter_obj” collection, which turns them all on or all off. I can not see how to create a separate collection for each scatter in this collection. As View Layers only work at the collection level, I would need to somehow get each object in this collection into it’s own sub-collection.
Even if you “exclude from view layer” the collection that the scattered object is in it still shows up in the rendered image as the Geonode modifier in “Scatter5 [Scene] scatter_obj/…” is creating new instances of it.
I have uploaded the sample file to explain more clearly than my rambling explanation.
I am not yet familiar with the Geonodes,
In softimage there is the Icetree where you can delete the particles via a volume,
that should work similar in Blender, right?
I’m sorry I’m not familiar with view layers, scatter 5 will create a new object per particle layer, so if you want a specific instance in your view layer, you will need to create a particle system with only one instances instead of mixing them in one particle system
There’s the proximity node, but unfortunately it’s only a proximity by edge/face/vertices. I advise them to add proximity by volume in this but they didn’t want to for some reasons
In 3.0 there will be a ray casting node that could work for this usage too
The problem is that regardless of whether I have a single particle system with mutliple instances, or multiple particle systems each with a single instance, all of the created objects get put into the same collection (Scatter5 [Scene] scatter_obj) - highlighted in Red in the image.
View Layers can only turn on or off entire collections, they do not work at the object layer. In order to use Scatter in any kind of compositing workflow the objects need to be in individual collections (or at least one collection per source object), more like this:
If I move the created scatter_obj into sub collections, then I can turn them on and off individually within view layers with the same granularity as the source planes that they are scattering across.
Or am I missing something fundemental and there is already a way of creating multiple “Scatter5 [Scene] Collections” or “Scatter5 [Scene] scatter_obj” collections through the interface?
Ok, thanks. I was concerned that fiddling around with the collections and objects that Scatter creates would break things. Afterall the last time I tried to move an object to a different collection I caused all kinds of problems . I didn’t want to do this and then not be able to edit the scatters or have it generate random results.
Knowing that I can rearrange the objects into my own collections does what I need it to do.
Can I suggest that a comment in the documentation for the final product makes it clear that the objects can be moved into other collections just so you don’t keep getting people like me getting confused as how to make it work with a Layered workflow.
Once I knew that the object could be moved into another collection I edited add_psy.py to create the sub collection for the emitter automatically.
I am not sure what your attitude to conde snippets being posted here is, so I wont post the patch up here unless you are happy for me to do so (and you are interested in it).
Hey folks
It seems that the switch from 2.93 to 3.0 will be similar to what we had from 2.79 to 2.80
so i’d like to hear what’s you guys update behavior
What version are you currently using?
below
2.83
2.90
2.91
2.92
2.93
0voters
What’s the best statement for you?
I tend to be slow at updating my blender version
i stick with LTS
I always update to the latest blender version officially available when it’s out
0voters
Are You ok with the fact that Scatter5 will be exclusive to Blender3.0 or above?
I didn’t answer the middle question because i tend to update when, i can be bothered or if the new version has a lot of feature that i want. For example i skipped 2.91 because non of the changes had an affect on my workflow.
def new_scatter_obj(name, emitter_obj):
"""create object used by geonode scattering, access via scatter_system.obj"""
name = f"scatter_obj : {name}"
o = bpy.data.objects.new(name, bpy.data.meshes.new(name), )
o.hide_select = True
#indicate parent emitter
o.scatter5.emitter_obj = emitter_obj
utils.create.lock_transform(o)
emitter_name = emitter_obj.name
base_coll_name = f"Scatter5 [{bpy.context.scene.name}] scatter_obj"
emitter_coll_name = f"{base_coll_name} : {emitter_name}"
emitter_coll = bpy.data.collections.get(emitter_coll_name)
if not emitter_coll:
coll = bpy.data.collections.get(base_coll_name)
emitter_coll = utils.collection.create_new_collection(emitter_coll_name, base_coll_name)
emitter_coll.objects.link(o)
return o
I agree that is probably niche, but I think that people will not move auto-generated objects around unless they know that they are not going to break the systems that created them in the first place.
Hi Dorian,
Yeah this is happening systematically, everytime in fact, guaranteed. I have not found a situation where I can exit out of manual distribution spray brush mode without it happening.
It happens pressing ESC on keyboard to exit, it also happens when pressing the Exit red button in the top right hand corner.
There are no errors in the console
I’m taking a month off.
Right now we are in a really unstable situation. It seems like every tutorial on youtube about geonode will already be obsolete, only a few months after the new system initial release…
Don’t worry, the addon structure is well done, it will be easy for me to adapt, I’ll just need to rework the geonode scattering engine (except if there are whole features that are gone, but I think that this is quite unlikely).
I still plan the release for 1rst of November, right after blender 3.0 release
Does anyone know how to cleanly remove previous versions of Scatter? I horked up my Scatter 4.0 install and everyone is just wonky. How can I cleanly remove scatter 3.0 from blender so I can start from scratch?
Best way to remove a plugin is by going in your addon directory and removing folders or .py files. In Scatter4 you will see two folder the “Scatter” folder and the “Scatter Library” folder. In Scatter5 the library is located elsewhere