In my quest of having better performances when using Scatter (my particle distribution addon for environment and archviz artists) i tried to experiment with a “proxy” system in blender (with python).
By proxy i mean an approximative low resolution geometry used in viewport only, a necessity for archviz and environment artists,as our only options right now with demanding scenes are bounding boxes and not displaying the assets/particles at all (which is far from ideal).
"Proxify" is my 2nd attempt with proxies, and it uses an universal concept of meshdata-exchange (basically changing the mesh data automatically if toggle/render/rendered view).
Right now Proxify can:
- Individually assign proxies in
object>viewport display>Proxifywith a pointer.
- Toggle proxies at will.
- Toggle proxies automatically on rendered view (if allowed)
- Toggle proxies automatically on final render (if allowed)
- Support particles systems
- Support instancing/duplications
- Support animation (if vgroups assigned for proxy mesh)
- Batch toggle proxies (on/off/toggle to scene/selection).
- Batch assign proxies with a naming system
- Batch remove proxies
- Batch hide/unhide/store proxies to collection.
- Protect the data, as the pointer object can be deleted and everything will still work fine.
- Individual data/options if you’d like to freeze the proxy toggle on rendered view, final render ect…
- Support for external api, operators are thinked with override args in mind, so that other addon can access Proxify operators easely
you will find a new tab in viewport
Properties>Object>viewport display>Proxify, where you can choose your proxy object
and another tab in
Properties>Scene>Proxify for (batch)toggling everything and other ops.
jakub aka carbon2 is also working really hard with “Display as Point cloud” for particles (for scatter) but ideally, everyone need a display as point cloud option as well.
I really hope that our attempts can be discussed a bit by the institute in a meeting one day. maybe @sybren can help, I believe he noticed proxify on twitter
we are working hard on this problem/limitation, but we can’t do much within python reach for point clouds