diff options
author | Fernando Cosentino <fbcosentino@yahoo.com.br> | 2021-09-25 19:40:26 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-01-05 11:47:51 +0100 |
commit | ca79373d135634b45518e82edcce15b15d25171c (patch) | |
tree | 905939a9f7e2ffcfa424e45845bbe4f9cfe74a51 /servers/rendering/renderer_scene.h | |
parent | 2c7fcdd7f94307a8dbf9436edc3294aaa6f87a88 (diff) | |
download | redot-engine-ca79373d135634b45518e82edcce15b15d25171c.tar.gz |
Added material_overlay property to MeshInstance3D
Applying overlay materials into multi-surface meshes currently
requires adding a next pass material to all the surfaces, which
might be cumbersome when the material is to be applied to a range
of different geometries. This also makes it not trivial to use
AnimationPlayer to control the material in case of visual effects.
The material_override property is not an option as it works
replacing the active material for the surfaces, not adding a new pass.
This commit adds the material_overlay property to GeometryInstance3D
(and therefore MeshInstance3D), having the same reach as
material_override (that is, all surfaces) but adding a new material
pass on top of the active materials, instead of replacing them.
Diffstat (limited to 'servers/rendering/renderer_scene.h')
-rw-r--r-- | servers/rendering/renderer_scene.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/servers/rendering/renderer_scene.h b/servers/rendering/renderer_scene.h index ecafb7bc08..20ca49cd71 100644 --- a/servers/rendering/renderer_scene.h +++ b/servers/rendering/renderer_scene.h @@ -95,6 +95,7 @@ public: virtual void instance_geometry_set_flag(RID p_instance, RS::InstanceFlags p_flags, bool p_enabled) = 0; virtual void instance_geometry_set_cast_shadows_setting(RID p_instance, RS::ShadowCastingSetting p_shadow_casting_setting) = 0; virtual void instance_geometry_set_material_override(RID p_instance, RID p_material) = 0; + virtual void instance_geometry_set_material_overlay(RID p_instance, RID p_material) = 0; virtual void instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RS::VisibilityRangeFadeMode p_fade_mode) = 0; virtual void instance_geometry_set_lightmap(RID p_instance, RID p_lightmap, const Rect2 &p_lightmap_uv_scale, int p_slice_index) = 0; |