← All ideas
  • Published 3 Sep 2019

BlenderScatter | Proposal

Current scattering system is lacking some crucial features modern scattering pluging have for years. Also it presenting unoptimized UI simply because artist have to use hair(!) particle system just to scatter some things over the surface. Which makes Blender Scattering system unoptimized for a general archviz and production use cases.

There are indeed several addons for Blender from the community built over the current limited scattering system - Grasswald, ROA, Scatter (comming soon), but they do not solve theses issues and have limited use case.

A list of missing features and points I want to adress related to scattering.

Important

  • Collisions avoidance based on BBox of the element with spacing control.
  • Better controls over rotation, scale, position and their randomization of the scattered element. Currently rotation and scale controls are spreaded along different tabs and limited to 1 or 3 axis. Position conrol and jittering aren't presented.
  • Proxies (simplifed representation for the model for the viewport).
  • Better display options to see the volume of the object (point clouds, solid boxes, not just a wire bounds). Current display options are rather useless.
  • Scattering along curves with spacing, offset and randomness control
  • WeightProximity via Curve (to make classical scattering workflow possible with area curves)

Less important

  • Better controls over mapping for the textures. Useful for clasters spreading. At the moment there's no way to rotate the texture without object mapping which doesn't work correctly.
  • There's no way to preview the procedural textures from Texture tab on the scattering surface, which is more like general issues.
  • Texture influence over color of scattered elements with color interpolation per individual elements. Use case - rugs, grass colloring per texture. Currently the texture could be project onto the elements as is with Object coordinates without interpolation between elements.

Here is the perfect example of robust scattering system made by Corona devs.

UI Example: corona-renderer.com/stuff/helpdesk/scatter-v4/scatter-default-ui.png

UX Example: coronarenderer.freshdesk.com/support/solutions/articles/5000544921-how-to-use-the-corona-scatter-

Papers (not sure that this will be useful within this proposal but anyways, maybe someone will add particle self-collision based on this ) pdfs.semanticscholar.org/2491/1b5ddb4e5955b6285b9e8fc7311656334a48.pdf (the collision, drag and surface flow implementations take about 100 lines of code. )

blender_asL68DkPI8.png

98.7%

Development Status: Open

Upvote 74 Downvote 1
Yury_Ziankoyuski
3 Sep 2019

9 Comments

wilBr

yes please, too camera distance to control culling, scale, density etc... with falloff and safe area around, including back offset for reflections cases and auto assign to current camera (like forest pack)

3
robockelford

100% yes!

This is one of 3 major things that I would need to be able to do before moving 100% across to blender. The others are paramteric object creation (Railclone style generators) and render proxies, though the latter is probably less important.

Some nice haves would be better object colour controls /layer control for imported CAD imformation, but this is all doable with an addon (wish I could code one).

One route I've been looking into is whether the animation nodes addon would allow for generation of the above. It seems to have all the functionality to do much more than this sort of thing, but I wonder if that may be the best route?

In any case, a scattering addon, with the above controls would be great. One thing too - there is functionality in blender to limit the visibility of objects in the viewport to wireframe / bounding box, something I'm sure you could do with nodes. I just haven't had time to experiment with this yet.

R

3
DB3D

* @robockelford * check out my addon blenderartists.org/t/auto-clustering-scattering-addon/1177672 i target forest pack

2
___me2

* @robockelford * Almost all the things can be done in Animationnodes , but it would be a hack, as you rightly assumed, cause not C. For certain points above i can imagine a relativly low-entry-level node with a few settings and someway to channel your geometry to. Building these things in animationnodes is in every way possible but it demands the end-user to understand what he is doing to some degree, so its not a turnkey-scatter-solution. This proposal might be discussed as a base for certain things that user might want to achieve using particle-ui-nodes, maybe ... devtalk.blender.org/t/particle-nodes-ui/8808/3 ..

1
robockelford

* @DB3D * Thanks. Amazing, I'm downloading now.

adrparkinson

Another feature that would be beneficial to a scattering tool is once we have an asset manager, to be able to pick different scatter libraries and apply them onto any object. So if I want grass on my terrain I can just drag it onto the ground mesh and it'll be imported with all the correct scatter settings. No more setting things up each time like I currently have to do in Graswald.

1

I went through about 50 topics on various forums, some of them was from 2008 and I don't think collision detection was ever a thing in Blender. There's no proper way to get rid of intersecting / overlapping / colliding instances of the scattered object.

aweidenhammer

A good scatter function is pretty high on my list. I needed it just the other day, and the scatter built into 2.80 just didn't cut it.

Ideas-Battleship

How do different softwares handle particles? I have always felt that particle should be its own object but in blender it is almost like a property of an existing object because you add particles to existing object instead of adding "particles" as its own object. Do other 3d software use similar approach to blender or are there different approaches?