Force Fields: implement early filtering by the Affect flags.

Most fields have Affect Location and Rotation options that switch
off their effect, but they are only checked as the last step after
the force is already computed. It is more efficient to check it
when building the list of field objects, just like zero weight.
It is also possible to check the strength-related fields for 0.

As an aside, this adds Location to Texture fields (they don't
handle rotation) and both Location & Rotation checkboxes to
Fluid Flow. Boid and Curve Guide remain without options for
now as they are completely different from others.

Differential Revision: https://developer.blender.org/D10087
This commit is contained in:
Alexander Gavrilov
2021-01-09 22:24:48 +03:00
parent 64a963486f
commit 78ff852680
9 changed files with 91 additions and 17 deletions

View File

@@ -118,6 +118,9 @@ class PHYSICS_PT_field_settings(PhysicButtonsPanel, Panel):
col.prop(field, "strength")
sub = col.column(heading="Affect")
sub.prop(field, "apply_to_location", text="Location")
col = flow.column()
col.prop(field, "texture_nabla")
col.prop(field, "use_object_coords")
@@ -128,6 +131,10 @@ class PHYSICS_PT_field_settings(PhysicButtonsPanel, Panel):
col.prop(field, "strength")
col.prop(field, "flow")
sub = col.column(heading="Affect")
sub.prop(field, "apply_to_location", text="Location")
sub.prop(field, "apply_to_rotation", text="Rotation")
col = flow.column()
col.prop(field, "source_object")
col.prop(field, "use_smoke_density")