c571e4a7f4
The built-in ALPHA in spatial shaders comes pre-set with a per-instance transparency value. Multiply by it if you want to keep it. The transparency value of any given GeometryInstance3D is affected by: - Its new "transparency" property. - Its own visiblity range when the new "visibility_range_fade_mode" property is set to "Self". - Its parent visibility range when the parent's fade mode is set to "Dependencies". The "Self" mode will fade-out the instance when reaching the visibility range limits, while the "Dependencies" mode will fade-in its dependencies. Per-instance transparency is only implemented in the forward clustered renderer, support for mobile should be added in the future. Co-authored-by: reduz <reduzio@gmail.com>
114 lines
7.0 KiB
XML
114 lines
7.0 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="GeometryInstance3D" inherits="VisualInstance3D" version="4.0">
|
|
<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_shader_instance_uniform" qualifiers="const">
|
|
<return type="Variant" />
|
|
<argument index="0" name="uniform" type="StringName" />
|
|
<description>
|
|
</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_shader_instance_uniform">
|
|
<return type="void" />
|
|
<argument index="0" name="uniform" type="StringName" />
|
|
<argument index="1" name="value" type="Variant" />
|
|
<description>
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<members>
|
|
<member name="cast_shadow" type="int" setter="set_cast_shadows_setting" getter="get_cast_shadows_setting" enum="GeometryInstance3D.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 GeometryInstance3D's bounding box ([AABB]) to increase its cull box.
|
|
</member>
|
|
<member name="gi_lightmap_scale" type="int" setter="set_lightmap_scale" getter="get_lightmap_scale" enum="GeometryInstance3D.LightmapScale" default="0">
|
|
</member>
|
|
<member name="gi_mode" type="int" setter="set_gi_mode" getter="get_gi_mode" enum="GeometryInstance3D.GIMode" default="0">
|
|
</member>
|
|
<member name="ignore_occlusion_culling" type="bool" setter="set_ignore_occlusion_culling" getter="is_ignoring_occlusion_culling" default="false">
|
|
</member>
|
|
<member name="lod_bias" type="float" setter="set_lod_bias" getter="get_lod_bias" default="1.0">
|
|
</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="transparency" type="float" setter="set_transparency" getter="get_transparency" default="0.0">
|
|
Transparency applied to the whole geometry. In spatial shaders, transparency is set as the default value of the [code]ALPHA[/code] built-in.
|
|
</member>
|
|
<member name="visibility_range_begin" type="float" setter="set_visibility_range_begin" getter="get_visibility_range_begin" default="0.0">
|
|
Starting distance from which the GeometryInstance3D will be visible, taking [member visibility_range_begin_margin] into account as well. The default value of 0 is used to disable the range check.
|
|
</member>
|
|
<member name="visibility_range_begin_margin" type="float" setter="set_visibility_range_begin_margin" getter="get_visibility_range_begin_margin" default="0.0">
|
|
Margin for the [member visibility_range_begin] threshold. The GeometryInstance3D will only change its visibility state when it goes over or under the [member visibility_range_begin] threshold by this amount.
|
|
</member>
|
|
<member name="visibility_range_end" type="float" setter="set_visibility_range_end" getter="get_visibility_range_end" default="0.0">
|
|
Distance from which the GeometryInstance3D will be hidden, taking [member visibility_range_end_margin] into account as well. The default value of 0 is used to disable the range check.
|
|
</member>
|
|
<member name="visibility_range_end_margin" type="float" setter="set_visibility_range_end_margin" getter="get_visibility_range_end_margin" default="0.0">
|
|
Margin for the [member visibility_range_end] threshold. The GeometryInstance3D will only change its visibility state when it goes over or under the [member visibility_range_end] threshold by this amount.
|
|
</member>
|
|
<member name="visibility_range_fade_mode" type="int" setter="set_visibility_range_fade_mode" getter="get_visibility_range_fade_mode" enum="GeometryInstance3D.VisibilityRangeFadeMode" default="0">
|
|
Controls which instances will be faded when approaching the limits of the visibility range. See [enum VisibilityRangeFadeMode] for possible values.
|
|
</member>
|
|
</members>
|
|
<constants>
|
|
<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 GeometryInstance3D.
|
|
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 GeometryInstance3D.
|
|
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="GI_MODE_DISABLED" value="0" enum="GIMode">
|
|
</constant>
|
|
<constant name="GI_MODE_BAKED" value="1" enum="GIMode">
|
|
</constant>
|
|
<constant name="GI_MODE_DYNAMIC" value="2" enum="GIMode">
|
|
</constant>
|
|
<constant name="LIGHTMAP_SCALE_1X" value="0" enum="LightmapScale">
|
|
</constant>
|
|
<constant name="LIGHTMAP_SCALE_2X" value="1" enum="LightmapScale">
|
|
</constant>
|
|
<constant name="LIGHTMAP_SCALE_4X" value="2" enum="LightmapScale">
|
|
</constant>
|
|
<constant name="LIGHTMAP_SCALE_8X" value="3" enum="LightmapScale">
|
|
</constant>
|
|
<constant name="LIGHTMAP_SCALE_MAX" value="4" enum="LightmapScale">
|
|
</constant>
|
|
<constant name="VISIBILITY_RANGE_FADE_DISABLED" value="0" enum="VisibilityRangeFadeMode">
|
|
Will not fade itself nor its visibility dependencies, hysteresis will be used instead. See [member visibility_range_begin] and [member Node3D.visibility_parent] for more information.
|
|
</constant>
|
|
<constant name="VISIBILITY_RANGE_FADE_SELF" value="1" enum="VisibilityRangeFadeMode">
|
|
Will fade-out itself when reaching the limits of its own visibility range. The fading range is determined by [member visibility_range_begin_margin] and [member visibility_range_end_margin].
|
|
</constant>
|
|
<constant name="VISIBILITY_RANGE_FADE_DEPENDENCIES" value="2" enum="VisibilityRangeFadeMode">
|
|
Will fade-in its visibility dependencies (see [member Node3D.visibility_parent]) when reaching the limits of its own visibility range. The fading range is determined by [member visibility_range_begin_margin] and [member visibility_range_end_margin].
|
|
</constant>
|
|
</constants>
|
|
</class>
|