cc8846bef6
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 GeometryInstance (and therefore MeshInstance), 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. Implemented in rasterizer of both GLES2 and GLES3.
117 lines
6.2 KiB
XML
117 lines
6.2 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="GeometryInstance" inherits="VisualInstance" version="3.5">
|
|
<brief_description>
|
|
Base node for geometry-based visual instances.
|
|
</brief_description>
|
|
<description>
|
|
Base node for geometry-based visual instances. Shares some common functionality like visibility and custom materials.
|
|
</description>
|
|
<tutorials>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="get_flag" qualifiers="const">
|
|
<return type="bool" />
|
|
<argument index="0" name="flag" type="int" enum="GeometryInstance.Flags" />
|
|
<description>
|
|
Returns the [enum GeometryInstance.Flags] that have been set for this object.
|
|
</description>
|
|
</method>
|
|
<method name="set_custom_aabb">
|
|
<return type="void" />
|
|
<argument index="0" name="aabb" type="AABB" />
|
|
<description>
|
|
Overrides the bounding box of this node with a custom one. To remove it, set an [AABB] with all fields set to zero.
|
|
</description>
|
|
</method>
|
|
<method name="set_flag">
|
|
<return type="void" />
|
|
<argument index="0" name="flag" type="int" enum="GeometryInstance.Flags" />
|
|
<argument index="1" name="value" type="bool" />
|
|
<description>
|
|
Sets the [enum GeometryInstance.Flags] specified. See [enum GeometryInstance.Flags] for options.
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<members>
|
|
<member name="cast_shadow" type="int" setter="set_cast_shadows_setting" getter="get_cast_shadows_setting" enum="GeometryInstance.ShadowCastingSetting" default="1">
|
|
The selected shadow casting flag. See [enum ShadowCastingSetting] for possible values.
|
|
</member>
|
|
<member name="extra_cull_margin" type="float" setter="set_extra_cull_margin" getter="get_extra_cull_margin" default="0.0">
|
|
The extra distance added to the GeometryInstance's bounding box ([AABB]) to increase its cull box.
|
|
</member>
|
|
<member name="generate_lightmap" type="bool" setter="set_generate_lightmap" getter="get_generate_lightmap" default="true">
|
|
When disabled, the mesh will be taken into account when computing indirect lighting, but the resulting lightmap will not be saved. Useful for emissive only materials or shadow casters.
|
|
</member>
|
|
<member name="lightmap_scale" type="int" setter="set_lightmap_scale" getter="get_lightmap_scale" enum="GeometryInstance.LightmapScale" default="0">
|
|
Scale factor for the generated baked lightmap. Useful for adding detail to certain mesh instances.
|
|
</member>
|
|
<member name="lod_max_distance" type="float" setter="set_lod_max_distance" getter="get_lod_max_distance" default="0.0">
|
|
The GeometryInstance's max LOD distance.
|
|
[b]Note:[/b] This property currently has no effect.
|
|
</member>
|
|
<member name="lod_max_hysteresis" type="float" setter="set_lod_max_hysteresis" getter="get_lod_max_hysteresis" default="0.0">
|
|
The GeometryInstance's max LOD margin.
|
|
[b]Note:[/b] This property currently has no effect.
|
|
</member>
|
|
<member name="lod_min_distance" type="float" setter="set_lod_min_distance" getter="get_lod_min_distance" default="0.0">
|
|
The GeometryInstance's min LOD distance.
|
|
[b]Note:[/b] This property currently has no effect.
|
|
</member>
|
|
<member name="lod_min_hysteresis" type="float" setter="set_lod_min_hysteresis" getter="get_lod_min_hysteresis" default="0.0">
|
|
The GeometryInstance's min LOD margin.
|
|
[b]Note:[/b] This property currently has no effect.
|
|
</member>
|
|
<member name="material_overlay" type="Material" setter="set_material_overlay" getter="get_material_overlay">
|
|
The material overlay for the whole geometry.
|
|
If a material is assigned to this property, it will be rendered on top of any other active material for all the surfaces.
|
|
</member>
|
|
<member name="material_override" type="Material" setter="set_material_override" getter="get_material_override">
|
|
The material override for the whole geometry.
|
|
If a material is assigned to this property, it will be used instead of any material set in any material slot of the mesh.
|
|
</member>
|
|
<member name="use_in_baked_light" type="bool" setter="set_flag" getter="get_flag" default="false">
|
|
If [code]true[/code], this GeometryInstance will be used when baking lights using a [GIProbe] or [BakedLightmap].
|
|
</member>
|
|
</members>
|
|
<constants>
|
|
<constant name="LIGHTMAP_SCALE_1X" value="0" enum="LightmapScale">
|
|
The generated lightmap texture will have the original size.
|
|
</constant>
|
|
<constant name="LIGHTMAP_SCALE_2X" value="1" enum="LightmapScale">
|
|
The generated lightmap texture will be twice as large, on each axis.
|
|
</constant>
|
|
<constant name="LIGHTMAP_SCALE_4X" value="2" enum="LightmapScale">
|
|
The generated lightmap texture will be 4 times as large, on each axis.
|
|
</constant>
|
|
<constant name="LIGHTMAP_SCALE_8X" value="3" enum="LightmapScale">
|
|
The generated lightmap texture will be 8 times as large, on each axis.
|
|
</constant>
|
|
<constant name="LIGHTMAP_SCALE_MAX" value="4" enum="LightmapScale">
|
|
</constant>
|
|
<constant name="SHADOW_CASTING_SETTING_OFF" value="0" enum="ShadowCastingSetting">
|
|
Will not cast any shadows.
|
|
</constant>
|
|
<constant name="SHADOW_CASTING_SETTING_ON" value="1" enum="ShadowCastingSetting">
|
|
Will cast shadows from all visible faces in the GeometryInstance.
|
|
Will take culling into account, so faces not being rendered will not be taken into account when shadow casting.
|
|
</constant>
|
|
<constant name="SHADOW_CASTING_SETTING_DOUBLE_SIDED" value="2" enum="ShadowCastingSetting">
|
|
Will cast shadows from all visible faces in the GeometryInstance.
|
|
Will not take culling into account, so all faces will be taken into account when shadow casting.
|
|
</constant>
|
|
<constant name="SHADOW_CASTING_SETTING_SHADOWS_ONLY" value="3" enum="ShadowCastingSetting">
|
|
Will only show the shadows casted from this object.
|
|
In other words, the actual mesh will not be visible, only the shadows casted from the mesh will be.
|
|
</constant>
|
|
<constant name="FLAG_USE_BAKED_LIGHT" value="0" enum="Flags">
|
|
Will allow the GeometryInstance to be used when baking lights using a [GIProbe] or [BakedLightmap].
|
|
</constant>
|
|
<constant name="FLAG_DRAW_NEXT_FRAME_IF_VISIBLE" value="1" enum="Flags">
|
|
Unused in this class, exposed for consistency with [enum VisualServer.InstanceFlags].
|
|
</constant>
|
|
<constant name="FLAG_MAX" value="2" enum="Flags">
|
|
Represents the size of the [enum Flags] enum.
|
|
</constant>
|
|
</constants>
|
|
</class>
|