class-description NEWS COMMUNITY STORE TUTORIALS SIGN UP LOGIN LOGOUT ROKOJORI NEWSLETTER SIGN UP LOGIN LOGOUT NEWS COMMUNITY STORE TUTORIALS TOGGLE FULLSCREEN VOLLBILD AN/AUS Object RenderingServer
Server for anything visible.
The rendering server is the API backend for everything visible. The whole scene system mounts on it to display. The rendering server is completely opaque: the internals are entirely implementation-specific and cannot be accessed.
The rendering server can be used to bypass the scene/Node system entirely. This can improve performance in cases where the scene system is the bottleneck, but won't improve performance otherwise (for instance, if the GPU is already fully utilized).
Resources are created using the *_create functions. These functions return RIDs which are not references to the objects themselves, but opaque pointers towards these objects.
All objects are drawn to a viewport. You can use the Viewport attached to the SceneTree or you can create one yourself with viewport_create. When using a custom scenario or canvas, the scenario or canvas needs to be attached to the viewport using viewport_set_scenario or viewport_attach_canvas.
Scenarios: In 3D, all visual objects must be associated with a scenario. The scenario is a visual representation of the world. If accessing the rendering server from a running game, the scenario can be accessed from the scene tree from any Node3D node with [method Node3D.get_world_3d]. Otherwise, a scenario can be created with scenario_create.
Similarly, in 2D, a canvas is needed to draw all canvas items.
3D: In 3D, all visible objects are comprised of a resource and an instance. A resource can be a mesh, a particle system, a light, or any other 3D object. In order to be visible resources must be attached to an instance using instance_set_base. The instance must also be attached to the scenario using instance_set_scenario in order to be visible. RenderingServer methods that don't have a prefix are usually 3D-specific (but not always).
2D: In 2D, all visible objects are some form of canvas item. In order to be visible, a canvas item needs to be the child of a canvas attached to a viewport, or it needs to be the child of another canvas item that is eventually attached to the canvas. 2D-specific RenderingServer methods generally start with canvas_*.
Headless mode: Starting the engine with the --headless [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url] disables all rendering and window management functions. Most functions from RenderingServer will return dummy values in this case.
* Constants<>():*

NO_INDEX_ARRAY:null = -1
Marks an error that shows that the index array is empty.


ARRAY_WEIGHTS_SIZE:null = 4
Number of weights/bones per vertex.


CANVAS_ITEM_Z_MIN:null = -4096
The minimum Z-layer for canvas items.


CANVAS_ITEM_Z_MAX:null = 4096
The maximum Z-layer for canvas items.


CANVAS_LAYER_MIN:null = -2147483648
The minimum canvas layer.


CANVAS_LAYER_MAX:null = 2147483647
The maximum canvas layer.


MAX_GLOW_LEVELS:null = 7
The maximum number of glow levels that can be used with the glow post-processing effect.


MAX_CURSORS:null = 8


MAX_2D_DIRECTIONAL_LIGHTS:null = 8
The maximum number of directional lights that can be rendered at a given time in 2D.


MAX_MESH_SURFACES:null = 256
The maximum number of surfaces a mesh can have.


MATERIAL_RENDER_PRIORITY_MIN:null = -128
The minimum renderpriority of all materials.


MATERIAL_RENDER_PRIORITY_MAX:null = 127
The maximum renderpriority of all materials.


ARRAY_CUSTOM_COUNT:null = 4
The number of custom data arrays available (ARRAY_CUSTOM0, ARRAY_CUSTOM1, ARRAY_CUSTOM2, ARRAY_CUSTOM3).


PARTICLES_EMIT_FLAG_POSITION:null = 1


PARTICLES_EMIT_FLAG_ROTATION_SCALE:null = 2


PARTICLES_EMIT_FLAG_VELOCITY:null = 4


PARTICLES_EMIT_FLAG_COLOR:null = 8


PARTICLES_EMIT_FLAG_CUSTOM:null = 16
Enum TextureType<>():Enum

TEXTURE_TYPE_2D:null = 0
2D texture.


TEXTURE_TYPE_LAYERED:null = 1
Layered texture.


TEXTURE_TYPE_3D:null = 2
3D texture.
Enum TextureLayeredType<>():Enum

TEXTURE_LAYERED_2D_ARRAY:null = 0
Array of 2-dimensional textures (see Texture2DArray).


TEXTURE_LAYERED_CUBEMAP:null = 1
Cubemap texture (see Cubemap).


TEXTURE_LAYERED_CUBEMAP_ARRAY:null = 2
Array of cubemap textures (see CubemapArray).
Enum CubeMapLayer<>():Enum

CUBEMAP_LAYER_LEFT:null = 0
Left face of a Cubemap.


CUBEMAP_LAYER_RIGHT:null = 1
Right face of a Cubemap.


CUBEMAP_LAYER_BOTTOM:null = 2
Bottom face of a Cubemap.


CUBEMAP_LAYER_TOP:null = 3
Top face of a Cubemap.


CUBEMAP_LAYER_FRONT:null = 4
Front face of a Cubemap.


CUBEMAP_LAYER_BACK:null = 5
Back face of a Cubemap.
Enum ShaderMode<>():Enum

SHADER_SPATIAL:null = 0
Shader is a 3D shader.


SHADER_CANVAS_ITEM:null = 1
Shader is a 2D shader.


SHADER_PARTICLES:null = 2
Shader is a particle shader (can be used in both 2D and 3D).


SHADER_SKY:null = 3
Shader is a 3D sky shader.


SHADER_FOG:null = 4
Shader is a 3D fog shader.


SHADER_MAX:null = 5
Represents the size of the ShaderMode enum.
Enum ArrayType<>():Enum

ARRAY_VERTEX:null = 0
Array is a vertex position array.


ARRAY_NORMAL:null = 1
Array is a normal array.


ARRAY_TANGENT:null = 2
Array is a tangent array.


ARRAY_COLOR:null = 3
Array is a vertex color array.


ARRAY_TEX_UV:null = 4
Array is a UV coordinates array.


ARRAY_TEX_UV2:null = 5
Array is a UV coordinates array for the second set of UV coordinates.


ARRAY_CUSTOM0:null = 6
Array is a custom data array for the first set of custom data.


ARRAY_CUSTOM1:null = 7
Array is a custom data array for the second set of custom data.


ARRAY_CUSTOM2:null = 8
Array is a custom data array for the third set of custom data.


ARRAY_CUSTOM3:null = 9
Array is a custom data array for the fourth set of custom data.


ARRAY_BONES:null = 10
Array contains bone information.


ARRAY_WEIGHTS:null = 11
Array is weight information.


ARRAY_INDEX:null = 12
Array is an index array.


ARRAY_MAX:null = 13
Represents the size of the ArrayType enum.
Enum ArrayCustomFormat<>():Enum

ARRAY_CUSTOM_RGBA8_UNORM:null = 0
Custom data array contains 8-bit-per-channel red/green/blue/alpha color data. Values are normalized, unsigned floating-point in the [0.0, 1.0] range.


ARRAY_CUSTOM_RGBA8_SNORM:null = 1
Custom data array contains 8-bit-per-channel red/green/blue/alpha color data. Values are normalized, signed floating-point in the [-1.0, 1.0] range.


ARRAY_CUSTOM_RG_HALF:null = 2
Custom data array contains 16-bit-per-channel red/green color data. Values are floating-point in half precision.


ARRAY_CUSTOM_RGBA_HALF:null = 3
Custom data array contains 16-bit-per-channel red/green/blue/alpha color data. Values are floating-point in half precision.


ARRAY_CUSTOM_R_FLOAT:null = 4
Custom data array contains 32-bit-per-channel red color data. Values are floating-point in single precision.


ARRAY_CUSTOM_RG_FLOAT:null = 5
Custom data array contains 32-bit-per-channel red/green color data. Values are floating-point in single precision.


ARRAY_CUSTOM_RGB_FLOAT:null = 6
Custom data array contains 32-bit-per-channel red/green/blue color data. Values are floating-point in single precision.


ARRAY_CUSTOM_RGBA_FLOAT:null = 7
Custom data array contains 32-bit-per-channel red/green/blue/alpha color data. Values are floating-point in single precision.


ARRAY_CUSTOM_MAX:null = 8
Represents the size of the ArrayCustomFormat enum.
Enum ArrayFormat<>():Enum

ARRAY_FORMAT_VERTEX:null = 1
Flag used to mark a vertex position array.


ARRAY_FORMAT_NORMAL:null = 2
Flag used to mark a normal array.


ARRAY_FORMAT_TANGENT:null = 4
Flag used to mark a tangent array.


ARRAY_FORMAT_COLOR:null = 8
Flag used to mark a vertex color array.


ARRAY_FORMAT_TEX_UV:null = 16
Flag used to mark a UV coordinates array.


ARRAY_FORMAT_TEX_UV2:null = 32
Flag used to mark a UV coordinates array for the second UV coordinates.


ARRAY_FORMAT_CUSTOM0:null = 64
Flag used to mark an array of custom per-vertex data for the first set of custom data.


ARRAY_FORMAT_CUSTOM1:null = 128
Flag used to mark an array of custom per-vertex data for the second set of custom data.


ARRAY_FORMAT_CUSTOM2:null = 256
Flag used to mark an array of custom per-vertex data for the third set of custom data.


ARRAY_FORMAT_CUSTOM3:null = 512
Flag used to mark an array of custom per-vertex data for the fourth set of custom data.


ARRAY_FORMAT_BONES:null = 1024
Flag used to mark a bone information array.


ARRAY_FORMAT_WEIGHTS:null = 2048
Flag used to mark a weights array.


ARRAY_FORMAT_INDEX:null = 4096
Flag used to mark an index array.


ARRAY_FORMAT_BLEND_SHAPE_MASK:null = 7
Mask of mesh channels permitted in blend shapes.


ARRAY_FORMAT_CUSTOM_BASE:null = 13
Shift of first custom channel.


ARRAY_FORMAT_CUSTOM_BITS:null = 3
Number of format bits per custom channel. See ArrayCustomFormat.


ARRAY_FORMAT_CUSTOM0_SHIFT:null = 13
Amount to shift ArrayCustomFormat for custom channel index 0.


ARRAY_FORMAT_CUSTOM1_SHIFT:null = 16
Amount to shift ArrayCustomFormat for custom channel index 1.


ARRAY_FORMAT_CUSTOM2_SHIFT:null = 19
Amount to shift ArrayCustomFormat for custom channel index 2.


ARRAY_FORMAT_CUSTOM3_SHIFT:null = 22
Amount to shift ArrayCustomFormat for custom channel index 3.


ARRAY_FORMAT_CUSTOM_MASK:null = 7
Mask of custom format bits per custom channel. Must be shifted by one of the SHIFT constants. See ArrayCustomFormat.


ARRAY_COMPRESS_FLAGS_BASE:null = 25
Shift of first compress flag. Compress flags should be passed to [method ArrayMesh.add_surface_from_arrays] and [method SurfaceTool.commit].


ARRAY_FLAG_USE_2D_VERTICES:null = 33554432
Flag used to mark that the array contains 2D vertices.


ARRAY_FLAG_USE_DYNAMIC_UPDATE:null = 67108864
Flag used to mark that the mesh data will use GL_DYNAMIC_DRAW on GLES. Unused on Vulkan.


ARRAY_FLAG_USE_8_BONE_WEIGHTS:null = 134217728
Flag used to mark that the array uses 8 bone weights instead of 4.


ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY:null = 268435456
Flag used to mark that the mesh does not have a vertex array and instead will infer vertex positions in the shader using indices and other information.


ARRAY_FLAG_COMPRESS_ATTRIBUTES:null = 536870912
Flag used to mark that a mesh is using compressed attributes (vertices, normals, tangents, UVs). When this form of compression is enabled, vertex positions will be packed into an RGBA16UNORM attribute and scaled in the vertex shader. The normal and tangent will be packed into an RG16UNORM representing an axis, and a 16-bit float stored in the A-channel of the vertex. UVs will use 16-bit normalized floats instead of full 32-bit signed floats. When using this compression mode you must use either vertices, normals, and tangents or only vertices. You cannot use normals without tangents. Importers will automatically enable this compression if they can.


ARRAY_FLAG_FORMAT_VERSION_BASE:null = 35
Flag used to mark the start of the bits used to store the mesh version.


ARRAY_FLAG_FORMAT_VERSION_SHIFT:null = 35
Flag used to shift a mesh format int to bring the version into the lowest digits.


ARRAY_FLAG_FORMAT_VERSION_1:null = 0
Flag used to record the format used by prior mesh versions before the introduction of a version.


ARRAY_FLAG_FORMAT_VERSION_2:null = 34359738368
Flag used to record the second iteration of the mesh version flag. The primary difference between this and ARRAY_FLAG_FORMAT_VERSION_1 is that this version supports ARRAY_FLAG_COMPRESS_ATTRIBUTES and in this version vertex positions are de-interleaved from normals and tangents.


ARRAY_FLAG_FORMAT_CURRENT_VERSION:null = 34359738368
Flag used to record the current version that the engine expects. Currently this is the same as ARRAY_FLAG_FORMAT_VERSION_2.


ARRAY_FLAG_FORMAT_VERSION_MASK:null = 255
Flag used to isolate the bits used for mesh version after using ARRAY_FLAG_FORMAT_VERSION_SHIFT to shift them into place.
Enum PrimitiveType<>():Enum

PRIMITIVE_POINTS:null = 0
Primitive to draw consists of points.


PRIMITIVE_LINES:null = 1
Primitive to draw consists of lines.


PRIMITIVE_LINE_STRIP:null = 2
Primitive to draw consists of a line strip from start to end.


PRIMITIVE_TRIANGLES:null = 3
Primitive to draw consists of triangles.


PRIMITIVE_TRIANGLE_STRIP:null = 4
Primitive to draw consists of a triangle strip (the last 3 vertices are always combined to make a triangle).


PRIMITIVE_MAX:null = 5
Represents the size of the PrimitiveType enum.
Enum BlendShapeMode<>():Enum

BLEND_SHAPE_MODE_NORMALIZED:null = 0
Blend shapes are normalized.


BLEND_SHAPE_MODE_RELATIVE:null = 1
Blend shapes are relative to base weight.
Enum MultimeshTransformFormat<>():Enum

MULTIMESH_TRANSFORM_2D:null = 0
Use Transform2D to store MultiMesh transform.


MULTIMESH_TRANSFORM_3D:null = 1
Use Transform3D to store MultiMesh transform.
Enum MultimeshPhysicsInterpolationQuality<>():Enum

MULTIMESH_INTERP_QUALITY_FAST:null = 0
MultiMesh physics interpolation favors speed over quality.


MULTIMESH_INTERP_QUALITY_HIGH:null = 1
MultiMesh physics interpolation favors quality over speed.
Enum LightProjectorFilter<>():Enum

LIGHT_PROJECTOR_FILTER_NEAREST:null = 0
Nearest-neighbor filter for light projectors (use for pixel art light projectors). No mipmaps are used for rendering, which means light projectors at a distance will look sharp but grainy. This has roughly the same performance cost as using mipmaps.


LIGHT_PROJECTOR_FILTER_LINEAR:null = 1
Linear filter for light projectors (use for non-pixel art light projectors). No mipmaps are used for rendering, which means light projectors at a distance will look smooth but blurry. This has roughly the same performance cost as using mipmaps.


LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS:null = 2
Nearest-neighbor filter for light projectors (use for pixel art light projectors). Isotropic mipmaps are used for rendering, which means light projectors at a distance will look smooth but blurry. This has roughly the same performance cost as not using mipmaps.


LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS:null = 3
Linear filter for light projectors (use for non-pixel art light projectors). Isotropic mipmaps are used for rendering, which means light projectors at a distance will look smooth but blurry. This has roughly the same performance cost as not using mipmaps.


LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC:null = 4
Nearest-neighbor filter for light projectors (use for pixel art light projectors). Anisotropic mipmaps are used for rendering, which means light projectors at a distance will look smooth and sharp when viewed from oblique angles. This looks better compared to isotropic mipmaps, but is slower. The level of anisotropic filtering is defined by [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].


LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC:null = 5
Linear filter for light projectors (use for non-pixel art light projectors). Anisotropic mipmaps are used for rendering, which means light projectors at a distance will look smooth and sharp when viewed from oblique angles. This looks better compared to isotropic mipmaps, but is slower. The level of anisotropic filtering is defined by [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].
Enum LightType<>():Enum

LIGHT_DIRECTIONAL:null = 0
Directional (sun/moon) light (see DirectionalLight3D).


LIGHT_OMNI:null = 1
Omni light (see OmniLight3D).


LIGHT_SPOT:null = 2
Spot light (see SpotLight3D).
Enum LightParam<>():Enum

LIGHT_PARAM_ENERGY:null = 0
The light's energy multiplier.


LIGHT_PARAM_INDIRECT_ENERGY:null = 1
The light's indirect energy multiplier (final indirect energy is LIGHT_PARAM_ENERGY * LIGHT_PARAM_INDIRECT_ENERGY).


LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY:null = 2
The light's volumetric fog energy multiplier (final volumetric fog energy is LIGHT_PARAM_ENERGY * LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY).


LIGHT_PARAM_SPECULAR:null = 3
The light's influence on specularity.


LIGHT_PARAM_RANGE:null = 4
The light's range.


LIGHT_PARAM_SIZE:null = 5
The size of the light when using spot light or omni light. The angular size of the light when using directional light.


LIGHT_PARAM_ATTENUATION:null = 6
The light's attenuation.


LIGHT_PARAM_SPOT_ANGLE:null = 7
The spotlight's angle.


LIGHT_PARAM_SPOT_ATTENUATION:null = 8
The spotlight's attenuation.


LIGHT_PARAM_SHADOW_MAX_DISTANCE:null = 9
The maximum distance for shadow splits. Increasing this value will make directional shadows visible from further away, at the cost of lower overall shadow detail and performance (since more objects need to be included in the directional shadow rendering).


LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET:null = 10
Proportion of shadow atlas occupied by the first split.


LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET:null = 11
Proportion of shadow atlas occupied by the second split.


LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET:null = 12
Proportion of shadow atlas occupied by the third split. The fourth split occupies the rest.


LIGHT_PARAM_SHADOW_FADE_START:null = 13
Proportion of shadow max distance where the shadow will start to fade out.


LIGHT_PARAM_SHADOW_NORMAL_BIAS:null = 14
Normal bias used to offset shadow lookup by object normal. Can be used to fix self-shadowing artifacts.


LIGHT_PARAM_SHADOW_BIAS:null = 15
Bias for the shadow lookup to fix self-shadowing artifacts.


LIGHT_PARAM_SHADOW_PANCAKE_SIZE:null = 16
Sets the size of the directional shadow pancake. The pancake offsets the start of the shadow's camera frustum to provide a higher effective depth resolution for the shadow. However, a high pancake size can cause artifacts in the shadows of large objects that are close to the edge of the frustum. Reducing the pancake size can help. Setting the size to 0 turns off the pancaking effect.


LIGHT_PARAM_SHADOW_OPACITY:null = 17
The light's shadow opacity. Values lower than 1.0 make the light appear through shadows. This can be used to fake global illumination at a low performance cost.


LIGHT_PARAM_SHADOW_BLUR:null = 18
Blurs the edges of the shadow. Can be used to hide pixel artifacts in low resolution shadow maps. A high value can make shadows appear grainy and can cause other unwanted artifacts. Try to keep as near default as possible.


LIGHT_PARAM_TRANSMITTANCE_BIAS:null = 19


LIGHT_PARAM_INTENSITY:null = 20
Constant representing the intensity of the light, measured in Lumens when dealing with a SpotLight3D or OmniLight3D, or measured in Lux with a DirectionalLight3D. Only used when [member ProjectSettings.rendering/lights_and_shadows/use_physical_light_units] is true.


LIGHT_PARAM_MAX:null = 21
Represents the size of the LightParam enum.
Enum LightBakeMode<>():Enum

LIGHT_BAKE_DISABLED:null = 0
Light is ignored when baking. This is the fastest mode, but the light will be taken into account when baking global illumination. This mode should generally be used for dynamic lights that change quickly, as the effect of global illumination is less noticeable on those lights.


LIGHT_BAKE_STATIC:null = 1
Light is taken into account in static baking (VoxelGI, LightmapGI, SDFGI ([member Environment.sdfgi_enabled])). The light can be moved around or modified, but its global illumination will not update in real-time. This is suitable for subtle changes (such as flickering torches), but generally not large changes such as toggling a light on and off.


LIGHT_BAKE_DYNAMIC:null = 2
Light is taken into account in dynamic baking (VoxelGI and SDFGI ([member Environment.sdfgi_enabled]) only). The light can be moved around or modified with global illumination updating in real-time. The light's global illumination appearance will be slightly different compared to LIGHT_BAKE_STATIC. This has a greater performance cost compared to LIGHT_BAKE_STATIC. When using SDFGI, the update speed of dynamic lights is affected by [member ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights].
Enum LightOmniShadowMode<>():Enum

LIGHT_OMNI_SHADOW_DUAL_PARABOLOID:null = 0
Use a dual paraboloid shadow map for omni lights.


LIGHT_OMNI_SHADOW_CUBE:null = 1
Use a cubemap shadow map for omni lights. Slower but better quality than dual paraboloid.
Enum LightDirectionalShadowMode<>():Enum

LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL:null = 0
Use orthogonal shadow projection for directional light.


LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS:null = 1
Use 2 splits for shadow projection when using directional light.


LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS:null = 2
Use 4 splits for shadow projection when using directional light.
Enum LightDirectionalSkyMode<>():Enum

LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY:null = 0
Use DirectionalLight3D in both sky rendering and scene lighting.


LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY:null = 1
Only use DirectionalLight3D in scene lighting.


LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY:null = 2
Only use DirectionalLight3D in sky rendering.
Enum ShadowQuality<>():Enum

SHADOW_QUALITY_HARD:null = 0
Lowest shadow filtering quality (fastest). Soft shadows are not available with this quality setting, which means the [member Light3D.shadow_blur] property is ignored if [member Light3D.light_size] and [member Light3D.light_angular_distance] is 0.0.
Note: The variable shadow blur performed by [member Light3D.light_size] and [member Light3D.light_angular_distance] is still effective when using hard shadow filtering. In this case, [member Light3D.shadow_blur] is taken into account. However, the results will not be blurred, instead the blur amount is treated as a maximum radius for the penumbra.


SHADOW_QUALITY_SOFT_VERY_LOW:null = 1
Very low shadow filtering quality (faster). When using this quality setting, [member Light3D.shadow_blur] is automatically multiplied by 0.75× to avoid introducing too much noise. This division only applies to lights whose [member Light3D.light_size] or [member Light3D.light_angular_distance] is 0.0).


SHADOW_QUALITY_SOFT_LOW:null = 2
Low shadow filtering quality (fast).


SHADOW_QUALITY_SOFT_MEDIUM:null = 3
Medium low shadow filtering quality (average).


SHADOW_QUALITY_SOFT_HIGH:null = 4
High low shadow filtering quality (slow). When using this quality setting, [member Light3D.shadow_blur] is automatically multiplied by 1.5× to better make use of the high sample count. This increased blur also improves the stability of dynamic object shadows. This multiplier only applies to lights whose [member Light3D.light_size] or [member Light3D.light_angular_distance] is 0.0).


SHADOW_QUALITY_SOFT_ULTRA:null = 5
Highest low shadow filtering quality (slowest). When using this quality setting, [member Light3D.shadow_blur] is automatically multiplied by 2× to better make use of the high sample count. This increased blur also improves the stability of dynamic object shadows. This multiplier only applies to lights whose [member Light3D.light_size] or [member Light3D.light_angular_distance] is 0.0).


SHADOW_QUALITY_MAX:null = 6
Represents the size of the ShadowQuality enum.
Enum ReflectionProbeUpdateMode<>():Enum

REFLECTION_PROBE_UPDATE_ONCE:null = 0
Reflection probe will update reflections once and then stop.


REFLECTION_PROBE_UPDATE_ALWAYS:null = 1
Reflection probe will update each frame. This mode is necessary to capture moving objects.
Enum ReflectionProbeAmbientMode<>():Enum

REFLECTION_PROBE_AMBIENT_DISABLED:null = 0
Do not apply any ambient lighting inside the reflection probe's box defined by its size.


REFLECTION_PROBE_AMBIENT_ENVIRONMENT:null = 1
Apply automatically-sourced environment lighting inside the reflection probe's box defined by its size.


REFLECTION_PROBE_AMBIENT_COLOR:null = 2
Apply custom ambient lighting inside the reflection probe's box defined by its size. See reflection_probe_set_ambient_color and reflection_probe_set_ambient_energy.
Enum DecalTexture<>():Enum

DECAL_TEXTURE_ALBEDO:null = 0
Albedo texture slot in a decal ([member Decal.texture_albedo]).


DECAL_TEXTURE_NORMAL:null = 1
Normal map texture slot in a decal ([member Decal.texture_normal]).


DECAL_TEXTURE_ORM:null = 2
Occlusion/Roughness/Metallic texture slot in a decal ([member Decal.texture_orm]).


DECAL_TEXTURE_EMISSION:null = 3
Emission texture slot in a decal ([member Decal.texture_emission]).


DECAL_TEXTURE_MAX:null = 4
Represents the size of the DecalTexture enum.
Enum DecalFilter<>():Enum

DECAL_FILTER_NEAREST:null = 0
Nearest-neighbor filter for decals (use for pixel art decals). No mipmaps are used for rendering, which means decals at a distance will look sharp but grainy. This has roughly the same performance cost as using mipmaps.


DECAL_FILTER_LINEAR:null = 1
Linear filter for decals (use for non-pixel art decals). No mipmaps are used for rendering, which means decals at a distance will look smooth but blurry. This has roughly the same performance cost as using mipmaps.


DECAL_FILTER_NEAREST_MIPMAPS:null = 2
Nearest-neighbor filter for decals (use for pixel art decals). Isotropic mipmaps are used for rendering, which means decals at a distance will look smooth but blurry. This has roughly the same performance cost as not using mipmaps.


DECAL_FILTER_LINEAR_MIPMAPS:null = 3
Linear filter for decals (use for non-pixel art decals). Isotropic mipmaps are used for rendering, which means decals at a distance will look smooth but blurry. This has roughly the same performance cost as not using mipmaps.


DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC:null = 4
Nearest-neighbor filter for decals (use for pixel art decals). Anisotropic mipmaps are used for rendering, which means decals at a distance will look smooth and sharp when viewed from oblique angles. This looks better compared to isotropic mipmaps, but is slower. The level of anisotropic filtering is defined by [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].


DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC:null = 5
Linear filter for decals (use for non-pixel art decals). Anisotropic mipmaps are used for rendering, which means decals at a distance will look smooth and sharp when viewed from oblique angles. This looks better compared to isotropic mipmaps, but is slower. The level of anisotropic filtering is defined by [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].
Enum VoxelGIQuality<>():Enum

VOXEL_GI_QUALITY_LOW:null = 0
Low VoxelGI rendering quality using 4 cones.


VOXEL_GI_QUALITY_HIGH:null = 1
High VoxelGI rendering quality using 6 cones.
Enum ParticlesMode<>():Enum

PARTICLES_MODE_2D:null = 0
2D particles.


PARTICLES_MODE_3D:null = 1
3D particles.
Enum ParticlesTransformAlign<>():Enum

PARTICLES_TRANSFORM_ALIGN_DISABLED:null = 0


PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD:null = 1


PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY:null = 2


PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY:null = 3
Enum ParticlesDrawOrder<>():Enum

PARTICLES_DRAW_ORDER_INDEX:null = 0
Draw particles in the order that they appear in the particles array.


PARTICLES_DRAW_ORDER_LIFETIME:null = 1
Sort particles based on their lifetime. In other words, the particle with the highest lifetime is drawn at the front.


PARTICLES_DRAW_ORDER_REVERSE_LIFETIME:null = 2
Sort particles based on the inverse of their lifetime. In other words, the particle with the lowest lifetime is drawn at the front.


PARTICLES_DRAW_ORDER_VIEW_DEPTH:null = 3
Sort particles based on their distance to the camera.
Enum ParticlesCollisionType<>():Enum

PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT:null = 0


PARTICLES_COLLISION_TYPE_BOX_ATTRACT:null = 1


PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT:null = 2


PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE:null = 3


PARTICLES_COLLISION_TYPE_BOX_COLLIDE:null = 4


PARTICLES_COLLISION_TYPE_SDF_COLLIDE:null = 5


PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE:null = 6
Enum ParticlesCollisionHeightfieldResolution<>():Enum

PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256:null = 0


PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512:null = 1


PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024:null = 2


PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048:null = 3


PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096:null = 4


PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192:null = 5


PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX:null = 6
Represents the size of the ParticlesCollisionHeightfieldResolution enum.
Enum FogVolumeShape<>():Enum

FOG_VOLUME_SHAPE_ELLIPSOID:null = 0
FogVolume will be shaped like an ellipsoid (stretched sphere).


FOG_VOLUME_SHAPE_CONE:null = 1
FogVolume will be shaped like a cone pointing upwards (in local coordinates). The cone's angle is set automatically to fill the size. The cone will be adjusted to fit within the size. Rotate the FogVolume node to reorient the cone. Non-uniform scaling via size is not supported (scale the FogVolume node instead).


FOG_VOLUME_SHAPE_CYLINDER:null = 2
FogVolume will be shaped like an upright cylinder (in local coordinates). Rotate the FogVolume node to reorient the cylinder. The cylinder will be adjusted to fit within the size. Non-uniform scaling via size is not supported (scale the FogVolume node instead).


FOG_VOLUME_SHAPE_BOX:null = 3
FogVolume will be shaped like a box.


FOG_VOLUME_SHAPE_WORLD:null = 4
FogVolume will have no shape, will cover the whole world and will not be culled.


FOG_VOLUME_SHAPE_MAX:null = 5
Represents the size of the FogVolumeShape enum.
Enum ViewportScaling3DMode<>():Enum

VIEWPORT_SCALING_3D_MODE_BILINEAR:null = 0
Use bilinear scaling for the viewport's 3D buffer. The amount of scaling can be set using [member Viewport.scaling_3d_scale]. Values less than 1.0 will result in undersampling while values greater than 1.0 will result in supersampling. A value of 1.0 disables scaling.


VIEWPORT_SCALING_3D_MODE_FSR:null = 1
Use AMD FidelityFX Super Resolution 1.0 upscaling for the viewport's 3D buffer. The amount of scaling can be set using [member Viewport.scaling_3d_scale]. Values less than 1.0 will result in the viewport being upscaled using FSR. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 disables scaling.


VIEWPORT_SCALING_3D_MODE_FSR2:null = 2
Use AMD FidelityFX Super Resolution 2.2 upscaling for the viewport's 3D buffer. The amount of scaling can be set using [member Viewport.scaling_3d_scale]. Values less than 1.0 will result in the viewport being upscaled using FSR2. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 will use FSR2 at native resolution as a TAA solution.


VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL:null = 3
Use MetalFX spatial upscaling for the viewport's 3D buffer. The amount of scaling can be set using [member Viewport.scaling_3d_scale]. Values less than 1.0 will result in the viewport being upscaled using MetalFX. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 disables scaling.
Note: Only supported when the Metal rendering driver is in use, which limits this scaling mode to macOS and iOS.


VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL:null = 4
Use MetalFX temporal upscaling for the viewport's 3D buffer. The amount of scaling can be set using [member Viewport.scaling_3d_scale]. Values less than 1.0 will result in the viewport being upscaled using MetalFX. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 will use MetalFX at native resolution as a TAA solution.
Note: Only supported when the Metal rendering driver is in use, which limits this scaling mode to macOS and iOS.


VIEWPORT_SCALING_3D_MODE_MAX:null = 5
Represents the size of the ViewportScaling3DMode enum.
Enum ViewportUpdateMode<>():Enum

VIEWPORT_UPDATE_DISABLED:null = 0
Do not update the viewport's render target.


VIEWPORT_UPDATE_ONCE:null = 1
Update the viewport's render target once, then switch to VIEWPORT_UPDATE_DISABLED.


VIEWPORT_UPDATE_WHEN_VISIBLE:null = 2
Update the viewport's render target only when it is visible. This is the default value.


VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE:null = 3
Update the viewport's render target only when its parent is visible.


VIEWPORT_UPDATE_ALWAYS:null = 4
Always update the viewport's render target.
Enum ViewportClearMode<>():Enum

VIEWPORT_CLEAR_ALWAYS:null = 0
Always clear the viewport's render target before drawing.


VIEWPORT_CLEAR_NEVER:null = 1
Never clear the viewport's render target.


VIEWPORT_CLEAR_ONLY_NEXT_FRAME:null = 2
Clear the viewport's render target on the next frame, then switch to VIEWPORT_CLEAR_NEVER.
Enum ViewportEnvironmentMode<>():Enum

VIEWPORT_ENVIRONMENT_DISABLED:null = 0
Disable rendering of 3D environment over 2D canvas.


VIEWPORT_ENVIRONMENT_ENABLED:null = 1
Enable rendering of 3D environment over 2D canvas.


VIEWPORT_ENVIRONMENT_INHERIT:null = 2
Inherit enable/disable value from parent. If the topmost parent is also set to VIEWPORT_ENVIRONMENT_INHERIT, then this has the same behavior as VIEWPORT_ENVIRONMENT_ENABLED.


VIEWPORT_ENVIRONMENT_MAX:null = 3
Represents the size of the ViewportEnvironmentMode enum.
Enum ViewportSDFOversize<>():Enum

VIEWPORT_SDF_OVERSIZE_100_PERCENT:null = 0
Do not oversize the 2D signed distance field. Occluders may disappear when touching the viewport's edges, and GPUParticles3D collision may stop working earlier than intended. This has the lowest GPU requirements.


VIEWPORT_SDF_OVERSIZE_120_PERCENT:null = 1
2D signed distance field covers 20% of the viewport's size outside the viewport on each side (top, right, bottom, left).


VIEWPORT_SDF_OVERSIZE_150_PERCENT:null = 2
2D signed distance field covers 50% of the viewport's size outside the viewport on each side (top, right, bottom, left).


VIEWPORT_SDF_OVERSIZE_200_PERCENT:null = 3
2D signed distance field covers 100% of the viewport's size outside the viewport on each side (top, right, bottom, left). This has the highest GPU requirements.


VIEWPORT_SDF_OVERSIZE_MAX:null = 4
Represents the size of the ViewportSDFOversize enum.
Enum ViewportSDFScale<>():Enum

VIEWPORT_SDF_SCALE_100_PERCENT:null = 0
Full resolution 2D signed distance field scale. This has the highest GPU requirements.


VIEWPORT_SDF_SCALE_50_PERCENT:null = 1
Half resolution 2D signed distance field scale on each axis (25% of the viewport pixel count).


VIEWPORT_SDF_SCALE_25_PERCENT:null = 2
Quarter resolution 2D signed distance field scale on each axis (6.25% of the viewport pixel count). This has the lowest GPU requirements.


VIEWPORT_SDF_SCALE_MAX:null = 3
Represents the size of the ViewportSDFScale enum.
Enum ViewportMSAA<>():Enum

VIEWPORT_MSAA_DISABLED:null = 0
Multisample antialiasing for 3D is disabled. This is the default value, and also the fastest setting.


VIEWPORT_MSAA_2X:null = 1
Multisample antialiasing uses 2 samples per pixel for 3D. This has a moderate impact on performance.


VIEWPORT_MSAA_4X:null = 2
Multisample antialiasing uses 4 samples per pixel for 3D. This has a high impact on performance.


VIEWPORT_MSAA_8X:null = 3
Multisample antialiasing uses 8 samples per pixel for 3D. This has a very high impact on performance. Likely unsupported on low-end and older hardware.


VIEWPORT_MSAA_MAX:null = 4
Represents the size of the ViewportMSAA enum.
Enum ViewportAnisotropicFiltering<>():Enum

VIEWPORT_ANISOTROPY_DISABLED:null = 0
Anisotropic filtering is disabled.


VIEWPORT_ANISOTROPY_2X:null = 1
Use 2× anisotropic filtering.


VIEWPORT_ANISOTROPY_4X:null = 2
Use 4× anisotropic filtering. This is the default value.


VIEWPORT_ANISOTROPY_8X:null = 3
Use 8× anisotropic filtering.


VIEWPORT_ANISOTROPY_16X:null = 4
Use 16× anisotropic filtering.


VIEWPORT_ANISOTROPY_MAX:null = 5
Represents the size of the ViewportAnisotropicFiltering enum.
Enum ViewportScreenSpaceAA<>():Enum

VIEWPORT_SCREEN_SPACE_AA_DISABLED:null = 0
Do not perform any antialiasing in the full screen post-process.


VIEWPORT_SCREEN_SPACE_AA_FXAA:null = 1
Use fast approximate antialiasing. FXAA is a popular screen-space antialiasing method, which is fast but will make the image look blurry, especially at lower resolutions. It can still work relatively well at large resolutions such as 1440p and 4K.


VIEWPORT_SCREEN_SPACE_AA_SMAA:null = 2
Use subpixel morphological antialiasing. SMAA may produce clearer results than FXAA, but at a slightly higher performance cost.


VIEWPORT_SCREEN_SPACE_AA_MAX:null = 3
Represents the size of the ViewportScreenSpaceAA enum.
Enum ViewportOcclusionCullingBuildQuality<>():Enum

VIEWPORT_OCCLUSION_BUILD_QUALITY_LOW:null = 0
Low occlusion culling BVH build quality (as defined by Embree). Results in the lowest CPU usage, but least effective culling.


VIEWPORT_OCCLUSION_BUILD_QUALITY_MEDIUM:null = 1
Medium occlusion culling BVH build quality (as defined by Embree).


VIEWPORT_OCCLUSION_BUILD_QUALITY_HIGH:null = 2
High occlusion culling BVH build quality (as defined by Embree). Results in the highest CPU usage, but most effective culling.
Enum ViewportRenderInfo<>():Enum

VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME:null = 0
Number of objects drawn in a single frame.


VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME:null = 1
Number of points, lines, or triangles drawn in a single frame.


VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME:null = 2
Number of draw calls during this frame.


VIEWPORT_RENDER_INFO_MAX:null = 3
Represents the size of the ViewportRenderInfo enum.
Enum ViewportRenderInfoType<>():Enum

VIEWPORT_RENDER_INFO_TYPE_VISIBLE:null = 0
Visible render pass (excluding shadows).


VIEWPORT_RENDER_INFO_TYPE_SHADOW:null = 1
Shadow render pass. Objects will be rendered several times depending on the number of amounts of lights with shadows and the number of directional shadow splits.


VIEWPORT_RENDER_INFO_TYPE_CANVAS:null = 2
Canvas item rendering. This includes all 2D rendering.


VIEWPORT_RENDER_INFO_TYPE_MAX:null = 3
Represents the size of the ViewportRenderInfoType enum.
Enum ViewportDebugDraw<>():Enum

VIEWPORT_DEBUG_DRAW_DISABLED:null = 0
Debug draw is disabled. Default setting.


VIEWPORT_DEBUG_DRAW_UNSHADED:null = 1
Objects are displayed without light information.


VIEWPORT_DEBUG_DRAW_LIGHTING:null = 2
Objects are displayed with only light information.
Note: When using this debug draw mode, custom shaders are ignored since all materials in the scene temporarily use a debug material. This means the result from custom shader functions (such as vertex displacement) won't be visible anymore when using this debug draw mode.


VIEWPORT_DEBUG_DRAW_OVERDRAW:null = 3
Objects are displayed semi-transparent with additive blending so you can see where they are drawing over top of one another. A higher overdraw (represented by brighter colors) means you are wasting performance on drawing pixels that are being hidden behind others.
Note: When using this debug draw mode, custom shaders are ignored since all materials in the scene temporarily use a debug material. This means the result from custom shader functions (such as vertex displacement) won't be visible anymore when using this debug draw mode.


VIEWPORT_DEBUG_DRAW_WIREFRAME:null = 4
Debug draw draws objects in wireframe.
Note: set_debug_generate_wireframes must be called before loading any meshes for wireframes to be visible when using the Compatibility renderer.


VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER:null = 5
Normal buffer is drawn instead of regular scene so you can see the per-pixel normals that will be used by post-processing effects.


VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO:null = 6
Objects are displayed with only the albedo value from VoxelGIs. Requires at least one visible VoxelGI node that has been baked to have a visible effect.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING:null = 7
Objects are displayed with only the lighting value from VoxelGIs. Requires at least one visible VoxelGI node that has been baked to have a visible effect.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION:null = 8
Objects are displayed with only the emission color from VoxelGIs. Requires at least one visible VoxelGI node that has been baked to have a visible effect.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS:null = 9
Draws the shadow atlas that stores shadows from OmniLight3Ds and SpotLight3Ds in the upper left quadrant of the Viewport.


VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS:null = 10
Draws the shadow atlas that stores shadows from DirectionalLight3Ds in the upper left quadrant of the Viewport.
The slice of the camera frustum related to the shadow map cascade is superimposed to visualize coverage. The color of each slice matches the colors used for VIEWPORT_DEBUG_DRAW_PSSM_SPLITS. When shadow cascades are blended the overlap is taken into account when drawing the frustum slices.
The last cascade shows all frustum slices to illustrate the coverage of all slices.


VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE:null = 11
Draws the estimated scene luminance. This is a 1×1 texture that is generated when autoexposure is enabled to control the scene's exposure.
Note: Only supported when using the Forward+ or Mobile rendering methods.


VIEWPORT_DEBUG_DRAW_SSAO:null = 12
Draws the screen space ambient occlusion texture instead of the scene so that you can clearly see how it is affecting objects. In order for this display mode to work, you must have [member Environment.ssao_enabled] set in your WorldEnvironment.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_SSIL:null = 13
Draws the screen space indirect lighting texture instead of the scene so that you can clearly see how it is affecting objects. In order for this display mode to work, you must have [member Environment.ssil_enabled] set in your WorldEnvironment.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_PSSM_SPLITS:null = 14
Colors each PSSM split for the DirectionalLight3Ds in the scene a different color so you can see where the splits are. In order (from closest to furthest from the camera), they are colored red, green, blue, and yellow.
Note: When using this debug draw mode, custom shaders are ignored since all materials in the scene temporarily use a debug material. This means the result from custom shader functions (such as vertex displacement) won't be visible anymore when using this debug draw mode.
Note: Only supported when using the Forward+ or Mobile rendering methods.


VIEWPORT_DEBUG_DRAW_DECAL_ATLAS:null = 15
Draws the decal atlas that stores decal textures from Decals.
Note: Only supported when using the Forward+ or Mobile rendering methods.


VIEWPORT_DEBUG_DRAW_SDFGI:null = 16
Draws SDFGI cascade data. This is the data structure that is used to bounce lighting against and create reflections.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_SDFGI_PROBES:null = 17
Draws SDFGI probe data. This is the data structure that is used to give indirect lighting dynamic objects moving within the scene.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_GI_BUFFER:null = 18
Draws the global illumination buffer from VoxelGI or SDFGI. Requires VoxelGI (at least one visible baked VoxelGI node) or SDFGI ([member Environment.sdfgi_enabled]) to be enabled to have a visible effect.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_DISABLE_LOD:null = 19
Disable mesh LOD. All meshes are drawn with full detail, which can be used to compare performance.


VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS:null = 20
Draws the OmniLight3D cluster. Clustering determines where lights are positioned in screen-space, which allows the engine to only process these portions of the screen for lighting.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS:null = 21
Draws the SpotLight3D cluster. Clustering determines where lights are positioned in screen-space, which allows the engine to only process these portions of the screen for lighting.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS:null = 22
Draws the Decal cluster. Clustering determines where decals are positioned in screen-space, which allows the engine to only process these portions of the screen for decals.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES:null = 23
Draws the ReflectionProbe cluster. Clustering determines where reflection probes are positioned in screen-space, which allows the engine to only process these portions of the screen for reflection probes.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_OCCLUDERS:null = 24
Draws the occlusion culling buffer. This low-resolution occlusion culling buffer is rasterized on the CPU and is used to check whether instances are occluded by other objects.
Note: Only supported when using the Forward+ or Mobile rendering methods.


VIEWPORT_DEBUG_DRAW_MOTION_VECTORS:null = 25
Draws the motion vectors buffer. This is used by temporal antialiasing to correct for motion that occurs during gameplay.
Note: Only supported when using the Forward+ rendering method.


VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER:null = 26
Internal buffer is drawn instead of regular scene so you can see the per-pixel output that will be used by post-processing effects.
Note: Only supported when using the Forward+ or Mobile rendering methods.
Enum ViewportVRSMode<>():Enum

VIEWPORT_VRS_DISABLED:null = 0
Variable rate shading is disabled.


VIEWPORT_VRS_TEXTURE:null = 1
Variable rate shading uses a texture. Note, for stereoscopic use a texture atlas with a texture for each view.


VIEWPORT_VRS_XR:null = 2
Variable rate shading texture is supplied by the primary XRInterface. Note that this may override the update mode.


VIEWPORT_VRS_MAX:null = 3
Represents the size of the ViewportVRSMode enum.
Enum ViewportVRSUpdateMode<>():Enum

VIEWPORT_VRS_UPDATE_DISABLED:null = 0
The input texture for variable rate shading will not be processed.


VIEWPORT_VRS_UPDATE_ONCE:null = 1
The input texture for variable rate shading will be processed once.


VIEWPORT_VRS_UPDATE_ALWAYS:null = 2
The input texture for variable rate shading will be processed each frame.


VIEWPORT_VRS_UPDATE_MAX:null = 3
Represents the size of the ViewportVRSUpdateMode enum.
Enum SkyMode<>():Enum

SKY_MODE_AUTOMATIC:null = 0
Automatically selects the appropriate process mode based on your sky shader. If your shader uses TIME or POSITION, this will use SKY_MODE_REALTIME. If your shader uses any of the LIGHT_* variables or any custom uniforms, this uses SKY_MODE_INCREMENTAL. Otherwise, this defaults to SKY_MODE_QUALITY.


SKY_MODE_QUALITY:null = 1
Uses high quality importance sampling to process the radiance map. In general, this results in much higher quality than SKY_MODE_REALTIME but takes much longer to generate. This should not be used if you plan on changing the sky at runtime. If you are finding that the reflection is not blurry enough and is showing sparkles or fireflies, try increasing [member ProjectSettings.rendering/reflections/sky_reflections/ggx_samples].


SKY_MODE_INCREMENTAL:null = 2
Uses the same high quality importance sampling to process the radiance map as SKY_MODE_QUALITY, but updates over several frames. The number of frames is determined by [member ProjectSettings.rendering/reflections/sky_reflections/roughness_layers]. Use this when you need highest quality radiance maps, but have a sky that updates slowly.


SKY_MODE_REALTIME:null = 3
Uses the fast filtering algorithm to process the radiance map. In general this results in lower quality, but substantially faster run times. If you need better quality, but still need to update the sky every frame, consider turning on [member ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality].
Note: The fast filtering algorithm is limited to 256×256 cubemaps, so sky_set_radiance_size must be set to 256. Otherwise, a warning is printed and the overridden radiance size is ignored.
Enum CompositorEffectFlags<>():Enum

COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR:null = 1
The rendering effect requires the color buffer to be resolved if MSAA is enabled.


COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH:null = 2
The rendering effect requires the depth buffer to be resolved if MSAA is enabled.


COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS:null = 4
The rendering effect requires motion vectors to be produced.


COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS:null = 8
The rendering effect requires normals and roughness g-buffer to be produced (Forward+ only).


COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR:null = 16
The rendering effect requires specular data to be separated out (Forward+ only).
Enum CompositorEffectCallbackType<>():Enum

COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE:null = 0
The callback is called before our opaque rendering pass, but after depth prepass (if applicable).


COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE:null = 1
The callback is called after our opaque rendering pass, but before our sky is rendered.


COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY:null = 2
The callback is called after our sky is rendered, but before our back buffers are created (and if enabled, before subsurface scattering and/or screen space reflections).


COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT:null = 3
The callback is called before our transparent rendering pass, but after our sky is rendered and we've created our back buffers.


COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT:null = 4
The callback is called after our transparent rendering pass, but before any built-in post-processing effects and output to our render target.


COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY:null = -1
Enum EnvironmentBG<>():Enum

ENV_BG_CLEAR_COLOR:null = 0
Use the clear color as background.


ENV_BG_COLOR:null = 1
Use a specified color as the background.


ENV_BG_SKY:null = 2
Use a sky resource for the background.


ENV_BG_CANVAS:null = 3
Use a specified canvas layer as the background. This can be useful for instantiating a 2D scene in a 3D world.


ENV_BG_KEEP:null = 4
Do not clear the background, use whatever was rendered last frame as the background.


ENV_BG_CAMERA_FEED:null = 5
Displays a camera feed in the background.


ENV_BG_MAX:null = 6
Represents the size of the EnvironmentBG enum.
Enum EnvironmentAmbientSource<>():Enum

ENV_AMBIENT_SOURCE_BG:null = 0
Gather ambient light from whichever source is specified as the background.


ENV_AMBIENT_SOURCE_DISABLED:null = 1
Disable ambient light.


ENV_AMBIENT_SOURCE_COLOR:null = 2
Specify a specific Color for ambient light.


ENV_AMBIENT_SOURCE_SKY:null = 3
Gather ambient light from the Sky regardless of what the background is.
Enum EnvironmentReflectionSource<>():Enum

ENV_REFLECTION_SOURCE_BG:null = 0
Use the background for reflections.


ENV_REFLECTION_SOURCE_DISABLED:null = 1
Disable reflections.


ENV_REFLECTION_SOURCE_SKY:null = 2
Use the Sky for reflections regardless of what the background is.
Enum EnvironmentGlowBlendMode<>():Enum

ENV_GLOW_BLEND_MODE_ADDITIVE:null = 0
Additive glow blending mode. Mostly used for particles, glows (bloom), lens flare, bright sources.


ENV_GLOW_BLEND_MODE_SCREEN:null = 1
Screen glow blending mode. Increases brightness, used frequently with bloom.


ENV_GLOW_BLEND_MODE_SOFTLIGHT:null = 2
Soft light glow blending mode. Modifies contrast, exposes shadows and highlights (vivid bloom).


ENV_GLOW_BLEND_MODE_REPLACE:null = 3
Replace glow blending mode. Replaces all pixels' color by the glow value. This can be used to simulate a full-screen blur effect by tweaking the glow parameters to match the original image's brightness.


ENV_GLOW_BLEND_MODE_MIX:null = 4
Mixes the glow with the underlying color to avoid increasing brightness as much while still maintaining a glow effect.
Enum EnvironmentFogMode<>():Enum

ENV_FOG_MODE_EXPONENTIAL:null = 0
Use a physically-based fog model defined primarily by fog density.


ENV_FOG_MODE_DEPTH:null = 1
Use a simple fog model defined by start and end positions and a custom curve. While not physically accurate, this model can be useful when you need more artistic control.
Enum EnvironmentToneMapper<>():Enum

ENV_TONE_MAPPER_LINEAR:null = 0
Does not modify color data, resulting in a linear tonemapping curve which unnaturally clips bright values, causing bright lighting to look blown out. The simplest and fastest tonemapper.


ENV_TONE_MAPPER_REINHARD:null = 1
A simple tonemapping curve that rolls off bright values to prevent clipping. This results in an image that can appear dull and low contrast. Slower than ENV_TONE_MAPPER_LINEAR.
Note: When [member Environment.tonemap_white] is left at the default value of 1.0, ENV_TONE_MAPPER_REINHARD produces an identical image to ENV_TONE_MAPPER_LINEAR.


ENV_TONE_MAPPER_FILMIC:null = 2
Uses a film-like tonemapping curve to prevent clipping of bright values and provide better contrast than ENV_TONE_MAPPER_REINHARD. Slightly slower than ENV_TONE_MAPPER_REINHARD.


ENV_TONE_MAPPER_ACES:null = 3
Uses a high-contrast film-like tonemapping curve and desaturates bright values for a more realistic appearance. Slightly slower than ENV_TONE_MAPPER_FILMIC.
Note: This tonemapping operator is called "ACES Fitted" in Godot 3.x.


ENV_TONE_MAPPER_AGX:null = 4
Uses a film-like tonemapping curve and desaturates bright values for a more realistic appearance. Better than other tonemappers at maintaining the hue of colors as they become brighter. The slowest tonemapping option.
Note: [member Environment.tonemap_white] is fixed at a value of 16.29, which makes ENV_TONE_MAPPER_AGX unsuitable for use with the Mobile rendering method.
Enum EnvironmentSSRRoughnessQuality<>():Enum

ENV_SSR_ROUGHNESS_QUALITY_DISABLED:null = 0
Lowest quality of roughness filter for screen-space reflections. Rough materials will not have blurrier screen-space reflections compared to smooth (non-rough) materials. This is the fastest option.


ENV_SSR_ROUGHNESS_QUALITY_LOW:null = 1
Low quality of roughness filter for screen-space reflections.


ENV_SSR_ROUGHNESS_QUALITY_MEDIUM:null = 2
Medium quality of roughness filter for screen-space reflections.


ENV_SSR_ROUGHNESS_QUALITY_HIGH:null = 3
High quality of roughness filter for screen-space reflections. This is the slowest option.
Enum EnvironmentSSAOQuality<>():Enum

ENV_SSAO_QUALITY_VERY_LOW:null = 0
Lowest quality of screen-space ambient occlusion.


ENV_SSAO_QUALITY_LOW:null = 1
Low quality screen-space ambient occlusion.


ENV_SSAO_QUALITY_MEDIUM:null = 2
Medium quality screen-space ambient occlusion.


ENV_SSAO_QUALITY_HIGH:null = 3
High quality screen-space ambient occlusion.


ENV_SSAO_QUALITY_ULTRA:null = 4
Highest quality screen-space ambient occlusion. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality.
Enum EnvironmentSSILQuality<>():Enum

ENV_SSIL_QUALITY_VERY_LOW:null = 0
Lowest quality of screen-space indirect lighting.


ENV_SSIL_QUALITY_LOW:null = 1
Low quality screen-space indirect lighting.


ENV_SSIL_QUALITY_MEDIUM:null = 2
High quality screen-space indirect lighting.


ENV_SSIL_QUALITY_HIGH:null = 3
High quality screen-space indirect lighting.


ENV_SSIL_QUALITY_ULTRA:null = 4
Highest quality screen-space indirect lighting. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality.
Enum EnvironmentSDFGIYScale<>():Enum

ENV_SDFGI_Y_SCALE_50_PERCENT:null = 0
Use 50% scale for SDFGI on the Y (vertical) axis. SDFGI cells will be twice as short as they are wide. This allows providing increased GI detail and reduced light leaking with thin floors and ceilings. This is usually the best choice for scenes that don't feature much verticality.


ENV_SDFGI_Y_SCALE_75_PERCENT:null = 1
Use 75% scale for SDFGI on the Y (vertical) axis. This is a balance between the 50% and 100% SDFGI Y scales.


ENV_SDFGI_Y_SCALE_100_PERCENT:null = 2
Use 100% scale for SDFGI on the Y (vertical) axis. SDFGI cells will be as tall as they are wide. This is usually the best choice for highly vertical scenes. The downside is that light leaking may become more noticeable with thin floors and ceilings.
Enum EnvironmentSDFGIRayCount<>():Enum

ENV_SDFGI_RAY_COUNT_4:null = 0
Throw 4 rays per frame when converging SDFGI. This has the lowest GPU requirements, but creates the most noisy result.


ENV_SDFGI_RAY_COUNT_8:null = 1
Throw 8 rays per frame when converging SDFGI.


ENV_SDFGI_RAY_COUNT_16:null = 2
Throw 16 rays per frame when converging SDFGI.


ENV_SDFGI_RAY_COUNT_32:null = 3
Throw 32 rays per frame when converging SDFGI.


ENV_SDFGI_RAY_COUNT_64:null = 4
Throw 64 rays per frame when converging SDFGI.


ENV_SDFGI_RAY_COUNT_96:null = 5
Throw 96 rays per frame when converging SDFGI. This has high GPU requirements.


ENV_SDFGI_RAY_COUNT_128:null = 6
Throw 128 rays per frame when converging SDFGI. This has very high GPU requirements, but creates the least noisy result.


ENV_SDFGI_RAY_COUNT_MAX:null = 7
Represents the size of the EnvironmentSDFGIRayCount enum.
Enum EnvironmentSDFGIFramesToConverge<>():Enum

ENV_SDFGI_CONVERGE_IN_5_FRAMES:null = 0
Converge SDFGI over 5 frames. This is the most responsive, but creates the most noisy result with a given ray count.


ENV_SDFGI_CONVERGE_IN_10_FRAMES:null = 1
Configure SDFGI to fully converge over 10 frames.


ENV_SDFGI_CONVERGE_IN_15_FRAMES:null = 2
Configure SDFGI to fully converge over 15 frames.


ENV_SDFGI_CONVERGE_IN_20_FRAMES:null = 3
Configure SDFGI to fully converge over 20 frames.


ENV_SDFGI_CONVERGE_IN_25_FRAMES:null = 4
Configure SDFGI to fully converge over 25 frames.


ENV_SDFGI_CONVERGE_IN_30_FRAMES:null = 5
Configure SDFGI to fully converge over 30 frames. This is the least responsive, but creates the least noisy result with a given ray count.


ENV_SDFGI_CONVERGE_MAX:null = 6
Represents the size of the EnvironmentSDFGIFramesToConverge enum.
Enum EnvironmentSDFGIFramesToUpdateLight<>():Enum

ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME:null = 0
Update indirect light from dynamic lights in SDFGI over 1 frame. This is the most responsive, but has the highest GPU requirements.


ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES:null = 1
Update indirect light from dynamic lights in SDFGI over 2 frames.


ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES:null = 2
Update indirect light from dynamic lights in SDFGI over 4 frames.


ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES:null = 3
Update indirect light from dynamic lights in SDFGI over 8 frames.


ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES:null = 4
Update indirect light from dynamic lights in SDFGI over 16 frames. This is the least responsive, but has the lowest GPU requirements.


ENV_SDFGI_UPDATE_LIGHT_MAX:null = 5
Represents the size of the EnvironmentSDFGIFramesToUpdateLight enum.
Enum SubSurfaceScatteringQuality<>():Enum

SUB_SURFACE_SCATTERING_QUALITY_DISABLED:null = 0
Disables subsurface scattering entirely, even on materials that have [member BaseMaterial3D.subsurf_scatter_enabled] set to true. This has the lowest GPU requirements.


SUB_SURFACE_SCATTERING_QUALITY_LOW:null = 1
Low subsurface scattering quality.


SUB_SURFACE_SCATTERING_QUALITY_MEDIUM:null = 2
Medium subsurface scattering quality.


SUB_SURFACE_SCATTERING_QUALITY_HIGH:null = 3
High subsurface scattering quality. This has the highest GPU requirements.
Enum DOFBokehShape<>():Enum

DOF_BOKEH_BOX:null = 0
Calculate the DOF blur using a box filter. The fastest option, but results in obvious lines in blur pattern.


DOF_BOKEH_HEXAGON:null = 1
Calculates DOF blur using a hexagon shaped filter.


DOF_BOKEH_CIRCLE:null = 2
Calculates DOF blur using a circle shaped filter. Best quality and most realistic, but slowest. Use only for areas where a lot of performance can be dedicated to post-processing (e.g. cutscenes).
Enum DOFBlurQuality<>():Enum

DOF_BLUR_QUALITY_VERY_LOW:null = 0
Lowest quality DOF blur. This is the fastest setting, but you may be able to see filtering artifacts.


DOF_BLUR_QUALITY_LOW:null = 1
Low quality DOF blur.


DOF_BLUR_QUALITY_MEDIUM:null = 2
Medium quality DOF blur.


DOF_BLUR_QUALITY_HIGH:null = 3
Highest quality DOF blur. Results in the smoothest looking blur by taking the most samples, but is also significantly slower.
Enum InstanceType<>():Enum

INSTANCE_NONE:null = 0
The instance does not have a type.


INSTANCE_MESH:null = 1
The instance is a mesh.


INSTANCE_MULTIMESH:null = 2
The instance is a multimesh.


INSTANCE_PARTICLES:null = 3
The instance is a particle emitter.


INSTANCE_PARTICLES_COLLISION:null = 4
The instance is a GPUParticles collision shape.


INSTANCE_LIGHT:null = 5
The instance is a light.


INSTANCE_REFLECTION_PROBE:null = 6
The instance is a reflection probe.


INSTANCE_DECAL:null = 7
The instance is a decal.


INSTANCE_VOXEL_GI:null = 8
The instance is a VoxelGI.


INSTANCE_LIGHTMAP:null = 9
The instance is a lightmap.


INSTANCE_OCCLUDER:null = 10
The instance is an occlusion culling occluder.


INSTANCE_VISIBLITY_NOTIFIER:null = 11
The instance is a visible on-screen notifier.


INSTANCE_FOG_VOLUME:null = 12
The instance is a fog volume.


INSTANCE_MAX:null = 13
Represents the size of the InstanceType enum.


INSTANCE_GEOMETRY_MASK:null = 14
A combination of the flags of geometry instances (mesh, multimesh, immediate and particles).
Enum InstanceFlags<>():Enum

INSTANCE_FLAG_USE_BAKED_LIGHT:null = 0
Allows the instance to be used in baked lighting.


INSTANCE_FLAG_USE_DYNAMIC_GI:null = 1
Allows the instance to be used with dynamic global illumination.


INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE:null = 2
When set, manually requests to draw geometry on next frame.


INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING:null = 3
Always draw, even if the instance would be culled by occlusion culling. Does not affect view frustum culling.


INSTANCE_FLAG_MAX:null = 4
Represents the size of the InstanceFlags enum.
Enum ShadowCastingSetting<>():Enum

SHADOW_CASTING_SETTING_OFF:null = 0
Disable shadows from this instance.


SHADOW_CASTING_SETTING_ON:null = 1
Cast shadows from this instance.


SHADOW_CASTING_SETTING_DOUBLE_SIDED:null = 2
Disable backface culling when rendering the shadow of the object. This is slightly slower but may result in more correct shadows.


SHADOW_CASTING_SETTING_SHADOWS_ONLY:null = 3
Only render the shadows from the object. The object itself will not be drawn.
Enum VisibilityRangeFadeMode<>():Enum

VISIBILITY_RANGE_FADE_DISABLED:null = 0
Disable visibility range fading for the given instance.


VISIBILITY_RANGE_FADE_SELF:null = 1
Fade-out the given instance when it approaches its visibility range limits.


VISIBILITY_RANGE_FADE_DEPENDENCIES:null = 2
Fade-in the given instance's dependencies when reaching its visibility range limits.
Enum BakeChannels<>():Enum

BAKE_CHANNEL_ALBEDO_ALPHA:null = 0
Index of Image in array of Images returned by bake_render_uv2. Image uses [constant Image.FORMAT_RGBA8] and contains albedo color in the .rgb channels and alpha in the .a channel.


BAKE_CHANNEL_NORMAL:null = 1
Index of Image in array of Images returned by bake_render_uv2. Image uses [constant Image.FORMAT_RGBA8] and contains the per-pixel normal of the object in the .rgb channels and nothing in the .a channel. The per-pixel normal is encoded as normal * 0.5 + 0.5.


BAKE_CHANNEL_ORM:null = 2
Index of Image in array of Images returned by bake_render_uv2. Image uses [constant Image.FORMAT_RGBA8] and contains ambient occlusion (from material and decals only) in the .r channel, roughness in the .g channel, metallic in the .b channel and sub surface scattering amount in the .a channel.


BAKE_CHANNEL_EMISSION:null = 3
Index of Image in array of Images returned by bake_render_uv2. Image uses [constant Image.FORMAT_RGBAH] and contains emission color in the .rgb channels and nothing in the .a channel.
Enum CanvasTextureChannel<>():Enum

CANVAS_TEXTURE_CHANNEL_DIFFUSE:null = 0
Diffuse canvas texture ([member CanvasTexture.diffuse_texture]).


CANVAS_TEXTURE_CHANNEL_NORMAL:null = 1
Normal map canvas texture ([member CanvasTexture.normal_texture]).


CANVAS_TEXTURE_CHANNEL_SPECULAR:null = 2
Specular map canvas texture ([member CanvasTexture.specular_texture]).
Enum NinePatchAxisMode<>():Enum

NINE_PATCH_STRETCH:null = 0
The nine patch gets stretched where needed.


NINE_PATCH_TILE:null = 1
The nine patch gets filled with tiles where needed.


NINE_PATCH_TILE_FIT:null = 2
The nine patch gets filled with tiles where needed and stretches them a bit if needed.
Enum CanvasItemTextureFilter<>():Enum

CANVAS_ITEM_TEXTURE_FILTER_DEFAULT:null = 0
Uses the default filter mode for this Viewport.


CANVAS_ITEM_TEXTURE_FILTER_NEAREST:null = 1
The texture filter reads from the nearest pixel only. This makes the texture look pixelated from up close, and grainy from a distance (due to mipmaps not being sampled).


CANVAS_ITEM_TEXTURE_FILTER_LINEAR:null = 2
The texture filter blends between the nearest 4 pixels. This makes the texture look smooth from up close, and grainy from a distance (due to mipmaps not being sampled).


CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS:null = 3
The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is true). This makes the texture look pixelated from up close, and smooth from a distance.
Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to Camera2D zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.


CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS:null = 4
The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is true). This makes the texture look smooth from up close, and smooth from a distance.
Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to Camera2D zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.


CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC:null = 5
The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is true) based on the angle between the surface and the camera view. This makes the texture look pixelated from up close, and smooth from a distance. Anisotropic filtering improves texture quality on surfaces that are almost in line with the camera, but is slightly slower. The anisotropic filtering level can be changed by adjusting [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].
Note: This texture filter is rarely useful in 2D projects. CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS is usually more appropriate in this case.


CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC:null = 6
The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is true) based on the angle between the surface and the camera view. This makes the texture look smooth from up close, and smooth from a distance. Anisotropic filtering improves texture quality on surfaces that are almost in line with the camera, but is slightly slower. The anisotropic filtering level can be changed by adjusting [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].
Note: This texture filter is rarely useful in 2D projects. CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS is usually more appropriate in this case.


CANVAS_ITEM_TEXTURE_FILTER_MAX:null = 7
Max value for CanvasItemTextureFilter enum.
Enum CanvasItemTextureRepeat<>():Enum

CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT:null = 0
Uses the default repeat mode for this Viewport.


CANVAS_ITEM_TEXTURE_REPEAT_DISABLED:null = 1
Disables textures repeating. Instead, when reading UVs outside the 0-1 range, the value will be clamped to the edge of the texture, resulting in a stretched out look at the borders of the texture.


CANVAS_ITEM_TEXTURE_REPEAT_ENABLED:null = 2
Enables the texture to repeat when UV coordinates are outside the 0-1 range. If using one of the linear filtering modes, this can result in artifacts at the edges of a texture when the sampler filters across the edges of the texture.


CANVAS_ITEM_TEXTURE_REPEAT_MIRROR:null = 3
Flip the texture when repeating so that the edge lines up instead of abruptly changing.


CANVAS_ITEM_TEXTURE_REPEAT_MAX:null = 4
Max value for CanvasItemTextureRepeat enum.
Enum CanvasGroupMode<>():Enum

CANVAS_GROUP_MODE_DISABLED:null = 0
Child draws over parent and is not clipped.


CANVAS_GROUP_MODE_CLIP_ONLY:null = 1
Parent is used for the purposes of clipping only. Child is clipped to the parent's visible area, parent is not drawn.


CANVAS_GROUP_MODE_CLIP_AND_DRAW:null = 2
Parent is used for clipping child, but parent is also drawn underneath child as normal before clipping child to its visible area.


CANVAS_GROUP_MODE_TRANSPARENT:null = 3
Enum CanvasLightMode<>():Enum

CANVAS_LIGHT_MODE_POINT:null = 0
2D point light (see PointLight2D).


CANVAS_LIGHT_MODE_DIRECTIONAL:null = 1
2D directional (sun/moon) light (see DirectionalLight2D).
Enum CanvasLightBlendMode<>():Enum

CANVAS_LIGHT_BLEND_MODE_ADD:null = 0
Adds light color additive to the canvas.


CANVAS_LIGHT_BLEND_MODE_SUB:null = 1
Adds light color subtractive to the canvas.


CANVAS_LIGHT_BLEND_MODE_MIX:null = 2
The light adds color depending on transparency.
Enum CanvasLightShadowFilter<>():Enum

CANVAS_LIGHT_FILTER_NONE:null = 0
Do not apply a filter to canvas light shadows.


CANVAS_LIGHT_FILTER_PCF5:null = 1
Use PCF5 filtering to filter canvas light shadows.


CANVAS_LIGHT_FILTER_PCF13:null = 2
Use PCF13 filtering to filter canvas light shadows.


CANVAS_LIGHT_FILTER_MAX:null = 3
Max value of the CanvasLightShadowFilter enum.
Enum CanvasOccluderPolygonCullMode<>():Enum

CANVAS_OCCLUDER_POLYGON_CULL_DISABLED:null = 0
Culling of the canvas occluder is disabled.


CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE:null = 1
Culling of the canvas occluder is clockwise.


CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE:null = 2
Culling of the canvas occluder is counterclockwise.
Enum GlobalShaderParameterType<>():Enum

GLOBAL_VAR_TYPE_BOOL:null = 0
Boolean global shader parameter (global uniform bool ...).


GLOBAL_VAR_TYPE_BVEC2:null = 1
2-dimensional boolean vector global shader parameter (global uniform bvec2 ...).


GLOBAL_VAR_TYPE_BVEC3:null = 2
3-dimensional boolean vector global shader parameter (global uniform bvec3 ...).


GLOBAL_VAR_TYPE_BVEC4:null = 3
4-dimensional boolean vector global shader parameter (global uniform bvec4 ...).


GLOBAL_VAR_TYPE_INT:null = 4
Integer global shader parameter (global uniform int ...).


GLOBAL_VAR_TYPE_IVEC2:null = 5
2-dimensional integer vector global shader parameter (global uniform ivec2 ...).


GLOBAL_VAR_TYPE_IVEC3:null = 6
3-dimensional integer vector global shader parameter (global uniform ivec3 ...).


GLOBAL_VAR_TYPE_IVEC4:null = 7
4-dimensional integer vector global shader parameter (global uniform ivec4 ...).


GLOBAL_VAR_TYPE_RECT2I:null = 8
2-dimensional integer rectangle global shader parameter (global uniform ivec4 ...). Equivalent to GLOBAL_VAR_TYPE_IVEC4 in shader code, but exposed as a Rect2i in the editor UI.


GLOBAL_VAR_TYPE_UINT:null = 9
Unsigned integer global shader parameter (global uniform uint ...).


GLOBAL_VAR_TYPE_UVEC2:null = 10
2-dimensional unsigned integer vector global shader parameter (global uniform uvec2 ...).


GLOBAL_VAR_TYPE_UVEC3:null = 11
3-dimensional unsigned integer vector global shader parameter (global uniform uvec3 ...).


GLOBAL_VAR_TYPE_UVEC4:null = 12
4-dimensional unsigned integer vector global shader parameter (global uniform uvec4 ...).


GLOBAL_VAR_TYPE_FLOAT:null = 13
Single-precision floating-point global shader parameter (global uniform float ...).


GLOBAL_VAR_TYPE_VEC2:null = 14
2-dimensional floating-point vector global shader parameter (global uniform vec2 ...).


GLOBAL_VAR_TYPE_VEC3:null = 15
3-dimensional floating-point vector global shader parameter (global uniform vec3 ...).


GLOBAL_VAR_TYPE_VEC4:null = 16
4-dimensional floating-point vector global shader parameter (global uniform vec4 ...).


GLOBAL_VAR_TYPE_COLOR:null = 17
Color global shader parameter (global uniform vec4 ...). Equivalent to GLOBAL_VAR_TYPE_VEC4 in shader code, but exposed as a Color in the editor UI.


GLOBAL_VAR_TYPE_RECT2:null = 18
2-dimensional floating-point rectangle global shader parameter (global uniform vec4 ...). Equivalent to GLOBAL_VAR_TYPE_VEC4 in shader code, but exposed as a Rect2 in the editor UI.


GLOBAL_VAR_TYPE_MAT2:null = 19
2×2 matrix global shader parameter (global uniform mat2 ...). Exposed as a PackedInt32Array in the editor UI.


GLOBAL_VAR_TYPE_MAT3:null = 20
3×3 matrix global shader parameter (global uniform mat3 ...). Exposed as a Basis in the editor UI.


GLOBAL_VAR_TYPE_MAT4:null = 21
4×4 matrix global shader parameter (global uniform mat4 ...). Exposed as a Projection in the editor UI.


GLOBAL_VAR_TYPE_TRANSFORM_2D:null = 22
2-dimensional transform global shader parameter (global uniform mat2x3 ...). Exposed as a Transform2D in the editor UI.


GLOBAL_VAR_TYPE_TRANSFORM:null = 23
3-dimensional transform global shader parameter (global uniform mat3x4 ...). Exposed as a Transform3D in the editor UI.


GLOBAL_VAR_TYPE_SAMPLER2D:null = 24
2D sampler global shader parameter (global uniform sampler2D ...). Exposed as a Texture2D in the editor UI.


GLOBAL_VAR_TYPE_SAMPLER2DARRAY:null = 25
2D sampler array global shader parameter (global uniform sampler2DArray ...). Exposed as a Texture2DArray in the editor UI.


GLOBAL_VAR_TYPE_SAMPLER3D:null = 26
3D sampler global shader parameter (global uniform sampler3D ...). Exposed as a Texture3D in the editor UI.


GLOBAL_VAR_TYPE_SAMPLERCUBE:null = 27
Cubemap sampler global shader parameter (global uniform samplerCube ...). Exposed as a Cubemap in the editor UI.


GLOBAL_VAR_TYPE_SAMPLEREXT:null = 28
External sampler global shader parameter (global uniform samplerExternalOES ...). Exposed as an ExternalTexture in the editor UI.


GLOBAL_VAR_TYPE_MAX:null = 29
Represents the size of the GlobalShaderParameterType enum.
Enum RenderingInfo<>():Enum

RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME:null = 0
Number of objects rendered in the current 3D scene. This varies depending on camera position and rotation.


RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME:null = 1
Number of points, lines, or triangles rendered in the current 3D scene. This varies depending on camera position and rotation.


RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME:null = 2
Number of draw calls performed to render in the current 3D scene. This varies depending on camera position and rotation.


RENDERING_INFO_TEXTURE_MEM_USED:null = 3
Texture memory used (in bytes).


RENDERING_INFO_BUFFER_MEM_USED:null = 4
Buffer memory used (in bytes). This includes vertex data, uniform buffers, and many miscellaneous buffer types used internally.


RENDERING_INFO_VIDEO_MEM_USED:null = 5
Video memory used (in bytes). When using the Forward+ or Mobile renderers, this is always greater than the sum of RENDERING_INFO_TEXTURE_MEM_USED and RENDERING_INFO_BUFFER_MEM_USED, since there is miscellaneous data not accounted for by those two metrics. When using the Compatibility renderer, this is equal to the sum of RENDERING_INFO_TEXTURE_MEM_USED and RENDERING_INFO_BUFFER_MEM_USED.


RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS:null = 6
Number of pipeline compilations that were triggered by the 2D canvas renderer.


RENDERING_INFO_PIPELINE_COMPILATIONS_MESH:null = 7
Number of pipeline compilations that were triggered by loading meshes. These compilations will show up as longer loading times the first time a user runs the game and the pipeline is required.


RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE:null = 8
Number of pipeline compilations that were triggered by building the surface cache before rendering the scene. These compilations will show up as a stutter when loading a scene the first time a user runs the game and the pipeline is required.


RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW:null = 9
Number of pipeline compilations that were triggered while drawing the scene. These compilations will show up as stutters during gameplay the first time a user runs the game and the pipeline is required.


RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION:null = 10
Number of pipeline compilations that were triggered to optimize the current scene. These compilations are done in the background and should not cause any stutters whatsoever.
Enum PipelineSource<>():Enum

PIPELINE_SOURCE_CANVAS:null = 0
Pipeline compilation that was triggered by the 2D canvas renderer.


PIPELINE_SOURCE_MESH:null = 1
Pipeline compilation that was triggered by loading a mesh.


PIPELINE_SOURCE_SURFACE:null = 2
Pipeline compilation that was triggered by building the surface cache before rendering the scene.


PIPELINE_SOURCE_DRAW:null = 3
Pipeline compilation that was triggered while drawing the scene.


PIPELINE_SOURCE_SPECIALIZATION:null = 4
Pipeline compilation that was triggered to optimize the current scene.


PIPELINE_SOURCE_MAX:null = 5
Represents the size of the PipelineSource enum.
Enum SplashStretchMode<>():Enum

SPLASH_STRETCH_MODE_DISABLED:null = 0
No stretching is applied.


SPLASH_STRETCH_MODE_KEEP:null = 1
Stretches image to fullscreen while preserving aspect ratio.


SPLASH_STRETCH_MODE_KEEP_WIDTH:null = 2
Stretches the height of the image based on the width of the screen.


SPLASH_STRETCH_MODE_KEEP_HEIGHT:null = 3
Stretches the width of the image based on the height of the screen.


SPLASH_STRETCH_MODE_COVER:null = 4
Stretches the image to cover the entire screen while preserving aspect ratio.


SPLASH_STRETCH_MODE_IGNORE:null = 5
Stretches the image to cover the entire screen but doesn't preserve aspect ratio.
Enum Features<>():Enum

FEATURE_SHADERS:null = 0


FEATURE_MULTITHREADED:null = 1
Signal frame_post_draw<>():Signal
Emitted at the end of the frame, after the RenderingServer has finished updating all the Viewports.

Signal frame_pre_draw<>():Signal
Emitted at the beginning of the frame, before the RenderingServer updates all the Viewports.

set get bool render_loop_enabled<>():bool set get
If false, disables rendering completely, but the engine logic is still being processed. You can call force_draw to draw a frame even with rendering disabled.

Image[] bake_render_uv2<>( RID base=, base:RID=, RID[] material_overrides=, material_overrides:RID[]=, Vector2i image_size=, image_size:Vector2i=, ):Image[]
Bakes the material data of the Mesh passed in the base parameter with optional material_overrides to a set of Images of size image_size. Returns an array of Images containing material properties as specified in BakeChannels.

void call_on_render_thread<>( Callable callable=, callable:Callable=, ):void
As the RenderingServer actual logic may run on a separate thread, accessing its internals from the main (or any other) thread will result in errors. To make it easier to run code that can safely access the rendering internals (such as RenderingDevice and similar RD classes), push a callable via this function so it will be executed on the render thread.

RID camera_attributes_create<>():RID
Creates a camera attributes object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all camera_attributes_ RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent resource is CameraAttributes.
void camera_attributes_set_auto_exposure<>( RID camera_attributes=, camera_attributes:RID=, bool enable=, enable:bool=, float min_sensitivity=, min_sensitivity:float=, float max_sensitivity=, max_sensitivity:float=, float speed=, speed:float=, float scale=, scale:float=, ):void
Sets the parameters to use with the auto-exposure effect. These parameters take on the same meaning as their counterparts in CameraAttributes and CameraAttributesPractical.

void camera_attributes_set_dof_blur<>( RID camera_attributes=, camera_attributes:RID=, bool far_enable=, far_enable:bool=, float far_distance=, far_distance:float=, float far_transition=, far_transition:float=, bool near_enable=, near_enable:bool=, float near_distance=, near_distance:float=, float near_transition=, near_transition:float=, float amount=, amount:float=, ):void
Sets the parameters to use with the DOF blur effect. These parameters take on the same meaning as their counterparts in CameraAttributesPractical.

void camera_attributes_set_dof_blur_bokeh_shape<>( int shape=, shape:int=, ):void
Sets the shape of the DOF bokeh pattern to shape. Different shapes may be used to achieve artistic effect, or to meet performance targets.

void camera_attributes_set_dof_blur_quality<>( int quality=, quality:int=, bool use_jitter=, use_jitter:bool=, ):void
Sets the quality level of the DOF blur effect to quality. use_jitter can be used to jitter samples taken during the blur pass to hide artifacts at the cost of looking more fuzzy.

void camera_attributes_set_exposure<>( RID camera_attributes=, camera_attributes:RID=, float multiplier=, multiplier:float=, float normalization=, normalization:float=, ):void
Sets the exposure values that will be used by the renderers. The normalization amount is used to bake a given Exposure Value (EV) into rendering calculations to reduce the dynamic range of the scene.

The normalization factor can be calculated from exposure value (EV100) as follows:
func get_exposure_normalization(ev100: float): return 1.0 / (pow(2.0, ev100) * 1.2)
The exposure value can be calculated from aperture (in f-stops), shutter speed (in seconds), and sensitivity (in ISO) as follows:
func get_exposure(aperture: float, shutter_speed: float, sensitivity: float): return log((aperture * aperture) / shutter_speed * (100.0 / sensitivity)) / log(2)
RID camera_create<>():RID
Creates a 3D camera and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all camera_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent node is Camera3D.
void camera_set_camera_attributes<>( RID camera=, camera:RID=, RID effects=, effects:RID=, ):void
Sets the camera_attributes created with camera_attributes_create to the given camera.

void camera_set_compositor<>( RID camera=, camera:RID=, RID compositor=, compositor:RID=, ):void
Sets the compositor used by this camera. Equivalent to [member Camera3D.compositor].

void camera_set_cull_mask<>( RID camera=, camera:RID=, int layers=, layers:int=, ):void
Sets the cull mask associated with this camera. The cull mask describes which 3D layers are rendered by this camera. Equivalent to [member Camera3D.cull_mask].

void camera_set_environment<>( RID camera=, camera:RID=, RID env=, env:RID=, ):void
Sets the environment used by this camera. Equivalent to [member Camera3D.environment].

void camera_set_frustum<>( RID camera=, camera:RID=, float size=, size:float=, Vector2 offset=, offset:Vector2=, float z_near=, z_near:float=, float z_far=, z_far:float=, ):void
Sets camera to use frustum projection. This mode allows adjusting the offset argument to create "tilted frustum" effects.

void camera_set_orthogonal<>( RID camera=, camera:RID=, float size=, size:float=, float z_near=, z_near:float=, float z_far=, z_far:float=, ):void
Sets camera to use orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are.

void camera_set_perspective<>( RID camera=, camera:RID=, float fovy_degrees=, fovy_degrees:float=, float z_near=, z_near:float=, float z_far=, z_far:float=, ):void
Sets camera to use perspective projection. Objects on the screen becomes smaller when they are far away.

void camera_set_transform<>( RID camera=, camera:RID=, Transform3D transform=, transform:Transform3D=, ):void
Sets Transform3D of camera.

void camera_set_use_vertical_aspect<>( RID camera=, camera:RID=, bool enable=, enable:bool=, ):void
If true, preserves the horizontal aspect ratio which is equivalent to [constant Camera3D.KEEP_WIDTH]. If false, preserves the vertical aspect ratio which is equivalent to [constant Camera3D.KEEP_HEIGHT].

RID canvas_create<>():RID
Creates a canvas and returns the assigned RID. It can be accessed with the RID that is returned. This RID will be used in all canvas_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Canvas has no Resource or Node equivalent.
void canvas_item_add_animation_slice<>( RID item=, item:RID=, float animation_length=, animation_length:float=, float slice_begin=, slice_begin:float=, float slice_end=, slice_end:float=, float offset=0.0, offset:float=0.0, ):void
Subsequent drawing commands will be ignored unless they fall within the specified animation slice. This is a faster way to implement animations that loop on background rather than redrawing constantly.

void canvas_item_add_circle<>( RID item=, item:RID=, Vector2 pos=, pos:Vector2=, float radius=, radius:float=, Color color=, color:Color=, bool antialiased=false, antialiased:bool=false, ):void
Draws a circle on the CanvasItem pointed to by the item RID. See also [method CanvasItem.draw_circle].

void canvas_item_add_clip_ignore<>( RID item=, item:RID=, bool ignore=, ignore:bool=, ):void
If ignore is true, ignore clipping on items drawn with this canvas item until this is called again with ignore set to false.

void canvas_item_add_ellipse<>( RID item=, item:RID=, Vector2 pos=, pos:Vector2=, float major=, major:float=, float minor=, minor:float=, Color color=, color:Color=, bool antialiased=false, antialiased:bool=false, ):void
Draws an ellipse with semi-major axis major and semi-minor axis minor on the CanvasItem pointed to by the item RID. See also [method CanvasItem.draw_ellipse].

void canvas_item_add_lcd_texture_rect_region<>( RID item=, item:RID=, Rect2 rect=, rect:Rect2=, RID texture=, texture:RID=, Rect2 src_rect=, src_rect:Rect2=, Color modulate=, modulate:Color=, ):void
See also [method CanvasItem.draw_lcd_texture_rect_region].

void canvas_item_add_line<>( RID item=, item:RID=, Vector2 from=, from:Vector2=, Vector2 to=, to:Vector2=, Color color=, color:Color=, float width=-1.0, width:float=-1.0, bool antialiased=false, antialiased:bool=false, ):void
Draws a line on the CanvasItem pointed to by the item RID. See also [method CanvasItem.draw_line].

void canvas_item_add_mesh<>( RID item=, item:RID=, RID mesh=, mesh:RID=, Transform2D transform=Transform2D(1, 0, 0, 1, 0, 0), transform:Transform2D=Transform2D(1, 0, 0, 1, 0, 0), Color modulate=Color(1, 1, 1, 1), modulate:Color=Color(1, 1, 1, 1), RID texture=RID(), texture:RID=RID(), ):void
Draws a mesh created with mesh_create with given transform, modulate color, and texture. This is used internally by MeshInstance2D.

void canvas_item_add_msdf_texture_rect_region<>( RID item=, item:RID=, Rect2 rect=, rect:Rect2=, RID texture=, texture:RID=, Rect2 src_rect=, src_rect:Rect2=, Color modulate=Color(1, 1, 1, 1), modulate:Color=Color(1, 1, 1, 1), int outline_size=0, outline_size:int=0, float px_range=1.0, px_range:float=1.0, float scale=1.0, scale:float=1.0, ):void
See also [method CanvasItem.draw_msdf_texture_rect_region].

void canvas_item_add_multiline<>( RID item=, item:RID=, PackedVector2Array points=, points:PackedVector2Array=, PackedColorArray colors=, colors:PackedColorArray=, float width=-1.0, width:float=-1.0, bool antialiased=false, antialiased:bool=false, ):void
Draws a 2D multiline on the CanvasItem pointed to by the item RID. See also [method CanvasItem.draw_multiline] and [method CanvasItem.draw_multiline_colors].

void canvas_item_add_multimesh<>( RID item=, item:RID=, RID mesh=, mesh:RID=, RID texture=RID(), texture:RID=RID(), ):void
Draws a 2D MultiMesh on the CanvasItem pointed to by the item RID. See also [method CanvasItem.draw_multimesh].

void canvas_item_add_nine_patch<>( RID item=, item:RID=, Rect2 rect=, rect:Rect2=, Rect2 source=, source:Rect2=, RID texture=, texture:RID=, Vector2 topleft=, topleft:Vector2=, Vector2 bottomright=, bottomright:Vector2=, int x_axis_mode=0, x_axis_mode:int=0, int y_axis_mode=0, y_axis_mode:int=0, bool draw_center=true, draw_center:bool=true, Color modulate=Color(1, 1, 1, 1), modulate:Color=Color(1, 1, 1, 1), ):void
Draws a nine-patch rectangle on the CanvasItem pointed to by the item RID.

void canvas_item_add_particles<>( RID item=, item:RID=, RID particles=, particles:RID=, RID texture=, texture:RID=, ):void
Draws particles on the CanvasItem pointed to by the item RID.

void canvas_item_add_polygon<>( RID item=, item:RID=, PackedVector2Array points=, points:PackedVector2Array=, PackedColorArray colors=, colors:PackedColorArray=, PackedVector2Array uvs=PackedVector2Array(), uvs:PackedVector2Array=PackedVector2Array(), RID texture=RID(), texture:RID=RID(), ):void
Draws a 2D polygon on the CanvasItem pointed to by the item RID. If you need more flexibility (such as being able to use bones), use canvas_item_add_triangle_array instead. See also [method CanvasItem.draw_polygon].

Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with [method Geometry2D.triangulate_polygon] and using [method CanvasItem.draw_mesh], [method CanvasItem.draw_multimesh], or canvas_item_add_triangle_array.
void canvas_item_add_polyline<>( RID item=, item:RID=, PackedVector2Array points=, points:PackedVector2Array=, PackedColorArray colors=, colors:PackedColorArray=, float width=-1.0, width:float=-1.0, bool antialiased=false, antialiased:bool=false, ):void
Draws a 2D polyline on the CanvasItem pointed to by the item RID. See also [method CanvasItem.draw_polyline] and [method CanvasItem.draw_polyline_colors].

void canvas_item_add_primitive<>( RID item=, item:RID=, PackedVector2Array points=, points:PackedVector2Array=, PackedColorArray colors=, colors:PackedColorArray=, PackedVector2Array uvs=, uvs:PackedVector2Array=, RID texture=, texture:RID=, ):void
Draws a 2D primitive on the CanvasItem pointed to by the item RID. See also [method CanvasItem.draw_primitive].

void canvas_item_add_rect<>( RID item=, item:RID=, Rect2 rect=, rect:Rect2=, Color color=, color:Color=, bool antialiased=false, antialiased:bool=false, ):void
Draws a rectangle on the CanvasItem pointed to by the item RID. See also [method CanvasItem.draw_rect].

void canvas_item_add_set_transform<>( RID item=, item:RID=, Transform2D transform=, transform:Transform2D=, ):void
Sets a Transform2D that will be used to transform subsequent canvas item commands.

void canvas_item_add_texture_rect<>( RID item=, item:RID=, Rect2 rect=, rect:Rect2=, RID texture=, texture:RID=, bool tile=false, tile:bool=false, Color modulate=Color(1, 1, 1, 1), modulate:Color=Color(1, 1, 1, 1), bool transpose=false, transpose:bool=false, ):void
Draws a 2D textured rectangle on the CanvasItem pointed to by the item RID. See also [method CanvasItem.draw_texture_rect] and [method Texture2D.draw_rect].

void canvas_item_add_texture_rect_region<>( RID item=, item:RID=, Rect2 rect=, rect:Rect2=, RID texture=, texture:RID=, Rect2 src_rect=, src_rect:Rect2=, Color modulate=Color(1, 1, 1, 1), modulate:Color=Color(1, 1, 1, 1), bool transpose=false, transpose:bool=false, bool clip_uv=true, clip_uv:bool=true, ):void
Draws the specified region of a 2D textured rectangle on the CanvasItem pointed to by the item RID. See also [method CanvasItem.draw_texture_rect_region] and [method Texture2D.draw_rect_region].

void canvas_item_add_triangle_array<>( RID item=, item:RID=, PackedInt32Array indices=, indices:PackedInt32Array=, PackedVector2Array points=, points:PackedVector2Array=, PackedColorArray colors=, colors:PackedColorArray=, PackedVector2Array uvs=PackedVector2Array(), uvs:PackedVector2Array=PackedVector2Array(), PackedInt32Array bones=PackedInt32Array(), bones:PackedInt32Array=PackedInt32Array(), PackedFloat32Array weights=PackedFloat32Array(), weights:PackedFloat32Array=PackedFloat32Array(), RID texture=RID(), texture:RID=RID(), int count=-1, count:int=-1, ):void
Draws a triangle array on the CanvasItem pointed to by the item RID. This is internally used by Line2D and StyleBoxFlat for rendering. canvas_item_add_triangle_array is highly flexible, but more complex to use than canvas_item_add_polygon.

Note: If count is set to a non-negative value, only the first count * 3 indices (corresponding to [code skip-lint]count[/code] triangles) will be drawn. Otherwise, all indices are drawn.
void canvas_item_attach_skeleton<>( RID item=, item:RID=, RID skeleton=, skeleton:RID=, ):void
Attaches a skeleton to the CanvasItem. Removes the previous skeleton.

void canvas_item_clear<>( RID item=, item:RID=, ):void
Clears the CanvasItem and removes all commands in it.

RID canvas_item_create<>():RID
Creates a new CanvasItem instance and returns its RID. It can be accessed with the RID that is returned. This RID will be used in all canvas_item_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent node is CanvasItem.
Variant canvas_item_get_instance_shader_parameter<>( RID instance=, instance:RID=, StringName parameter=, parameter:StringName=, ):Variant
Returns the value of the per-instance shader uniform from the specified canvas item instance. Equivalent to [method CanvasItem.get_instance_shader_parameter].

Variant canvas_item_get_instance_shader_parameter_default_value<>( RID instance=, instance:RID=, StringName parameter=, parameter:StringName=, ):Variant
Returns the default value of the per-instance shader uniform from the specified canvas item instance. Equivalent to [method CanvasItem.get_instance_shader_parameter].

Dictionary[] canvas_item_get_instance_shader_parameter_list<>( RID instance=, instance:RID=, ):Dictionary[]
Returns a dictionary of per-instance shader uniform names of the per-instance shader uniform from the specified canvas item instance.

The returned dictionary is in PropertyInfo format, with the keys name, class_name, type, hint, hint_string, and usage.
void canvas_item_reset_physics_interpolation<>( RID item=, item:RID=, ):void
Prevents physics interpolation for the current physics tick.

This is useful when moving a canvas item to a new location, to give an instantaneous change rather than interpolation from the previous location.
void canvas_item_set_canvas_group_mode<>( RID item=, item:RID=, int mode=, mode:int=, float clear_margin=5.0, clear_margin:float=5.0, bool fit_empty=false, fit_empty:bool=false, float fit_margin=0.0, fit_margin:float=0.0, bool blur_mipmaps=false, blur_mipmaps:bool=false, ):void
Sets the canvas group mode used during 2D rendering for the canvas item specified by the item RID. For faster but more limited clipping, use canvas_item_set_clip instead.

Note: The equivalent node functionality is found in CanvasGroup and [member CanvasItem.clip_children].
void canvas_item_set_clip<>( RID item=, item:RID=, bool clip=, clip:bool=, ):void
If clip is true, makes the canvas item specified by the item RID not draw anything outside of its rect's coordinates. This clipping is fast, but works only with axis-aligned rectangles. This means that rotation is ignored by the clipping rectangle. For more advanced clipping shapes, use canvas_item_set_canvas_group_mode instead.

Note: The equivalent node functionality is found in [member Label.clip_text], RichTextLabel (always enabled) and more.
void canvas_item_set_copy_to_backbuffer<>( RID item=, item:RID=, bool enabled=, enabled:bool=, Rect2 rect=, rect:Rect2=, ):void
Sets the CanvasItem to copy a rect to the backbuffer.

void canvas_item_set_custom_rect<>( RID item=, item:RID=, bool use_custom_rect=, use_custom_rect:bool=, Rect2 rect=Rect2(0, 0, 0, 0), rect:Rect2=Rect2(0, 0, 0, 0), ):void
If use_custom_rect is true, sets the custom visibility rectangle (used for culling) to rect for the canvas item specified by item. Setting a custom visibility rect can reduce CPU load when drawing lots of 2D instances. If use_custom_rect is false, automatically computes a visibility rectangle based on the canvas item's draw commands.

void canvas_item_set_default_texture_filter<>( RID item=, item:RID=, int filter=, filter:int=, ):void
Sets the default texture filter mode for the canvas item specified by the item RID. Equivalent to [member CanvasItem.texture_filter].

void canvas_item_set_default_texture_repeat<>( RID item=, item:RID=, int repeat=, repeat:int=, ):void
Sets the default texture repeat mode for the canvas item specified by the item RID. Equivalent to [member CanvasItem.texture_repeat].

void canvas_item_set_distance_field_mode<>( RID item=, item:RID=, bool enabled=, enabled:bool=, ):void
If enabled is true, enables multichannel signed distance field rendering mode for the canvas item specified by the item RID. This is meant to be used for font rendering, or with specially generated images using [url=https://github.com/Chlumsky/msdfgen]msdfgen[/url].

void canvas_item_set_draw_behind_parent<>( RID item=, item:RID=, bool enabled=, enabled:bool=, ):void
If enabled is true, draws the canvas item specified by the item RID behind its parent. Equivalent to [member CanvasItem.show_behind_parent].

void canvas_item_set_draw_index<>( RID item=, item:RID=, int index=, index:int=, ):void
Sets the index for the CanvasItem.

void canvas_item_set_instance_shader_parameter<>( RID instance=, instance:RID=, StringName parameter=, parameter:StringName=, Variant value=, value:Variant=, ):void
Sets the per-instance shader uniform on the specified canvas item instance. Equivalent to [method CanvasItem.set_instance_shader_parameter].

void canvas_item_set_interpolated<>( RID item=, item:RID=, bool interpolated=, interpolated:bool=, ):void
If interpolated is true, turns on physics interpolation for the canvas item.

void canvas_item_set_light_mask<>( RID item=, item:RID=, int mask=, mask:int=, ):void
Sets the light mask for the canvas item specified by the item RID. Equivalent to [member CanvasItem.light_mask].

void canvas_item_set_material<>( RID item=, item:RID=, RID material=, material:RID=, ):void
Sets a new material to the canvas item specified by the item RID. Equivalent to [member CanvasItem.material].

void canvas_item_set_modulate<>( RID item=, item:RID=, Color color=, color:Color=, ):void
Multiplies the color of the canvas item specified by the item RID, while affecting its children. See also canvas_item_set_self_modulate. Equivalent to [member CanvasItem.modulate].

void canvas_item_set_parent<>( RID item=, item:RID=, RID parent=, parent:RID=, ):void
Sets a parent CanvasItem to the CanvasItem. The item will inherit transform, modulation and visibility from its parent, like CanvasItem nodes in the scene tree.

void canvas_item_set_self_modulate<>( RID item=, item:RID=, Color color=, color:Color=, ):void
Multiplies the color of the canvas item specified by the item RID, without affecting its children. See also canvas_item_set_modulate. Equivalent to [member CanvasItem.self_modulate].

void canvas_item_set_sort_children_by_y<>( RID item=, item:RID=, bool enabled=, enabled:bool=, ):void
If enabled is true, child nodes with the lowest Y position are drawn before those with a higher Y position. Y-sorting only affects children that inherit from the canvas item specified by the item RID, not the canvas item itself. Equivalent to [member CanvasItem.y_sort_enabled].

void canvas_item_set_transform<>( RID item=, item:RID=, Transform2D transform=, transform:Transform2D=, ):void
Sets the transform of the canvas item specified by the item RID. This affects where and how the item will be drawn. Child canvas items' transforms are multiplied by their parent's transform. Equivalent to [member Node2D.transform].

void canvas_item_set_use_parent_material<>( RID item=, item:RID=, bool enabled=, enabled:bool=, ):void
Sets if the CanvasItem uses its parent's material.

void canvas_item_set_visibility_layer<>( RID item=, item:RID=, int visibility_layer=, visibility_layer:int=, ):void
Sets the rendering visibility layer associated with this CanvasItem. Only Viewport nodes with a matching rendering mask will render this CanvasItem.

void canvas_item_set_visibility_notifier<>( RID item=, item:RID=, bool enable=, enable:bool=, Rect2 area=, area:Rect2=, Callable enter_callable=, enter_callable:Callable=, Callable exit_callable=, exit_callable:Callable=, ):void
Sets the given CanvasItem as visibility notifier. area defines the area of detecting visibility. enter_callable is called when the CanvasItem enters the screen, exit_callable is called when the CanvasItem exits the screen. If enable is false, the item will no longer function as notifier.

This method can be used to manually mimic VisibleOnScreenNotifier2D.
void canvas_item_set_visible<>( RID item=, item:RID=, bool visible=, visible:bool=, ):void
Sets the visibility of the CanvasItem.

void canvas_item_set_z_as_relative_to_parent<>( RID item=, item:RID=, bool enabled=, enabled:bool=, ):void
If this is enabled, the Z index of the parent will be added to the children's Z index.

void canvas_item_set_z_index<>( RID item=, item:RID=, int z_index=, z_index:int=, ):void
Sets the CanvasItem's Z index, i.e. its draw order (lower indexes are drawn first).

void canvas_item_transform_physics_interpolation<>( RID item=, item:RID=, Transform2D transform=, transform:Transform2D=, ):void
Transforms both the current and previous stored transform for a canvas item.

This allows transforming a canvas item without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin.
void canvas_light_attach_to_canvas<>( RID light=, light:RID=, RID canvas=, canvas:RID=, ):void
Attaches the canvas light to the canvas. Removes it from its previous canvas.

RID canvas_light_create<>():RID
Creates a canvas light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_light_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent node is Light2D.
void canvas_light_occluder_attach_to_canvas<>( RID occluder=, occluder:RID=, RID canvas=, canvas:RID=, ):void
Attaches a light occluder to the canvas. Removes it from its previous canvas.

RID canvas_light_occluder_create<>():RID
Creates a light occluder and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_light_occluder_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent node is LightOccluder2D.
void canvas_light_occluder_reset_physics_interpolation<>( RID occluder=, occluder:RID=, ):void
Prevents physics interpolation for the current physics tick.

This is useful when moving an occluder to a new location, to give an instantaneous change rather than interpolation from the previous location.
void canvas_light_occluder_set_as_sdf_collision<>( RID occluder=, occluder:RID=, bool enable=, enable:bool=, ):void
void canvas_light_occluder_set_enabled<>( RID occluder=, occluder:RID=, bool enabled=, enabled:bool=, ):void
Enables or disables light occluder.

void canvas_light_occluder_set_interpolated<>( RID occluder=, occluder:RID=, bool interpolated=, interpolated:bool=, ):void
If interpolated is true, turns on physics interpolation for the light occluder.

void canvas_light_occluder_set_light_mask<>( RID occluder=, occluder:RID=, int mask=, mask:int=, ):void
The light mask. See LightOccluder2D for more information on light masks.

void canvas_light_occluder_set_polygon<>( RID occluder=, occluder:RID=, RID polygon=, polygon:RID=, ):void
Sets a light occluder's polygon.

void canvas_light_occluder_set_transform<>( RID occluder=, occluder:RID=, Transform2D transform=, transform:Transform2D=, ):void
Sets a light occluder's Transform2D.

void canvas_light_occluder_transform_physics_interpolation<>( RID occluder=, occluder:RID=, Transform2D transform=, transform:Transform2D=, ):void
Transforms both the current and previous stored transform for a light occluder.

This allows transforming an occluder without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin.
void canvas_light_reset_physics_interpolation<>( RID light=, light:RID=, ):void
Prevents physics interpolation for the current physics tick.

This is useful when moving a canvas item to a new location, to give an instantaneous change rather than interpolation from the previous location.
void canvas_light_set_blend_mode<>( RID light=, light:RID=, int mode=, mode:int=, ):void
Sets the blend mode for the given canvas light to mode. Equivalent to [member Light2D.blend_mode].

void canvas_light_set_color<>( RID light=, light:RID=, Color color=, color:Color=, ):void
Sets the color for a light.

void canvas_light_set_enabled<>( RID light=, light:RID=, bool enabled=, enabled:bool=, ):void
Enables or disables a canvas light.

void canvas_light_set_energy<>( RID light=, light:RID=, float energy=, energy:float=, ):void
Sets a canvas light's energy.

void canvas_light_set_height<>( RID light=, light:RID=, float height=, height:float=, ):void
Sets a canvas light's height.

void canvas_light_set_interpolated<>( RID light=, light:RID=, bool interpolated=, interpolated:bool=, ):void
If interpolated is true, turns on physics interpolation for the canvas light.

void canvas_light_set_item_cull_mask<>( RID light=, light:RID=, int mask=, mask:int=, ):void
The light mask. See LightOccluder2D for more information on light masks.

void canvas_light_set_item_shadow_cull_mask<>( RID light=, light:RID=, int mask=, mask:int=, ):void
The binary mask used to determine which layers this canvas light's shadows affects. See LightOccluder2D for more information on light masks.

void canvas_light_set_layer_range<>( RID light=, light:RID=, int min_layer=, min_layer:int=, int max_layer=, max_layer:int=, ):void
The layer range that gets rendered with this light.

void canvas_light_set_mode<>( RID light=, light:RID=, int mode=, mode:int=, ):void
Sets the mode of the canvas light.

void canvas_light_set_shadow_color<>( RID light=, light:RID=, Color color=, color:Color=, ):void
Sets the color of the canvas light's shadow.

void canvas_light_set_shadow_enabled<>( RID light=, light:RID=, bool enabled=, enabled:bool=, ):void
Enables or disables the canvas light's shadow.

void canvas_light_set_shadow_filter<>( RID light=, light:RID=, int filter=, filter:int=, ):void
Sets the canvas light's shadow's filter.

void canvas_light_set_shadow_smooth<>( RID light=, light:RID=, float smooth=, smooth:float=, ):void
Smoothens the shadow. The lower, the smoother.

void canvas_light_set_texture<>( RID light=, light:RID=, RID texture=, texture:RID=, ):void
Sets the texture to be used by a PointLight2D. Equivalent to [member PointLight2D.texture].

void canvas_light_set_texture_offset<>( RID light=, light:RID=, Vector2 offset=, offset:Vector2=, ):void
Sets the offset of a PointLight2D's texture. Equivalent to [member PointLight2D.offset].

void canvas_light_set_texture_scale<>( RID light=, light:RID=, float scale=, scale:float=, ):void
Sets the scale factor of a PointLight2D's texture. Equivalent to [member PointLight2D.texture_scale].

void canvas_light_set_transform<>( RID light=, light:RID=, Transform2D transform=, transform:Transform2D=, ):void
Sets the canvas light's Transform2D.

void canvas_light_set_z_range<>( RID light=, light:RID=, int min_z=, min_z:int=, int max_z=, max_z:int=, ):void
Sets the Z range of objects that will be affected by this light. Equivalent to [member Light2D.range_z_min] and [member Light2D.range_z_max].

void canvas_light_transform_physics_interpolation<>( RID light=, light:RID=, Transform2D transform=, transform:Transform2D=, ):void
Transforms both the current and previous stored transform for a canvas light.

This allows transforming a light without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin.
RID canvas_occluder_polygon_create<>():RID
Creates a new light occluder polygon and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_occluder_polygon_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent resource is OccluderPolygon2D.
void canvas_occluder_polygon_set_cull_mode<>( RID occluder_polygon=, occluder_polygon:RID=, int mode=, mode:int=, ):void
Sets an occluder polygon's cull mode.

void canvas_occluder_polygon_set_shape<>( RID occluder_polygon=, occluder_polygon:RID=, PackedVector2Array shape=, shape:PackedVector2Array=, bool closed=, closed:bool=, ):void
Sets the shape of the occluder polygon.

void canvas_set_disable_scale<>( bool disable=, disable:bool=, ):void
void canvas_set_item_mirroring<>( RID canvas=, canvas:RID=, RID item=, item:RID=, Vector2 mirroring=, mirroring:Vector2=, ):void
A copy of the canvas item will be drawn with a local offset of the mirroring.

Note: This is equivalent to calling canvas_set_item_repeat like canvas_set_item_repeat(item, mirroring, 1), with an additional check ensuring canvas is a parent of item.
void canvas_set_item_repeat<>( RID item=, item:RID=, Vector2 repeat_size=, repeat_size:Vector2=, int repeat_times=, repeat_times:int=, ):void
A copy of the canvas item will be drawn with a local offset of the repeat_size by the number of times of the repeat_times. As the repeat_times increases, the copies will spread away from the origin texture.

void canvas_set_modulate<>( RID canvas=, canvas:RID=, Color color=, color:Color=, ):void
Modulates all colors in the given canvas.

void canvas_set_shadow_texture_size<>( int size=, size:int=, ):void
Sets the [member ProjectSettings.rendering/2d/shadow_atlas/size] to use for Light2D shadow rendering (in pixels). The value is rounded up to the nearest power of 2.

RID canvas_texture_create<>():RID
Creates a canvas texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_texture_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method. See also texture_2d_create.
Note: The equivalent resource is CanvasTexture and is only meant to be used in 2D rendering, not 3D.
void canvas_texture_set_channel<>( RID canvas_texture=, canvas_texture:RID=, int channel=, channel:int=, RID texture=, texture:RID=, ):void
Sets the channel's texture for the canvas texture specified by the canvas_texture RID. Equivalent to [member CanvasTexture.diffuse_texture], [member CanvasTexture.normal_texture] and [member CanvasTexture.specular_texture].

void canvas_texture_set_shading_parameters<>( RID canvas_texture=, canvas_texture:RID=, Color base_color=, base_color:Color=, float shininess=, shininess:float=, ):void
Sets the base_color and shininess to use for the canvas texture specified by the canvas_texture RID. Equivalent to [member CanvasTexture.specular_color] and [member CanvasTexture.specular_shininess].

void canvas_texture_set_texture_filter<>( RID canvas_texture=, canvas_texture:RID=, int filter=, filter:int=, ):void
Sets the texture filter mode to use for the canvas texture specified by the canvas_texture RID.

void canvas_texture_set_texture_repeat<>( RID canvas_texture=, canvas_texture:RID=, int repeat=, repeat:int=, ):void
Sets the texture repeat mode to use for the canvas texture specified by the canvas_texture RID.

RID compositor_create<>():RID
Creates a new compositor and adds it to the RenderingServer. It can be accessed with the RID that is returned.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
RID compositor_effect_create<>():RID
Creates a new rendering effect and adds it to the RenderingServer. It can be accessed with the RID that is returned.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
void compositor_effect_set_callback<>( RID effect=, effect:RID=, int callback_type=, callback_type:int=, Callable callback=, callback:Callable=, ):void
Sets the callback type (callback_type) and callback method(callback) for this rendering effect.

void compositor_effect_set_enabled<>( RID effect=, effect:RID=, bool enabled=, enabled:bool=, ):void
Enables/disables this rendering effect.

void compositor_effect_set_flag<>( RID effect=, effect:RID=, int flag=, flag:int=, bool set=, set:bool=, ):void
Sets the flag (flag) for this rendering effect to true or false (set).

void compositor_set_compositor_effects<>( RID compositor=, compositor:RID=, RID[] effects=, effects:RID[]=, ):void
Sets the compositor effects for the specified compositor RID. effects should be an array containing RIDs created with compositor_effect_create.

RenderingDevice create_local_rendering_device<>():RenderingDevice
Creates a RenderingDevice that can be used to do draw and compute operations on a separate thread. Cannot draw to the screen nor share data with the global RenderingDevice.

Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns null.
Rect2 debug_canvas_item_get_rect<>( RID item=, item:RID=, ):Rect2
Returns the bounding rectangle for a canvas item in local space, as calculated by the renderer. This bound is used internally for culling.

Warning: This function is intended for debugging in the editor, and will pass through and return a zero Rect2 in exported projects.
RID decal_create<>():RID
Creates a decal and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all decal_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
To place in a scene, attach this decal to an instance using instance_set_base using the returned RID.
Note: The equivalent node is Decal.
void decal_set_albedo_mix<>( RID decal=, decal:RID=, float albedo_mix=, albedo_mix:float=, ):void
Sets the albedo_mix in the decal specified by the decal RID. Equivalent to [member Decal.albedo_mix].

void decal_set_cull_mask<>( RID decal=, decal:RID=, int mask=, mask:int=, ):void
Sets the cull mask in the decal specified by the decal RID. Equivalent to [member Decal.cull_mask].

void decal_set_distance_fade<>( RID decal=, decal:RID=, bool enabled=, enabled:bool=, float begin=, begin:float=, float length=, length:float=, ):void
Sets the distance fade parameters in the decal specified by the decal RID. Equivalent to [member Decal.distance_fade_enabled], [member Decal.distance_fade_begin] and [member Decal.distance_fade_length].

void decal_set_emission_energy<>( RID decal=, decal:RID=, float energy=, energy:float=, ):void
Sets the emission energy in the decal specified by the decal RID. Equivalent to [member Decal.emission_energy].

void decal_set_fade<>( RID decal=, decal:RID=, float above=, above:float=, float below=, below:float=, ):void
Sets the upper fade (above) and lower fade (below) in the decal specified by the decal RID. Equivalent to [member Decal.upper_fade] and [member Decal.lower_fade].

void decal_set_modulate<>( RID decal=, decal:RID=, Color color=, color:Color=, ):void
Sets the color multiplier in the decal specified by the decal RID to color. Equivalent to [member Decal.modulate].

void decal_set_normal_fade<>( RID decal=, decal:RID=, float fade=, fade:float=, ):void
Sets the normal fade in the decal specified by the decal RID. Equivalent to [member Decal.normal_fade].

void decal_set_size<>( RID decal=, decal:RID=, Vector3 size=, size:Vector3=, ):void
Sets the size of the decal specified by the decal RID. Equivalent to [member Decal.size].

void decal_set_texture<>( RID decal=, decal:RID=, int type=, type:int=, RID texture=, texture:RID=, ):void
Sets the texture in the given texture type slot for the specified decal. Equivalent to [method Decal.set_texture].

void decals_set_filter<>( int filter=, filter:int=, ):void
Sets the texture filter mode to use when rendering decals. This parameter is global and cannot be set on a per-decal basis.

RID directional_light_create<>():RID
Creates a directional light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
To place in a scene, attach this directional light to an instance using instance_set_base using the returned RID.
Note: The equivalent node is DirectionalLight3D.
void directional_shadow_atlas_set_size<>( int size=, size:int=, bool is_16bits=, is_16bits:bool=, ):void
Sets the size of the directional light shadows in 3D. See also [member ProjectSettings.rendering/lights_and_shadows/directional_shadow/size]. This parameter is global and cannot be set on a per-viewport basis.

void directional_soft_shadow_filter_set_quality<>( int quality=, quality:int=, ):void
Sets the filter quality for directional light shadows in 3D. See also [member ProjectSettings.rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality]. This parameter is global and cannot be set on a per-viewport basis.

Image environment_bake_panorama<>( RID environment=, environment:RID=, bool bake_irradiance=, bake_irradiance:bool=, Vector2i size=, size:Vector2i=, ):Image
Generates and returns an Image containing the radiance map for the specified environment RID's sky. This supports built-in sky material and custom sky shaders. If bake_irradiance is true, the irradiance map is saved instead of the radiance map. The radiance map is used to render reflected light, while the irradiance map is used to render ambient light. See also sky_bake_panorama.

Note: The image is saved using linear encoding without any tonemapping performed, which means it will look too dark if viewed directly in an image editor.
Note: size should be a 2:1 aspect ratio for the generated panorama to have square pixels. For radiance maps, there is no point in using a height greater than [member Sky.radiance_size], as it won't increase detail. Irradiance maps only contain low-frequency data, so there is usually no point in going past a size of 128×64 pixels when saving an irradiance map.
RID environment_create<>():RID
Creates an environment and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all environment_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent resource is Environment.
void environment_glow_set_use_bicubic_upscale<>( bool enable=, enable:bool=, ):void
If enable is true, enables bicubic upscaling for glow which improves quality at the cost of performance. Equivalent to [member ProjectSettings.rendering/environment/glow/upscale_mode].

Note: This setting is only effective when using the Forward+ or Mobile rendering methods, as Compatibility uses a different glow implementation.
void environment_set_adjustment<>( RID env=, env:RID=, bool enable=, enable:bool=, float brightness=, brightness:float=, float contrast=, contrast:float=, float saturation=, saturation:float=, bool use_1d_color_correction=, use_1d_color_correction:bool=, RID color_correction=, color_correction:RID=, ):void
Sets the values to be used with the "adjustments" post-process effect. See Environment for more details.

void environment_set_ambient_light<>( RID env=, env:RID=, Color color=, color:Color=, int ambient=0, ambient:int=0, float energy=1.0, energy:float=1.0, float sky_contribution=0.0, sky_contribution:float=0.0, int reflection_source=0, reflection_source:int=0, ):void
Sets the values to be used for ambient light rendering. See Environment for more details.

void environment_set_background<>( RID env=, env:RID=, int bg=, bg:int=, ):void
Sets the environment's background mode. Equivalent to [member Environment.background_mode].

void environment_set_bg_color<>( RID env=, env:RID=, Color color=, color:Color=, ):void
Color displayed for clear areas of the scene. Only effective if using the ENV_BG_COLOR background mode.

void environment_set_bg_energy<>( RID env=, env:RID=, float multiplier=, multiplier:float=, float exposure_value=, exposure_value:float=, ):void
Sets the intensity of the background color.

void environment_set_camera_id<>( RID env=, env:RID=, int id=, id:int=, ):void
Sets the camera ID to be used as environment background.

void environment_set_canvas_max_layer<>( RID env=, env:RID=, int max_layer=, max_layer:int=, ):void
Sets the maximum layer to use if using Canvas background mode.

void environment_set_fog<>( RID env=, env:RID=, bool enable=, enable:bool=, Color light_color=, light_color:Color=, float light_energy=, light_energy:float=, float sun_scatter=, sun_scatter:float=, float density=, density:float=, float height=, height:float=, float height_density=, height_density:float=, float aerial_perspective=, aerial_perspective:float=, float sky_affect=, sky_affect:float=, int fog_mode=0, fog_mode:int=0, ):void
Configures fog for the specified environment RID. See fog_* properties in Environment for more information.

void environment_set_fog_depth<>( RID env=, env:RID=, float curve=, curve:float=, float begin=, begin:float=, float end=, end:float=, ):void
Configures fog depth for the specified environment RID. Only has an effect when the fog mode of the environment is ENV_FOG_MODE_DEPTH. See fog_depth_* properties in Environment for more information.

void environment_set_glow<>( RID env=, env:RID=, bool enable=, enable:bool=, PackedFloat32Array levels=, levels:PackedFloat32Array=, float intensity=, intensity:float=, float strength=, strength:float=, float mix=, mix:float=, float bloom_threshold=, bloom_threshold:float=, int blend_mode=, blend_mode:int=, float hdr_bleed_threshold=, hdr_bleed_threshold:float=, float hdr_bleed_scale=, hdr_bleed_scale:float=, float hdr_luminance_cap=, hdr_luminance_cap:float=, float glow_map_strength=, glow_map_strength:float=, RID glow_map=, glow_map:RID=, ):void
Configures glow for the specified environment RID. See glow_* properties in Environment for more information.

void environment_set_sdfgi<>( RID env=, env:RID=, bool enable=, enable:bool=, int cascades=, cascades:int=, float min_cell_size=, min_cell_size:float=, int y_scale=, y_scale:int=, bool use_occlusion=, use_occlusion:bool=, float bounce_feedback=, bounce_feedback:float=, bool read_sky=, read_sky:bool=, float energy=, energy:float=, float normal_bias=, normal_bias:float=, float probe_bias=, probe_bias:float=, ):void
Configures signed distance field global illumination for the specified environment RID. See sdfgi_* properties in Environment for more information.

void environment_set_sdfgi_frames_to_converge<>( int frames=, frames:int=, ):void
Sets the number of frames to use for converging signed distance field global illumination. Equivalent to [member ProjectSettings.rendering/global_illumination/sdfgi/frames_to_converge].

void environment_set_sdfgi_frames_to_update_light<>( int frames=, frames:int=, ):void
Sets the update speed for dynamic lights' indirect lighting when computing signed distance field global illumination. Equivalent to [member ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights].

void environment_set_sdfgi_ray_count<>( int ray_count=, ray_count:int=, ):void
Sets the number of rays to throw per frame when computing signed distance field global illumination. Equivalent to [member ProjectSettings.rendering/global_illumination/sdfgi/probe_ray_count].

void environment_set_sky<>( RID env=, env:RID=, RID sky=, sky:RID=, ):void
Sets the Sky to be used as the environment's background when using BGMode sky. Equivalent to [member Environment.sky].

void environment_set_sky_custom_fov<>( RID env=, env:RID=, float scale=, scale:float=, ):void
Sets a custom field of view for the background Sky. Equivalent to [member Environment.sky_custom_fov].

void environment_set_sky_orientation<>( RID env=, env:RID=, Basis orientation=, orientation:Basis=, ):void
Sets the rotation of the background Sky expressed as a Basis. Equivalent to [member Environment.sky_rotation], where the rotation vector is used to construct the Basis.

void environment_set_ssao<>( RID env=, env:RID=, bool enable=, enable:bool=, float radius=, radius:float=, float intensity=, intensity:float=, float power=, power:float=, float detail=, detail:float=, float horizon=, horizon:float=, float sharpness=, sharpness:float=, float light_affect=, light_affect:float=, float ao_channel_affect=, ao_channel_affect:float=, ):void
Sets the variables to be used with the screen-space ambient occlusion (SSAO) post-process effect. See Environment for more details.

void environment_set_ssao_quality<>( int quality=, quality:int=, bool half_size=, half_size:bool=, float adaptive_target=, adaptive_target:float=, int blur_passes=, blur_passes:int=, float fadeout_from=, fadeout_from:float=, float fadeout_to=, fadeout_to:float=, ):void
Sets the quality level of the screen-space ambient occlusion (SSAO) post-process effect. See Environment for more details.

void environment_set_ssil_quality<>( int quality=, quality:int=, bool half_size=, half_size:bool=, float adaptive_target=, adaptive_target:float=, int blur_passes=, blur_passes:int=, float fadeout_from=, fadeout_from:float=, float fadeout_to=, fadeout_to:float=, ):void
Sets the quality level of the screen-space indirect lighting (SSIL) post-process effect. See Environment for more details.

void environment_set_ssr<>( RID env=, env:RID=, bool enable=, enable:bool=, int max_steps=, max_steps:int=, float fade_in=, fade_in:float=, float fade_out=, fade_out:float=, float depth_tolerance=, depth_tolerance:float=, ):void
Sets the variables to be used with the screen-space reflections (SSR) post-process effect. See Environment for more details.

void environment_set_ssr_half_size<>( bool half_size=, half_size:bool=, ):void
Sets whether screen-space reflections will be rendered at full or half size. Half size is faster, but may look pixelated or cause flickering.

void environment_set_ssr_roughness_quality<>( int quality=, quality:int=, ):void
void environment_set_tonemap<>( RID env=, env:RID=, int tone_mapper=, tone_mapper:int=, float exposure=, exposure:float=, float white=, white:float=, ):void
Sets the variables to be used with the "tonemap" post-process effect. See Environment for more details.

void environment_set_volumetric_fog<>( RID env=, env:RID=, bool enable=, enable:bool=, float density=, density:float=, Color albedo=, albedo:Color=, Color emission=, emission:Color=, float emission_energy=, emission_energy:float=, float anisotropy=, anisotropy:float=, float length=, length:float=, float p_detail_spread=, p_detail_spread:float=, float gi_inject=, gi_inject:float=, bool temporal_reprojection=, temporal_reprojection:bool=, float temporal_reprojection_amount=, temporal_reprojection_amount:float=, float ambient_inject=, ambient_inject:float=, float sky_affect=, sky_affect:float=, ):void
Sets the variables to be used with the volumetric fog post-process effect. See Environment for more details.

void environment_set_volumetric_fog_filter_active<>( bool active=, active:bool=, ):void
Enables filtering of the volumetric fog scattering buffer. This results in much smoother volumes with very few under-sampling artifacts.

void environment_set_volumetric_fog_volume_size<>( int size=, size:int=, int depth=, depth:int=, ):void
Sets the resolution of the volumetric fog's froxel buffer. size is modified by the screen's aspect ratio and then used to set the width and height of the buffer. While depth is directly used to set the depth of the buffer.

RID fog_volume_create<>():RID
Creates a new fog volume and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all fog_volume_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent node is FogVolume.
void fog_volume_set_material<>( RID fog_volume=, fog_volume:RID=, RID material=, material:RID=, ):void
Sets the Material of the fog volume. Can be either a FogMaterial or a custom ShaderMaterial.

void fog_volume_set_shape<>( RID fog_volume=, fog_volume:RID=, int shape=, shape:int=, ):void
Sets the shape of the fog volume to either [constant RenderingServer.FOG_VOLUME_SHAPE_ELLIPSOID], [constant RenderingServer.FOG_VOLUME_SHAPE_CONE], [constant RenderingServer.FOG_VOLUME_SHAPE_CYLINDER], [constant RenderingServer.FOG_VOLUME_SHAPE_BOX] or [constant RenderingServer.FOG_VOLUME_SHAPE_WORLD].

void fog_volume_set_size<>( RID fog_volume=, fog_volume:RID=, Vector3 size=, size:Vector3=, ):void
Sets the size of the fog volume when shape is [constant RenderingServer.FOG_VOLUME_SHAPE_ELLIPSOID], [constant RenderingServer.FOG_VOLUME_SHAPE_CONE], [constant RenderingServer.FOG_VOLUME_SHAPE_CYLINDER] or [constant RenderingServer.FOG_VOLUME_SHAPE_BOX].

void force_draw<>( bool swap_buffers=true, swap_buffers:bool=true, float frame_step=0.0, frame_step:float=0.0, ):void
Forces redrawing of all viewports at once. Must be called from the main thread.

void force_sync<>():void
Forces a synchronization between the CPU and GPU, which may be required in certain cases. Only call this when needed, as CPU-GPU synchronization has a performance cost.

void free_rid<>( RID rid=, rid:RID=, ):void
Tries to free an object in the RenderingServer. To avoid memory leaks, this should be called after using an object as memory management does not occur automatically when using RenderingServer directly.

String get_current_rendering_driver_name<>():String
Returns the name of the current rendering driver. This can be vulkan, d3d12, metal, opengl3, opengl3_es, or opengl3_angle. See also get_current_rendering_method.

When [member ProjectSettings.rendering/renderer/rendering_method] is forward_plus or mobile, the rendering driver is determined by [member ProjectSettings.rendering/rendering_device/driver].
When [member ProjectSettings.rendering/renderer/rendering_method] is gl_compatibility, the rendering driver is determined by [member ProjectSettings.rendering/gl_compatibility/driver].
The rendering driver is also determined by the --rendering-driver command line argument that overrides this project setting, or an automatic fallback that is applied depending on the hardware.
String get_current_rendering_method<>():String
Returns the name of the current rendering method. This can be forward_plus, mobile, or gl_compatibility. See also get_current_rendering_driver_name.

The rendering method is determined by [member ProjectSettings.rendering/renderer/rendering_method], the --rendering-method command line argument that overrides this project setting, or an automatic fallback that is applied depending on the hardware.
Color get_default_clear_color<>():Color
Returns the default clear color which is used when a specific clear color has not been selected. See also set_default_clear_color.

float get_frame_setup_time_cpu<>():float
Returns the time taken to setup rendering on the CPU in milliseconds. This value is shared across all viewports and does not require viewport_set_measure_render_time to be enabled on a viewport to be queried. See also viewport_get_measured_render_time_cpu.

RenderingDevice get_rendering_device<>():RenderingDevice
Returns the global RenderingDevice.

Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns null.
int get_rendering_info<>( int info=, info:int=, ):int
Returns a statistic about the rendering engine which can be used for performance profiling. See also viewport_get_render_info, which returns information specific to a viewport.

Note: Only 3D rendering is currently taken into account by some of these values, such as the number of draw calls.
Note: Rendering information is not available until at least 2 frames have been rendered by the engine. If rendering information is not available, get_rendering_info returns 0. To print rendering information in _ready() successfully, use the following:
func _ready(): for _i in 2: await get_tree().process_frame print(RenderingServer.get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME))
Dictionary[] get_shader_parameter_list<>( RID shader=, shader:RID=, ):Dictionary[]
Returns the parameters of a shader.

RID get_test_cube<>():RID
Returns the RID of the test cube. This mesh will be created and returned on the first call to get_test_cube, then it will be cached for subsequent calls. See also make_sphere_mesh.

RID get_test_texture<>():RID
Returns the RID of a 256×256 texture with a testing pattern on it (in [constant Image.FORMAT_RGB8] format). This texture will be created and returned on the first call to get_test_texture, then it will be cached for subsequent calls. See also get_white_texture.

Example: Get the test texture and apply it to a Sprite2D node:
var texture_rid = RenderingServer.get_test_texture() var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) $Sprite2D.texture = texture
String get_video_adapter_api_version<>():String
Returns the version of the graphics video adapter currently in use (e.g. "1.2.189" for Vulkan, "3.3.0 NVIDIA 510.60.02" for OpenGL). This version may be different from the actual latest version supported by the hardware, as Godot may not always request the latest version. See also [method OS.get_video_adapter_driver_info].

Note: When running a headless or server binary, this function returns an empty string.
String get_video_adapter_name<>():String
Returns the name of the video adapter (e.g. "GeForce GTX 1080/PCIe/SSE2").

Note: When running a headless or server binary, this function returns an empty string.
Note: On the web platform, some browsers such as Firefox may report a different, fixed GPU name such as "GeForce GTX 980" (regardless of the user's actual GPU model). This is done to make fingerprinting more difficult.
int get_video_adapter_type<>():int
Returns the type of the video adapter. Since dedicated graphics cards from a given generation will usually be significantly faster than integrated graphics made in the same generation, the device type can be used as a basis for automatic graphics settings adjustment. However, this is not always true, so make sure to provide users with a way to manually override graphics settings.

Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns [constant RenderingDevice.DEVICE_TYPE_OTHER].
String get_video_adapter_vendor<>():String
Returns the vendor of the video adapter (e.g. "NVIDIA Corporation").

Note: When running a headless or server binary, this function returns an empty string.
RID get_white_texture<>():RID
Returns the ID of a 4×4 white texture (in [constant Image.FORMAT_RGB8] format). This texture will be created and returned on the first call to get_white_texture, then it will be cached for subsequent calls. See also get_test_texture.

Example: Get the white texture and apply it to a Sprite2D node:
var texture_rid = RenderingServer.get_white_texture() var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) $Sprite2D.texture = texture
void gi_set_use_half_resolution<>( bool half_resolution=, half_resolution:bool=, ):void
If half_resolution is true, renders VoxelGI and SDFGI ([member Environment.sdfgi_enabled]) buffers at halved resolution on each axis (e.g. 960×540 when the viewport size is 1920×1080). This improves performance significantly when VoxelGI or SDFGI is enabled, at the cost of artifacts that may be visible on polygon edges. The loss in quality becomes less noticeable as the viewport resolution increases. LightmapGI rendering is not affected by this setting. Equivalent to [member ProjectSettings.rendering/global_illumination/gi/use_half_resolution].

void global_shader_parameter_add<>( StringName name=, name:StringName=, int type=, type:int=, Variant default_value=, default_value:Variant=, ):void
Creates a new global shader uniform.

Note: Global shader parameter names are case-sensitive.
Variant global_shader_parameter_get<>( StringName name=, name:StringName=, ):Variant
Returns the value of the global shader uniform specified by name.

Note: global_shader_parameter_get has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters.
StringName[] global_shader_parameter_get_list<>():StringName[]
Returns the list of global shader uniform names.

Note: global_shader_parameter_get has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters.
int global_shader_parameter_get_type<>( StringName name=, name:StringName=, ):int
Returns the type associated to the global shader uniform specified by name.

Note: global_shader_parameter_get has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters.
void global_shader_parameter_remove<>( StringName name=, name:StringName=, ):void
Removes the global shader uniform specified by name.

void global_shader_parameter_set<>( StringName name=, name:StringName=, Variant value=, value:Variant=, ):void
Sets the global shader uniform name to value.

void global_shader_parameter_set_override<>( StringName name=, name:StringName=, Variant value=, value:Variant=, ):void
Overrides the global shader uniform name with value. Equivalent to the ShaderGlobalsOverride node.

bool has_changed<>():bool
Returns true if changes have been made to the RenderingServer's data. force_draw is usually called if this happens.

bool has_feature<>( int feature=, feature:int=, ):bool
This method does nothing and always returns false.

bool has_os_feature<>( String feature=, feature:String=, ):bool
Returns true if the OS supports a certain feature. Features might be s3tc, etc, and etc2.

void instance_attach_object_instance_id<>( RID instance=, instance:RID=, int id=, id:int=, ):void
Attaches a unique Object ID to instance. Object ID must be attached to instance for proper culling with instances_cull_aabb, instances_cull_convex, and instances_cull_ray.

void instance_attach_skeleton<>( RID instance=, instance:RID=, RID skeleton=, skeleton:RID=, ):void
Attaches a skeleton to an instance. Removes the previous skeleton from the instance.

RID instance_create<>():RID
Creates a visual instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all instance_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
An instance is a way of placing a 3D object in the scenario. Objects like particles, meshes, reflection probes and decals need to be associated with an instance to be visible in the scenario using instance_set_base.
Note: The equivalent node is VisualInstance3D.
RID instance_create2<>( RID base=, base:RID=, RID scenario=, scenario:RID=, ):RID
Creates a visual instance, adds it to the RenderingServer, and sets both base and scenario. It can be accessed with the RID that is returned. This RID will be used in all instance_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method. This is a shorthand for using instance_create and setting the base and scenario manually.
Variant instance_geometry_get_shader_parameter<>( RID instance=, instance:RID=, StringName parameter=, parameter:StringName=, ):Variant
Returns the value of the per-instance shader uniform from the specified 3D geometry instance. Equivalent to [method GeometryInstance3D.get_instance_shader_parameter].

Note: Per-instance shader parameter names are case-sensitive.
Variant instance_geometry_get_shader_parameter_default_value<>( RID instance=, instance:RID=, StringName parameter=, parameter:StringName=, ):Variant
Returns the default value of the per-instance shader uniform from the specified 3D geometry instance. Equivalent to [method GeometryInstance3D.get_instance_shader_parameter].

Dictionary[] instance_geometry_get_shader_parameter_list<>( RID instance=, instance:RID=, ):Dictionary[]
Returns a dictionary of per-instance shader uniform names of the per-instance shader uniform from the specified 3D geometry instance. The returned dictionary is in PropertyInfo format, with the keys name, class_name, type, hint, hint_string and usage. Equivalent to [method GeometryInstance3D.get_instance_shader_parameter].

void instance_geometry_set_cast_shadows_setting<>( RID instance=, instance:RID=, int shadow_casting_setting=, shadow_casting_setting:int=, ):void
Sets the shadow casting setting. Equivalent to [member GeometryInstance3D.cast_shadow].

void instance_geometry_set_flag<>( RID instance=, instance:RID=, int flag=, flag:int=, bool enabled=, enabled:bool=, ):void
Sets the flag for a given instance to enabled.

void instance_geometry_set_lightmap<>( RID instance=, instance:RID=, RID lightmap=, lightmap:RID=, Rect2 lightmap_uv_scale=, lightmap_uv_scale:Rect2=, int lightmap_slice=, lightmap_slice:int=, ):void
Sets the lightmap GI instance to use for the specified 3D geometry instance. The lightmap UV scale for the specified instance (equivalent to [member GeometryInstance3D.gi_lightmap_scale]) and lightmap atlas slice must also be specified.

void instance_geometry_set_lod_bias<>( RID instance=, instance:RID=, float lod_bias=, lod_bias:float=, ):void
Sets the level of detail bias to use when rendering the specified 3D geometry instance. Higher values result in higher detail from further away. Equivalent to [member GeometryInstance3D.lod_bias].

void instance_geometry_set_material_overlay<>( RID instance=, instance:RID=, RID material=, material:RID=, ):void
Sets a material that will be rendered for all surfaces on top of active materials for the mesh associated with this instance. Equivalent to [member GeometryInstance3D.material_overlay].

void instance_geometry_set_material_override<>( RID instance=, instance:RID=, RID material=, material:RID=, ):void
Sets a material that will override the material for all surfaces on the mesh associated with this instance. Equivalent to [member GeometryInstance3D.material_override].

void instance_geometry_set_shader_parameter<>( RID instance=, instance:RID=, StringName parameter=, parameter:StringName=, Variant value=, value:Variant=, ):void
Sets the per-instance shader uniform on the specified 3D geometry instance. Equivalent to [method GeometryInstance3D.set_instance_shader_parameter].

void instance_geometry_set_transparency<>( RID instance=, instance:RID=, float transparency=, transparency:float=, ):void
Sets the transparency for the given geometry instance. Equivalent to [member GeometryInstance3D.transparency].

A transparency of 0.0 is fully opaque, while 1.0 is fully transparent. Values greater than 0.0 (exclusive) will force the geometry's materials to go through the transparent pipeline, which is slower to render and can exhibit rendering issues due to incorrect transparency sorting. However, unlike using a transparent material, setting transparency to a value greater than 0.0 (exclusive) will not disable shadow rendering.
In spatial shaders, 1.0 - transparency is set as the default value of the ALPHA built-in.
Note: transparency is clamped between 0.0 and 1.0, so this property cannot be used to make transparent materials more opaque than they originally are.
void instance_geometry_set_visibility_range<>( RID instance=, instance:RID=, float min=, min:float=, float max=, max:float=, float min_margin=, min_margin:float=, float max_margin=, max_margin:float=, int fade_mode=, fade_mode:int=, ):void
Sets the visibility range values for the given geometry instance. Equivalent to [member GeometryInstance3D.visibility_range_begin] and related properties.

void instance_set_base<>( RID instance=, instance:RID=, RID base=, base:RID=, ):void
Sets the base of the instance. A base can be any of the 3D objects that are created in the RenderingServer that can be displayed. For example, any of the light types, mesh, multimesh, particle system, reflection probe, decal, lightmap, voxel GI and visibility notifiers are all types that can be set as the base of an instance in order to be displayed in the scenario.

void instance_set_blend_shape_weight<>( RID instance=, instance:RID=, int shape=, shape:int=, float weight=, weight:float=, ):void
Sets the weight for a given blend shape associated with this instance.

void instance_set_custom_aabb<>( RID instance=, instance:RID=, AABB aabb=, aabb:AABB=, ):void
Sets a custom AABB to use when culling objects from the view frustum. Equivalent to setting [member GeometryInstance3D.custom_aabb].

void instance_set_extra_visibility_margin<>( RID instance=, instance:RID=, float margin=, margin:float=, ):void
Sets a margin to increase the size of the AABB when culling objects from the view frustum. This allows you to avoid culling objects that fall outside the view frustum. Equivalent to [member GeometryInstance3D.extra_cull_margin].

void instance_set_ignore_culling<>( RID instance=, instance:RID=, bool enabled=, enabled:bool=, ):void
If true, ignores both frustum and occlusion culling on the specified 3D geometry instance. This is not the same as [member GeometryInstance3D.ignore_occlusion_culling], which only ignores occlusion culling and leaves frustum culling intact.

void instance_set_layer_mask<>( RID instance=, instance:RID=, int mask=, mask:int=, ):void
Sets the render layers that this instance will be drawn to. Equivalent to [member VisualInstance3D.layers].

void instance_set_pivot_data<>( RID instance=, instance:RID=, float sorting_offset=, sorting_offset:float=, bool use_aabb_center=, use_aabb_center:bool=, ):void
Sets the sorting offset and switches between using the bounding box or instance origin for depth sorting.

void instance_set_scenario<>( RID instance=, instance:RID=, RID scenario=, scenario:RID=, ):void
Sets the scenario that the instance is in. The scenario is the 3D world that the objects will be displayed in.

void instance_set_surface_override_material<>( RID instance=, instance:RID=, int surface=, surface:int=, RID material=, material:RID=, ):void
Sets the override material of a specific surface. Equivalent to [method MeshInstance3D.set_surface_override_material].

void instance_set_transform<>( RID instance=, instance:RID=, Transform3D transform=, transform:Transform3D=, ):void
Sets the world space transform of the instance. Equivalent to [member Node3D.global_transform].

void instance_set_visibility_parent<>( RID instance=, instance:RID=, RID parent=, parent:RID=, ):void
Sets the visibility parent for the given instance. Equivalent to [member Node3D.visibility_parent].

void instance_set_visible<>( RID instance=, instance:RID=, bool visible=, visible:bool=, ):void
Sets whether an instance is drawn or not. Equivalent to [member Node3D.visible].

void instance_teleport<>( RID instance=, instance:RID=, ):void
Resets motion vectors and other interpolated values. Use this after teleporting a mesh from one position to another to avoid ghosting artifacts.

PackedInt64Array instances_cull_aabb<>( AABB aabb=, aabb:AABB=, RID scenario=RID(), scenario:RID=RID(), ):PackedInt64Array
Returns an array of object IDs intersecting with the provided AABB. Only 3D nodes that inherit from VisualInstance3D are considered, such as MeshInstance3D or DirectionalLight3D. Use [method @GlobalScope.instance_from_id] to obtain the actual nodes. A scenario RID must be provided, which is available in the World3D you want to query. This forces an update for all resources queued to update.

Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision.
PackedInt64Array instances_cull_convex<>( Plane[] convex=, convex:Plane[]=, RID scenario=RID(), scenario:RID=RID(), ):PackedInt64Array
Returns an array of object IDs intersecting with the provided convex shape. Only 3D nodes that inherit from VisualInstance3D are considered, such as MeshInstance3D or DirectionalLight3D. Use [method @GlobalScope.instance_from_id] to obtain the actual nodes. A scenario RID must be provided, which is available in the World3D you want to query. This forces an update for all resources queued to update.

Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision.
PackedInt64Array instances_cull_ray<>( Vector3 from=, from:Vector3=, Vector3 to=, to:Vector3=, RID scenario=RID(), scenario:RID=RID(), ):PackedInt64Array
Returns an array of object IDs intersecting with the provided 3D ray. Only 3D nodes that inherit from VisualInstance3D are considered, such as MeshInstance3D or DirectionalLight3D. Use [method @GlobalScope.instance_from_id] to obtain the actual nodes. A scenario RID must be provided, which is available in the World3D you want to query. This forces an update for all resources queued to update.

Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision.
bool is_on_render_thread<>():bool
Returns true if our code is currently executing on the rendering thread.

void light_directional_set_blend_splits<>( RID light=, light:RID=, bool enable=, enable:bool=, ):void
If true, this directional light will blend between shadow map splits resulting in a smoother transition between them. Equivalent to [member DirectionalLight3D.directional_shadow_blend_splits].

void light_directional_set_shadow_mode<>( RID light=, light:RID=, int mode=, mode:int=, ):void
Sets the shadow mode for this directional light. Equivalent to [member DirectionalLight3D.directional_shadow_mode].

void light_directional_set_sky_mode<>( RID light=, light:RID=, int mode=, mode:int=, ):void
If true, this light will not be used for anything except sky shaders. Use this for lights that impact your sky shader that you may want to hide from affecting the rest of the scene. For example, you may want to enable this when the sun in your sky shader falls below the horizon.

void light_omni_set_shadow_mode<>( RID light=, light:RID=, int mode=, mode:int=, ):void
Sets whether to use a dual paraboloid or a cubemap for the shadow map. Dual paraboloid is faster but may suffer from artifacts. Equivalent to [member OmniLight3D.omni_shadow_mode].

void light_projectors_set_filter<>( int filter=, filter:int=, ):void
Sets the texture filter mode to use when rendering light projectors. This parameter is global and cannot be set on a per-light basis.

void light_set_bake_mode<>( RID light=, light:RID=, int bake_mode=, bake_mode:int=, ):void
Sets the bake mode to use for the specified 3D light. Equivalent to [member Light3D.light_bake_mode].

void light_set_color<>( RID light=, light:RID=, Color color=, color:Color=, ):void
Sets the color of the light. Equivalent to [member Light3D.light_color].

void light_set_cull_mask<>( RID light=, light:RID=, int mask=, mask:int=, ):void
Sets the cull mask for this 3D light. Lights only affect objects in the selected layers. Equivalent to [member Light3D.light_cull_mask].

void light_set_distance_fade<>( RID decal=, decal:RID=, bool enabled=, enabled:bool=, float begin=, begin:float=, float shadow=, shadow:float=, float length=, length:float=, ):void
Sets the distance fade for this 3D light. This acts as a form of level of detail (LOD) and can be used to improve performance. Equivalent to [member Light3D.distance_fade_enabled], [member Light3D.distance_fade_begin], [member Light3D.distance_fade_shadow], and [member Light3D.distance_fade_length].

void light_set_max_sdfgi_cascade<>( RID light=, light:RID=, int cascade=, cascade:int=, ):void
Sets the maximum SDFGI cascade in which the 3D light's indirect lighting is rendered. Higher values allow the light to be rendered in SDFGI further away from the camera.

void light_set_negative<>( RID light=, light:RID=, bool enable=, enable:bool=, ):void
If true, the 3D light will subtract light instead of adding light. Equivalent to [member Light3D.light_negative].

void light_set_param<>( RID light=, light:RID=, int param=, param:int=, float value=, value:float=, ):void
Sets the specified 3D light parameter. Equivalent to [method Light3D.set_param].

void light_set_projector<>( RID light=, light:RID=, RID texture=, texture:RID=, ):void
Sets the projector texture to use for the specified 3D light. Equivalent to [member Light3D.light_projector].

void light_set_reverse_cull_face_mode<>( RID light=, light:RID=, bool enabled=, enabled:bool=, ):void
If true, reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with instance_geometry_set_cast_shadows_setting. Equivalent to [member Light3D.shadow_reverse_cull_face].

void light_set_shadow<>( RID light=, light:RID=, bool enabled=, enabled:bool=, ):void
If true, light will cast shadows. Equivalent to [member Light3D.shadow_enabled].

void light_set_shadow_caster_mask<>( RID light=, light:RID=, int mask=, mask:int=, ):void
Sets the shadow caster mask for this 3D light. Shadows will only be cast using objects in the selected layers. Equivalent to [member Light3D.shadow_caster_mask].

RID lightmap_create<>():RID
Creates a new lightmap global illumination instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all lightmap_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent node is LightmapGI.
PackedInt32Array lightmap_get_probe_capture_bsp_tree<>( RID lightmap=, lightmap:RID=, ):PackedInt32Array
PackedVector3Array lightmap_get_probe_capture_points<>( RID lightmap=, lightmap:RID=, ):PackedVector3Array
PackedColorArray lightmap_get_probe_capture_sh<>( RID lightmap=, lightmap:RID=, ):PackedColorArray
PackedInt32Array lightmap_get_probe_capture_tetrahedra<>( RID lightmap=, lightmap:RID=, ):PackedInt32Array
void lightmap_set_baked_exposure_normalization<>( RID lightmap=, lightmap:RID=, float baked_exposure=, baked_exposure:float=, ):void
Used to inform the renderer what exposure normalization value was used while baking the lightmap. This value will be used and modulated at run time to ensure that the lightmap maintains a consistent level of exposure even if the scene-wide exposure normalization is changed at run time. For more information see camera_attributes_set_exposure.

void lightmap_set_probe_bounds<>( RID lightmap=, lightmap:RID=, AABB bounds=, bounds:AABB=, ):void
void lightmap_set_probe_capture_data<>( RID lightmap=, lightmap:RID=, PackedVector3Array points=, points:PackedVector3Array=, PackedColorArray point_sh=, point_sh:PackedColorArray=, PackedInt32Array tetrahedra=, tetrahedra:PackedInt32Array=, PackedInt32Array bsp_tree=, bsp_tree:PackedInt32Array=, ):void
void lightmap_set_probe_capture_update_speed<>( float speed=, speed:float=, ):void
void lightmap_set_probe_interior<>( RID lightmap=, lightmap:RID=, bool interior=, interior:bool=, ):void
void lightmap_set_textures<>( RID lightmap=, lightmap:RID=, RID light=, light:RID=, bool uses_sh=, uses_sh:bool=, ):void
Set the textures on the given lightmap GI instance to the texture array pointed to by the light RID. If the lightmap texture was baked with [member LightmapGI.directional] set to true, then uses_sh must also be true.

void lightmaps_set_bicubic_filter<>( bool enable=, enable:bool=, ):void
Toggles whether a bicubic filter should be used when lightmaps are sampled. This smoothens their appearance at a performance cost.

RID make_sphere_mesh<>( int latitudes=, latitudes:int=, int longitudes=, longitudes:int=, float radius=, radius:float=, ):RID
Returns a mesh of a sphere with the given number of horizontal subdivisions, vertical subdivisions and radius. See also get_test_cube.

RID material_create<>():RID
Creates an empty material and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all material_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent resource is Material.
Variant material_get_param<>( RID material=, material:RID=, StringName parameter=, parameter:StringName=, ):Variant
Returns the value of a certain material's parameter.

void material_set_next_pass<>( RID material=, material:RID=, RID next_material=, next_material:RID=, ):void
Sets an object's next material.

void material_set_param<>( RID material=, material:RID=, StringName parameter=, parameter:StringName=, Variant value=, value:Variant=, ):void
Sets a material's parameter.

void material_set_render_priority<>( RID material=, material:RID=, int priority=, priority:int=, ):void
Sets a material's render priority.

void material_set_shader<>( RID shader_material=, shader_material:RID=, RID shader=, shader:RID=, ):void
Sets a shader material's shader.

void material_set_use_debanding<>( bool enable=, enable:bool=, ):void
When using the Mobile renderer, material_set_use_debanding can be used to enable or disable the debanding feature of 3D materials (BaseMaterial3D and ShaderMaterial).

material_set_use_debanding has no effect when using the Compatibility or Forward+ renderer. In Forward+, Viewport debanding can be used instead.
See also [member ProjectSettings.rendering/anti_aliasing/quality/use_debanding] and [method RenderingServer.viewport_set_use_debanding].
void mesh_add_surface<>( RID mesh=, mesh:RID=, Dictionary surface=, surface:Dictionary=, ):void
void mesh_add_surface_from_arrays<>( RID mesh=, mesh:RID=, int primitive=, primitive:int=, Array arrays=, arrays:Array=, Array blend_shapes=[], blend_shapes:Array=[], Dictionary lods={}, lods:Dictionary={}, int compress_format=0, compress_format:int=0, ):void
void mesh_clear<>( RID mesh=, mesh:RID=, ):void
Removes all surfaces from a mesh.

RID mesh_create<>():RID
Creates a new mesh and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all mesh_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
To place in a scene, attach this mesh to an instance using instance_set_base using the returned RID.
Note: The equivalent resource is Mesh.
RID mesh_create_from_surfaces<>( Dictionary[] surfaces=, surfaces:Dictionary[]=, int blend_shape_count=0, blend_shape_count:int=0, ):RID
int mesh_get_blend_shape_count<>( RID mesh=, mesh:RID=, ):int
Returns a mesh's blend shape count.

int mesh_get_blend_shape_mode<>( RID mesh=, mesh:RID=, ):int
Returns a mesh's blend shape mode.

AABB mesh_get_custom_aabb<>( RID mesh=, mesh:RID=, ):AABB
Returns a mesh's custom aabb.

Dictionary mesh_get_surface<>( RID mesh=, mesh:RID=, int surface=, surface:int=, ):Dictionary
int mesh_get_surface_count<>( RID mesh=, mesh:RID=, ):int
Returns a mesh's number of surfaces.

void mesh_set_blend_shape_mode<>( RID mesh=, mesh:RID=, int mode=, mode:int=, ):void
Sets a mesh's blend shape mode.

void mesh_set_custom_aabb<>( RID mesh=, mesh:RID=, AABB aabb=, aabb:AABB=, ):void
Sets a mesh's custom aabb.

void mesh_set_shadow_mesh<>( RID mesh=, mesh:RID=, RID shadow_mesh=, shadow_mesh:RID=, ):void
Array mesh_surface_get_arrays<>( RID mesh=, mesh:RID=, int surface=, surface:int=, ):Array
Returns a mesh's surface's buffer arrays.

Array[] mesh_surface_get_blend_shape_arrays<>( RID mesh=, mesh:RID=, int surface=, surface:int=, ):Array[]
Returns a mesh's surface's arrays for blend shapes.

int mesh_surface_get_format_attribute_stride<>( int format=, format:int=, int vertex_count=, vertex_count:int=, ):int
Returns the stride of the attribute buffer for a mesh with given format.

int mesh_surface_get_format_index_stride<>( int format=, format:int=, int vertex_count=, vertex_count:int=, ):int
Returns the stride of the index buffer for a mesh with the given format.

int mesh_surface_get_format_normal_tangent_stride<>( int format=, format:int=, int vertex_count=, vertex_count:int=, ):int
Returns the stride of the combined normals and tangents for a mesh with given format. Note importantly that, while normals and tangents are in the vertex buffer with vertices, they are only interleaved with each other and so have a different stride than vertex positions.

int mesh_surface_get_format_offset<>( int format=, format:int=, int vertex_count=, vertex_count:int=, int array_index=, array_index:int=, ):int
Returns the offset of a given attribute by array_index in the start of its respective buffer.

int mesh_surface_get_format_skin_stride<>( int format=, format:int=, int vertex_count=, vertex_count:int=, ):int
Returns the stride of the skin buffer for a mesh with given format.

int mesh_surface_get_format_vertex_stride<>( int format=, format:int=, int vertex_count=, vertex_count:int=, ):int
Returns the stride of the vertex positions for a mesh with given format. Note importantly that vertex positions are stored consecutively and are not interleaved with the other attributes in the vertex buffer (normals and tangents).

RID mesh_surface_get_material<>( RID mesh=, mesh:RID=, int surface=, surface:int=, ):RID
Returns a mesh's surface's material.

void mesh_surface_remove<>( RID mesh=, mesh:RID=, int surface=, surface:int=, ):void
Removes the surface at the given index from the Mesh, shifting surfaces with higher index down by one.

void mesh_surface_set_material<>( RID mesh=, mesh:RID=, int surface=, surface:int=, RID material=, material:RID=, ):void
Sets a mesh's surface's material.

void mesh_surface_update_attribute_region<>( RID mesh=, mesh:RID=, int surface=, surface:int=, int offset=, offset:int=, PackedByteArray data=, data:PackedByteArray=, ):void
void mesh_surface_update_index_region<>( RID mesh=, mesh:RID=, int surface=, surface:int=, int offset=, offset:int=, PackedByteArray data=, data:PackedByteArray=, ):void
Updates the index buffer of the mesh surface with the given data. The expected data are 16 or 32-bit unsigned integers, which can be determined with mesh_surface_get_format_index_stride.

void mesh_surface_update_skin_region<>( RID mesh=, mesh:RID=, int surface=, surface:int=, int offset=, offset:int=, PackedByteArray data=, data:PackedByteArray=, ):void
void mesh_surface_update_vertex_region<>( RID mesh=, mesh:RID=, int surface=, surface:int=, int offset=, offset:int=, PackedByteArray data=, data:PackedByteArray=, ):void
void multimesh_allocate_data<>( RID multimesh=, multimesh:RID=, int instances=, instances:int=, int transform_format=, transform_format:int=, bool color_format=false, color_format:bool=false, bool custom_data_format=false, custom_data_format:bool=false, bool use_indirect=false, use_indirect:bool=false, ):void
RID multimesh_create<>():RID
Creates a new multimesh on the RenderingServer and returns an RID handle. This RID will be used in all multimesh_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
To place in a scene, attach this multimesh to an instance using instance_set_base using the returned RID.
Note: The equivalent resource is MultiMesh.
AABB multimesh_get_aabb<>( RID multimesh=, multimesh:RID=, ):AABB
Calculates and returns the axis-aligned bounding box that encloses all instances within the multimesh.

PackedFloat32Array multimesh_get_buffer<>( RID multimesh=, multimesh:RID=, ):PackedFloat32Array
Returns the MultiMesh data (such as instance transforms, colors, etc.). See multimesh_set_buffer for details on the returned data.

Note: If the buffer is in the engine's internal cache, it will have to be fetched from GPU memory and possibly decompressed. This means multimesh_get_buffer is potentially a slow operation and should be avoided whenever possible.
RID multimesh_get_buffer_rd_rid<>( RID multimesh=, multimesh:RID=, ):RID
Returns the RenderingDevice RID handle of the MultiMesh, which can be used as any other buffer on the Rendering Device.

RID multimesh_get_command_buffer_rd_rid<>( RID multimesh=, multimesh:RID=, ):RID
Returns the RenderingDevice RID handle of the MultiMesh command buffer. This RID is only valid if use_indirect is set to true when allocating data through multimesh_allocate_data. It can be used to directly modify the instance count via buffer.

The data structure is dependent on both how many surfaces the mesh contains and whether it is indexed or not, the buffer has 5 integers in it, with the last unused if the mesh is not indexed.
Each of the values in the buffer correspond to these options:
[codeblock lang=text]
Indexed:
0 - indexCount;
1 - instanceCount;
2 - firstIndex;
3 - vertexOffset;
4 - firstInstance;
Non Indexed:
0 - vertexCount;
1 - instanceCount;
2 - firstVertex;
3 - firstInstance;
4 - unused;
[/codeblock]
AABB multimesh_get_custom_aabb<>( RID multimesh=, multimesh:RID=, ):AABB
Returns the custom AABB defined for this MultiMesh resource.

int multimesh_get_instance_count<>( RID multimesh=, multimesh:RID=, ):int
Returns the number of instances allocated for this multimesh.

RID multimesh_get_mesh<>( RID multimesh=, multimesh:RID=, ):RID
Returns the RID of the mesh that will be used in drawing this multimesh.

int multimesh_get_visible_instances<>( RID multimesh=, multimesh:RID=, ):int
Returns the number of visible instances for this multimesh.

Color multimesh_instance_get_color<>( RID multimesh=, multimesh:RID=, int index=, index:int=, ):Color
Returns the color by which the specified instance will be modulated.

Color multimesh_instance_get_custom_data<>( RID multimesh=, multimesh:RID=, int index=, index:int=, ):Color
Returns the custom data associated with the specified instance.

Transform3D multimesh_instance_get_transform<>( RID multimesh=, multimesh:RID=, int index=, index:int=, ):Transform3D
Returns the Transform3D of the specified instance.

Transform2D multimesh_instance_get_transform_2d<>( RID multimesh=, multimesh:RID=, int index=, index:int=, ):Transform2D
Returns the Transform2D of the specified instance. For use when the multimesh is set to use 2D transforms.

void multimesh_instance_reset_physics_interpolation<>( RID multimesh=, multimesh:RID=, int index=, index:int=, ):void
Prevents physics interpolation for the specified instance during the current physics tick.

This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location.
void multimesh_instance_set_color<>( RID multimesh=, multimesh:RID=, int index=, index:int=, Color color=, color:Color=, ):void
Sets the color by which this instance will be modulated. Equivalent to [method MultiMesh.set_instance_color].

void multimesh_instance_set_custom_data<>( RID multimesh=, multimesh:RID=, int index=, index:int=, Color custom_data=, custom_data:Color=, ):void
Sets the custom data for this instance. Custom data is passed as a Color, but is interpreted as a vec4 in the shader. Equivalent to [method MultiMesh.set_instance_custom_data].

void multimesh_instance_set_transform<>( RID multimesh=, multimesh:RID=, int index=, index:int=, Transform3D transform=, transform:Transform3D=, ):void
Sets the Transform3D for this instance. Equivalent to [method MultiMesh.set_instance_transform].

void multimesh_instance_set_transform_2d<>( RID multimesh=, multimesh:RID=, int index=, index:int=, Transform2D transform=, transform:Transform2D=, ):void
Sets the Transform2D for this instance. For use when multimesh is used in 2D. Equivalent to [method MultiMesh.set_instance_transform_2d].

void multimesh_set_buffer<>( RID multimesh=, multimesh:RID=, PackedFloat32Array buffer=, buffer:PackedFloat32Array=, ):void
Set the entire data to use for drawing the multimesh at once to buffer (such as instance transforms and colors). buffer's size must match the number of instances multiplied by the per-instance data size (which depends on the enabled MultiMesh fields). Otherwise, an error message is printed and nothing is rendered. See also multimesh_get_buffer.

The per-instance data size and expected data order is:
[codeblock lang=text]
2D:
- Position: 8 floats (8 floats for Transform2D)
- Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats for Color)
- Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of custom data)
- Position + Vertex color + Custom data: 16 floats (8 floats for Transform2D, 4 floats for Color, 4 floats of custom data)
3D:
- Position: 12 floats (12 floats for Transform3D)
- Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats for Color)
- Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of custom data)
- Position + Vertex color + Custom data: 20 floats (12 floats for Transform3D, 4 floats for Color, 4 floats of custom data)
[/codeblock]
Instance transforms are in row-major order. Specifically:
- For Transform2D the float-order is: (x.x, y.x, padding_float, origin.x, x.y, y.y, padding_float, origin.y).
- For Transform3D the float-order is: (basis.x.x, basis.y.x, basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, basis.z.z, origin.z).
void multimesh_set_buffer_interpolated<>( RID multimesh=, multimesh:RID=, PackedFloat32Array buffer=, buffer:PackedFloat32Array=, PackedFloat32Array buffer_previous=, buffer_previous:PackedFloat32Array=, ):void
Alternative version of multimesh_set_buffer for use with physics interpolation.

Takes both an array of current data and an array of data for the previous physics tick.
void multimesh_set_custom_aabb<>( RID multimesh=, multimesh:RID=, AABB aabb=, aabb:AABB=, ):void
Sets the custom AABB for this MultiMesh resource.

void multimesh_set_mesh<>( RID multimesh=, multimesh:RID=, RID mesh=, mesh:RID=, ):void
Sets the mesh to be drawn by the multimesh. Equivalent to [member MultiMesh.mesh].

void multimesh_set_physics_interpolated<>( RID multimesh=, multimesh:RID=, bool interpolated=, interpolated:bool=, ):void
Turns on and off physics interpolation for this MultiMesh resource.

void multimesh_set_physics_interpolation_quality<>( RID multimesh=, multimesh:RID=, int quality=, quality:int=, ):void
Sets the physics interpolation quality for the MultiMesh.

A value of MULTIMESH_INTERP_QUALITY_FAST gives fast but low quality interpolation, a value of MULTIMESH_INTERP_QUALITY_HIGH gives slower but higher quality interpolation.
void multimesh_set_visible_instances<>( RID multimesh=, multimesh:RID=, int visible=, visible:int=, ):void
Sets the number of instances visible at a given time. If -1, all instances that have been allocated are drawn. Equivalent to [member MultiMesh.visible_instance_count].

RID occluder_create<>():RID
Creates an occluder instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all occluder_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent resource is Occluder3D (not to be confused with the OccluderInstance3D node).
void occluder_set_mesh<>( RID occluder=, occluder:RID=, PackedVector3Array vertices=, vertices:PackedVector3Array=, PackedInt32Array indices=, indices:PackedInt32Array=, ):void
Sets the mesh data for the given occluder RID, which controls the shape of the occlusion culling that will be performed.

RID omni_light_create<>():RID
Creates a new omni light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
To place in a scene, attach this omni light to an instance using instance_set_base using the returned RID.
Note: The equivalent node is OmniLight3D.
RID particles_collision_create<>():RID
Creates a new 3D GPU particle collision or attractor and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most particles_collision_* RenderingServer functions.

Note: The equivalent nodes are GPUParticlesCollision3D and GPUParticlesAttractor3D.
void particles_collision_height_field_update<>( RID particles_collision=, particles_collision:RID=, ):void
Requests an update for the 3D GPU particle collision heightfield. This may be automatically called by the 3D GPU particle collision heightfield depending on its [member GPUParticlesCollisionHeightField3D.update_mode].

void particles_collision_set_attractor_attenuation<>( RID particles_collision=, particles_collision:RID=, float curve=, curve:float=, ):void
Sets the attenuation curve for the 3D GPU particles attractor specified by the particles_collision RID. Only used for attractors, not colliders. Equivalent to [member GPUParticlesAttractor3D.attenuation].

void particles_collision_set_attractor_directionality<>( RID particles_collision=, particles_collision:RID=, float amount=, amount:float=, ):void
Sets the directionality amount for the 3D GPU particles attractor specified by the particles_collision RID. Only used for attractors, not colliders. Equivalent to [member GPUParticlesAttractor3D.directionality].

void particles_collision_set_attractor_strength<>( RID particles_collision=, particles_collision:RID=, float strength=, strength:float=, ):void
Sets the strength for the 3D GPU particles attractor specified by the particles_collision RID. Only used for attractors, not colliders. Equivalent to [member GPUParticlesAttractor3D.strength].

void particles_collision_set_box_extents<>( RID particles_collision=, particles_collision:RID=, Vector3 extents=, extents:Vector3=, ):void
Sets the extents for the 3D GPU particles collision by the particles_collision RID. Equivalent to [member GPUParticlesCollisionBox3D.size], [member GPUParticlesCollisionSDF3D.size], [member GPUParticlesCollisionHeightField3D.size], [member GPUParticlesAttractorBox3D.size] or [member GPUParticlesAttractorVectorField3D.size] depending on the particles_collision type.

void particles_collision_set_collision_type<>( RID particles_collision=, particles_collision:RID=, int type=, type:int=, ):void
Sets the collision or attractor shape type for the 3D GPU particles collision or attractor specified by the particles_collision RID.

void particles_collision_set_cull_mask<>( RID particles_collision=, particles_collision:RID=, int mask=, mask:int=, ):void
Sets the cull mask for the 3D GPU particles collision or attractor specified by the particles_collision RID. Equivalent to [member GPUParticlesCollision3D.cull_mask] or [member GPUParticlesAttractor3D.cull_mask] depending on the particles_collision type.

void particles_collision_set_field_texture<>( RID particles_collision=, particles_collision:RID=, RID texture=, texture:RID=, ):void
Sets the signed distance field texture for the 3D GPU particles collision specified by the particles_collision RID. Equivalent to [member GPUParticlesCollisionSDF3D.texture] or [member GPUParticlesAttractorVectorField3D.texture] depending on the particles_collision type.

void particles_collision_set_height_field_mask<>( RID particles_collision=, particles_collision:RID=, int mask=, mask:int=, ):void
Sets the heightfield mask for the 3D GPU particles heightfield collision specified by the particles_collision RID. Equivalent to [member GPUParticlesCollisionHeightField3D.heightfield_mask].

void particles_collision_set_height_field_resolution<>( RID particles_collision=, particles_collision:RID=, int resolution=, resolution:int=, ):void
Sets the heightmap resolution for the 3D GPU particles heightfield collision specified by the particles_collision RID. Equivalent to [member GPUParticlesCollisionHeightField3D.resolution].

void particles_collision_set_sphere_radius<>( RID particles_collision=, particles_collision:RID=, float radius=, radius:float=, ):void
Sets the radius for the 3D GPU particles sphere collision or attractor specified by the particles_collision RID. Equivalent to [member GPUParticlesCollisionSphere3D.radius] or [member GPUParticlesAttractorSphere3D.radius] depending on the particles_collision type.

RID particles_create<>():RID
Creates a GPU-based particle system and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all particles_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
To place in a scene, attach these particles to an instance using instance_set_base using the returned RID.
Note: The equivalent nodes are GPUParticles2D and GPUParticles3D.
Note: All particles_* methods only apply to GPU-based particles, not CPU-based particles. CPUParticles2D and CPUParticles3D do not have equivalent RenderingServer functions available, as these use MultiMeshInstance2D and MultiMeshInstance3D under the hood (see multimesh_* methods).
void particles_emit<>( RID particles=, particles:RID=, Transform3D transform=, transform:Transform3D=, Vector3 velocity=, velocity:Vector3=, Color color=, color:Color=, Color custom=, custom:Color=, int emit_flags=, emit_flags:int=, ):void
Manually emits particles from the particles instance.

AABB particles_get_current_aabb<>( RID particles=, particles:RID=, ):AABB
Calculates and returns the axis-aligned bounding box that contains all the particles. Equivalent to [method GPUParticles3D.capture_aabb].

bool particles_get_emitting<>( RID particles=, particles:RID=, ):bool
Returns true if particles are currently set to emitting.

bool particles_is_inactive<>( RID particles=, particles:RID=, ):bool
Returns true if particles are not emitting and particles are set to inactive.

void particles_request_process<>( RID particles=, particles:RID=, ):void
Add particle system to list of particle systems that need to be updated. Update will take place on the next frame, or on the next call to instances_cull_aabb, instances_cull_convex, or instances_cull_ray.

void particles_request_process_time<>( RID particles=, particles:RID=, float time=, time:float=, ):void
Requests particles to process for extra process time during a single frame.

void particles_restart<>( RID particles=, particles:RID=, ):void
Reset the particles on the next update. Equivalent to [method GPUParticles3D.restart].

void particles_set_amount<>( RID particles=, particles:RID=, int amount=, amount:int=, ):void
Sets the number of particles to be drawn and allocates the memory for them. Equivalent to [member GPUParticles3D.amount].

void particles_set_amount_ratio<>( RID particles=, particles:RID=, float ratio=, ratio:float=, ):void
Sets the amount ratio for particles to be emitted. Equivalent to [member GPUParticles3D.amount_ratio].

void particles_set_collision_base_size<>( RID particles=, particles:RID=, float size=, size:float=, ):void
void particles_set_custom_aabb<>( RID particles=, particles:RID=, AABB aabb=, aabb:AABB=, ):void
Sets a custom axis-aligned bounding box for the particle system. Equivalent to [member GPUParticles3D.visibility_aabb].

void particles_set_draw_order<>( RID particles=, particles:RID=, int order=, order:int=, ):void
Sets the draw order of the particles. Equivalent to [member GPUParticles3D.draw_order].

void particles_set_draw_pass_mesh<>( RID particles=, particles:RID=, int pass=, pass:int=, RID mesh=, mesh:RID=, ):void
Sets the mesh to be used for the specified draw pass. Equivalent to [member GPUParticles3D.draw_pass_1], [member GPUParticles3D.draw_pass_2], [member GPUParticles3D.draw_pass_3], and [member GPUParticles3D.draw_pass_4].

void particles_set_draw_passes<>( RID particles=, particles:RID=, int count=, count:int=, ):void
Sets the number of draw passes to use. Equivalent to [member GPUParticles3D.draw_passes].

void particles_set_emission_transform<>( RID particles=, particles:RID=, Transform3D transform=, transform:Transform3D=, ):void
Sets the Transform3D that will be used by the particles when they first emit.

void particles_set_emitter_velocity<>( RID particles=, particles:RID=, Vector3 velocity=, velocity:Vector3=, ):void
Sets the velocity of a particle node, that will be used by [member ParticleProcessMaterial.inherit_velocity_ratio].

void particles_set_emitting<>( RID particles=, particles:RID=, bool emitting=, emitting:bool=, ):void
If true, particles will emit over time. Setting to false does not reset the particles, but only stops their emission. Equivalent to [member GPUParticles3D.emitting].

void particles_set_explosiveness_ratio<>( RID particles=, particles:RID=, float ratio=, ratio:float=, ):void
Sets the explosiveness ratio. Equivalent to [member GPUParticles3D.explosiveness].

void particles_set_fixed_fps<>( RID particles=, particles:RID=, int fps=, fps:int=, ):void
Sets the frame rate that the particle system rendering will be fixed to. Equivalent to [member GPUParticles3D.fixed_fps].

void particles_set_fractional_delta<>( RID particles=, particles:RID=, bool enable=, enable:bool=, ):void
If true, uses fractional delta which smooths the movement of the particles. Equivalent to [member GPUParticles3D.fract_delta].

void particles_set_interp_to_end<>( RID particles=, particles:RID=, float factor=, factor:float=, ):void
Sets the value that informs a ParticleProcessMaterial to rush all particles towards the end of their lifetime.

void particles_set_interpolate<>( RID particles=, particles:RID=, bool enable=, enable:bool=, ):void
void particles_set_lifetime<>( RID particles=, particles:RID=, float lifetime=, lifetime:float=, ):void
Sets the lifetime of each particle in the system. Equivalent to [member GPUParticles3D.lifetime].

void particles_set_mode<>( RID particles=, particles:RID=, int mode=, mode:int=, ):void
Sets whether the GPU particles specified by the particles RID should be rendered in 2D or 3D according to mode.

void particles_set_one_shot<>( RID particles=, particles:RID=, bool one_shot=, one_shot:bool=, ):void
If true, particles will emit once and then stop. Equivalent to [member GPUParticles3D.one_shot].

void particles_set_pre_process_time<>( RID particles=, particles:RID=, float time=, time:float=, ):void
Sets the preprocess time for the particles' animation. This lets you delay starting an animation until after the particles have begun emitting. Equivalent to [member GPUParticles3D.preprocess].

void particles_set_process_material<>( RID particles=, particles:RID=, RID material=, material:RID=, ):void
Sets the material for processing the particles.

Note: This is not the material used to draw the materials. Equivalent to [member GPUParticles3D.process_material].
void particles_set_randomness_ratio<>( RID particles=, particles:RID=, float ratio=, ratio:float=, ):void
Sets the emission randomness ratio. This randomizes the emission of particles within their phase. Equivalent to [member GPUParticles3D.randomness].

void particles_set_speed_scale<>( RID particles=, particles:RID=, float scale=, scale:float=, ):void
Sets the speed scale of the particle system. Equivalent to [member GPUParticles3D.speed_scale].

void particles_set_subemitter<>( RID particles=, particles:RID=, RID subemitter_particles=, subemitter_particles:RID=, ):void
void particles_set_trail_bind_poses<>( RID particles=, particles:RID=, Transform3D[] bind_poses=, bind_poses:Transform3D[]=, ):void
void particles_set_trails<>( RID particles=, particles:RID=, bool enable=, enable:bool=, float length_sec=, length_sec:float=, ):void
If enable is true, enables trails for the particles with the specified length_sec in seconds. Equivalent to [member GPUParticles3D.trail_enabled] and [member GPUParticles3D.trail_lifetime].

void particles_set_transform_align<>( RID particles=, particles:RID=, int align=, align:int=, ):void
void particles_set_use_local_coordinates<>( RID particles=, particles:RID=, bool enable=, enable:bool=, ):void
If true, particles use local coordinates. If false they use global coordinates. Equivalent to [member GPUParticles3D.local_coords].

void positional_soft_shadow_filter_set_quality<>( int quality=, quality:int=, ):void
Sets the filter quality for omni and spot light shadows in 3D. See also [member ProjectSettings.rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality]. This parameter is global and cannot be set on a per-viewport basis.

RID reflection_probe_create<>():RID
Creates a reflection probe and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all reflection_probe_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
To place in a scene, attach this reflection probe to an instance using instance_set_base using the returned RID.
Note: The equivalent node is ReflectionProbe.
void reflection_probe_set_ambient_color<>( RID probe=, probe:RID=, Color color=, color:Color=, ):void
Sets the reflection probe's custom ambient light color. Equivalent to [member ReflectionProbe.ambient_color].

void reflection_probe_set_ambient_energy<>( RID probe=, probe:RID=, float energy=, energy:float=, ):void
Sets the reflection probe's custom ambient light energy. Equivalent to [member ReflectionProbe.ambient_color_energy].

void reflection_probe_set_ambient_mode<>( RID probe=, probe:RID=, int mode=, mode:int=, ):void
Sets the reflection probe's ambient light mode. Equivalent to [member ReflectionProbe.ambient_mode].

void reflection_probe_set_as_interior<>( RID probe=, probe:RID=, bool enable=, enable:bool=, ):void
If true, reflections will ignore sky contribution. Equivalent to [member ReflectionProbe.interior].

void reflection_probe_set_blend_distance<>( RID probe=, probe:RID=, float blend_distance=, blend_distance:float=, ):void
Sets the distance in meters over which a probe blends into the scene.

void reflection_probe_set_cull_mask<>( RID probe=, probe:RID=, int layers=, layers:int=, ):void
Sets the render cull mask for this reflection probe. Only instances with a matching layer will be reflected by this probe. Equivalent to [member ReflectionProbe.cull_mask].

void reflection_probe_set_enable_box_projection<>( RID probe=, probe:RID=, bool enable=, enable:bool=, ):void
If true, uses box projection. This can make reflections look more correct in certain situations. Equivalent to [member ReflectionProbe.box_projection].

void reflection_probe_set_enable_shadows<>( RID probe=, probe:RID=, bool enable=, enable:bool=, ):void
If true, computes shadows in the reflection probe. This makes the reflection much slower to compute. Equivalent to [member ReflectionProbe.enable_shadows].

void reflection_probe_set_intensity<>( RID probe=, probe:RID=, float intensity=, intensity:float=, ):void
Sets the intensity of the reflection probe. Intensity modulates the strength of the reflection. Equivalent to [member ReflectionProbe.intensity].

void reflection_probe_set_max_distance<>( RID probe=, probe:RID=, float distance=, distance:float=, ):void
Sets the max distance away from the probe an object can be before it is culled. Equivalent to [member ReflectionProbe.max_distance].

void reflection_probe_set_mesh_lod_threshold<>( RID probe=, probe:RID=, float pixels=, pixels:float=, ):void
Sets the mesh level of detail to use in the reflection probe rendering. Higher values will use less detailed versions of meshes that have LOD variations generated, which can improve performance. Equivalent to [member ReflectionProbe.mesh_lod_threshold].

void reflection_probe_set_origin_offset<>( RID probe=, probe:RID=, Vector3 offset=, offset:Vector3=, ):void
Sets the origin offset to be used when this reflection probe is in box project mode. Equivalent to [member ReflectionProbe.origin_offset].

void reflection_probe_set_reflection_mask<>( RID probe=, probe:RID=, int layers=, layers:int=, ):void
Sets the render reflection mask for this reflection probe. Only instances with a matching layer will have reflections applied from this probe. Equivalent to [member ReflectionProbe.reflection_mask].

void reflection_probe_set_resolution<>( RID probe=, probe:RID=, int resolution=, resolution:int=, ):void
Deprecated. This method does nothing.

void reflection_probe_set_size<>( RID probe=, probe:RID=, Vector3 size=, size:Vector3=, ):void
Sets the size of the area that the reflection probe will capture. Equivalent to [member ReflectionProbe.size].

void reflection_probe_set_update_mode<>( RID probe=, probe:RID=, int mode=, mode:int=, ):void
Sets how often the reflection probe updates. Can either be once or every frame.

void request_frame_drawn_callback<>( Callable callable=, callable:Callable=, ):void
Schedules a callback to the given callable after a frame has been drawn.

RID scenario_create<>():RID
Creates a scenario and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all scenario_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
The scenario is the 3D world that all the visual instances exist in.
void scenario_set_camera_attributes<>( RID scenario=, scenario:RID=, RID effects=, effects:RID=, ):void
Sets the camera attributes (effects) that will be used with this scenario. See also CameraAttributes.

void scenario_set_compositor<>( RID scenario=, scenario:RID=, RID compositor=, compositor:RID=, ):void
Sets the compositor (compositor) that will be used with this scenario. See also Compositor.

void scenario_set_environment<>( RID scenario=, scenario:RID=, RID environment=, environment:RID=, ):void
Sets the environment that will be used with this scenario. See also Environment.

void scenario_set_fallback_environment<>( RID scenario=, scenario:RID=, RID environment=, environment:RID=, ):void
Sets the fallback environment to be used by this scenario. The fallback environment is used if no environment is set. Internally, this is used by the editor to provide a default environment.

void screen_space_roughness_limiter_set_active<>( bool enable=, enable:bool=, float amount=, amount:float=, float limit=, limit:float=, ):void
Sets the screen-space roughness limiter parameters, such as whether it should be enabled and its thresholds. Equivalent to [member ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/enabled], [member ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/amount] and [member ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/limit].

void set_boot_image<>( Image image=, image:Image=, Color color=, color:Color=, bool scale=, scale:bool=, bool use_filter=true, use_filter:bool=true, ):void
Sets a boot image. The color defines the background color. The value of scale indicates if the image will be scaled to fit the screen size. If use_filter is true, the image will be scaled with linear interpolation. If use_filter is false, the image will be scaled with nearest-neighbor interpolation.

void set_boot_image_with_stretch<>( Image image=, image:Image=, Color color=, color:Color=, int stretch_mode=, stretch_mode:int=, bool use_filter=true, use_filter:bool=true, ):void
Sets a boot image. The color defines the background color. The value of stretch_mode indicates how the image will be stretched (see SplashStretchMode for possible values). If use_filter is true, the image will be scaled with linear interpolation. If use_filter is false, the image will be scaled with nearest-neighbor interpolation.

void set_debug_generate_wireframes<>( bool generate=, generate:bool=, ):void
If generate is true, generates debug wireframes for all meshes that are loaded when using the Compatibility renderer. By default, the engine does not generate debug wireframes at runtime, since they slow down loading of assets and take up VRAM.

Note: You must call this method before loading any meshes when using the Compatibility renderer, otherwise wireframes will not be used.
void set_default_clear_color<>( Color color=, color:Color=, ):void
Sets the default clear color which is used when a specific clear color has not been selected. See also get_default_clear_color.

RID shader_create<>():RID
Creates an empty shader and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all shader_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent resource is Shader.
String shader_get_code<>( RID shader=, shader:RID=, ):String
Returns a shader's source code as a string.

RID shader_get_default_texture_parameter<>( RID shader=, shader:RID=, StringName name=, name:StringName=, int index=0, index:int=0, ):RID
Returns a default texture from a shader searched by name.

Note: If the sampler array is used use index to access the specified texture.
Variant shader_get_parameter_default<>( RID shader=, shader:RID=, StringName name=, name:StringName=, ):Variant
Returns the default value for the specified shader uniform. This is usually the value written in the shader source code.

void shader_set_code<>( RID shader=, shader:RID=, String code=, code:String=, ):void
Sets the shader's source code (which triggers recompilation after being changed).

void shader_set_default_texture_parameter<>( RID shader=, shader:RID=, StringName name=, name:StringName=, RID texture=, texture:RID=, int index=0, index:int=0, ):void
Sets a shader's default texture. Overwrites the texture given by name.

Note: If the sampler array is used use index to access the specified texture.
void shader_set_path_hint<>( RID shader=, shader:RID=, String path=, path:String=, ):void
Sets the path hint for the specified shader. This should generally match the Shader resource's [member Resource.resource_path].

void skeleton_allocate_data<>( RID skeleton=, skeleton:RID=, int bones=, bones:int=, bool is_2d_skeleton=false, is_2d_skeleton:bool=false, ):void
Transform3D skeleton_bone_get_transform<>( RID skeleton=, skeleton:RID=, int bone=, bone:int=, ):Transform3D
Returns the Transform3D set for a specific bone of this skeleton.

Transform2D skeleton_bone_get_transform_2d<>( RID skeleton=, skeleton:RID=, int bone=, bone:int=, ):Transform2D
Returns the Transform2D set for a specific bone of this skeleton.

void skeleton_bone_set_transform<>( RID skeleton=, skeleton:RID=, int bone=, bone:int=, Transform3D transform=, transform:Transform3D=, ):void
Sets the Transform3D for a specific bone of this skeleton.

void skeleton_bone_set_transform_2d<>( RID skeleton=, skeleton:RID=, int bone=, bone:int=, Transform2D transform=, transform:Transform2D=, ):void
Sets the Transform2D for a specific bone of this skeleton.

RID skeleton_create<>():RID
Creates a skeleton and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all skeleton_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
int skeleton_get_bone_count<>( RID skeleton=, skeleton:RID=, ):int
Returns the number of bones allocated for this skeleton.

void skeleton_set_base_transform_2d<>( RID skeleton=, skeleton:RID=, Transform2D base_transform=, base_transform:Transform2D=, ):void
Image sky_bake_panorama<>( RID sky=, sky:RID=, float energy=, energy:float=, bool bake_irradiance=, bake_irradiance:bool=, Vector2i size=, size:Vector2i=, ):Image
Generates and returns an Image containing the radiance map for the specified sky RID. This supports built-in sky material and custom sky shaders. If bake_irradiance is true, the irradiance map is saved instead of the radiance map. The radiance map is used to render reflected light, while the irradiance map is used to render ambient light. See also environment_bake_panorama.

Note: The image is saved using linear encoding without any tonemapping performed, which means it will look too dark if viewed directly in an image editor. energy values above 1.0 can be used to brighten the resulting image.
Note: size should be a 2:1 aspect ratio for the generated panorama to have square pixels. For radiance maps, there is no point in using a height greater than [member Sky.radiance_size], as it won't increase detail. Irradiance maps only contain low-frequency data, so there is usually no point in going past a size of 128×64 pixels when saving an irradiance map.
RID sky_create<>():RID
Creates an empty sky and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all sky_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
void sky_set_material<>( RID sky=, sky:RID=, RID material=, material:RID=, ):void
Sets the material that the sky uses to render the background, ambient and reflection maps.

void sky_set_mode<>( RID sky=, sky:RID=, int mode=, mode:int=, ):void
Sets the process mode of the sky specified by the sky RID. Equivalent to [member Sky.process_mode].

void sky_set_radiance_size<>( RID sky=, sky:RID=, int radiance_size=, radiance_size:int=, ):void
Sets the radiance_size of the sky specified by the sky RID (in pixels). Equivalent to [member Sky.radiance_size].

RID spot_light_create<>():RID
Creates a spot light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
To place in a scene, attach this spot light to an instance using instance_set_base using the returned RID.
void sub_surface_scattering_set_quality<>( int quality=, quality:int=, ):void
Sets [member ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality] to use when rendering materials that have subsurface scattering enabled.

void sub_surface_scattering_set_scale<>( float scale=, scale:float=, float depth_scale=, depth_scale:float=, ):void
Sets the [member ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale] and [member ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale] to use when rendering materials that have subsurface scattering enabled.

RID texture_2d_create<>( Image image=, image:Image=, ):RID
Creates a 2-dimensional texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent resource is Texture2D.
Note: Not to be confused with [method RenderingDevice.texture_create], which creates the graphics API's own texture type as opposed to the Godot-specific Texture2D resource.
Image texture_2d_get<>( RID texture=, texture:RID=, ):Image
Returns an Image instance from the given texture RID.

Example: Get the test texture from get_test_texture and apply it to a Sprite2D node:
var texture_rid = RenderingServer.get_test_texture() var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) $Sprite2D.texture = texture
Image texture_2d_layer_get<>( RID texture=, texture:RID=, int layer=, layer:int=, ):Image
Returns an Image instance from the given texture RID and layer.

RID texture_2d_layered_create<>( Image[] layers=, layers:Image[]=, int layered_type=, layered_type:int=, ):RID
Creates a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent resource is TextureLayered.
RID texture_2d_layered_placeholder_create<>( int layered_type=, layered_type:int=, ):RID
Creates a placeholder for a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions, although it does nothing when used. See also texture_2d_placeholder_create.

Note: The equivalent resource is PlaceholderTextureLayered.
RID texture_2d_placeholder_create<>():RID
Creates a placeholder for a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions, although it does nothing when used. See also texture_2d_layered_placeholder_create.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent resource is PlaceholderTexture2D.
void texture_2d_update<>( RID texture=, texture:RID=, Image image=, image:Image=, int layer=, layer:int=, ):void
Updates the texture specified by the texture RID with the data in image. A layer must also be specified, which should be 0 when updating a single-layer texture (Texture2D).

Note: The image must have the same width, height and format as the current texture data. Otherwise, an error will be printed and the original texture won't be modified. If you need to use different width, height or format, use texture_replace instead.
RID texture_3d_create<>( int format=, format:int=, int width=, width:int=, int height=, height:int=, int depth=, depth:int=, bool mipmaps=, mipmaps:bool=, Image[] data=, data:Image[]=, ):RID
Note: The equivalent resource is Texture3D.

Image[] texture_3d_get<>( RID texture=, texture:RID=, ):Image[]
Returns 3D texture data as an array of Images for the specified texture RID.

RID texture_3d_placeholder_create<>():RID
Creates a placeholder for a 3-dimensional texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_3d_* RenderingServer functions, although it does nothing when used.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent resource is PlaceholderTexture3D.
void texture_3d_update<>( RID texture=, texture:RID=, Image[] data=, data:Image[]=, ):void
Updates the texture specified by the texture RID's data with the data in data. All the texture's layers must be replaced at once.

Note: The texture must have the same width, height, depth and format as the current texture data. Otherwise, an error will be printed and the original texture won't be modified. If you need to use different width, height, depth or format, use texture_replace instead.
RID texture_create_from_native_handle<>( int type=, type:int=, int format=, format:int=, int native_handle=, native_handle:int=, int width=, width:int=, int height=, height:int=, int depth=, depth:int=, int layers=1, layers:int=1, int layered_type=0, layered_type:int=0, ):RID
Creates a texture based on a native handle that was created outside of Godot's renderer.

Note: If using only the rendering device renderer, it's recommend to use [method RenderingDevice.texture_create_from_extension] together with [method RenderingServer.texture_rd_create], rather than this method. It will give you much more control over the texture's format and usage.
int texture_get_format<>( RID texture=, texture:RID=, ):int
Returns the format for the texture.

int texture_get_native_handle<>( RID texture=, texture:RID=, bool srgb=false, srgb:bool=false, ):int
Returns the internal graphics handle for this texture object. For use when communicating with third-party APIs mostly with GDExtension.

srgb should be true when the texture uses nonlinear sRGB encoding and false when the texture uses linear encoding.
Note: This function returns a uint64_t which internally maps to a GLuint (OpenGL) or VkImage (Vulkan).
String texture_get_path<>( RID texture=, texture:RID=, ):String
RID texture_get_rd_texture<>( RID texture=, texture:RID=, bool srgb=false, srgb:bool=false, ):RID
Returns a texture RID that can be used with RenderingDevice.

srgb should be true when the texture uses nonlinear sRGB encoding and false when the texture uses linear encoding.
RID texture_proxy_create<>( RID base=, base:RID=, ):RID
This method does nothing and always returns an invalid RID.

void texture_proxy_update<>( RID texture=, texture:RID=, RID proxy_to=, proxy_to:RID=, ):void
This method does nothing.

RID texture_rd_create<>( RID rd_texture=, rd_texture:RID=, int layer_type=0, layer_type:int=0, ):RID
Creates a new texture object based on a texture created directly on the RenderingDevice. If the texture contains layers, layer_type is used to define the layer type.

void texture_replace<>( RID texture=, texture:RID=, RID by_texture=, by_texture:RID=, ):void
Replaces texture's texture data by the texture specified by the by_texture RID, without changing texture's RID.

void texture_set_force_redraw_if_visible<>( RID texture=, texture:RID=, bool enable=, enable:bool=, ):void
void texture_set_path<>( RID texture=, texture:RID=, String path=, path:String=, ):void
void texture_set_size_override<>( RID texture=, texture:RID=, int width=, width:int=, int height=, height:int=, ):void
void viewport_attach_camera<>( RID viewport=, viewport:RID=, RID camera=, camera:RID=, ):void
Sets a viewport's camera.

void viewport_attach_canvas<>( RID viewport=, viewport:RID=, RID canvas=, canvas:RID=, ):void
Sets a viewport's canvas.

void viewport_attach_to_screen<>( RID viewport=, viewport:RID=, Rect2 rect=Rect2(0, 0, 0, 0), rect:Rect2=Rect2(0, 0, 0, 0), int screen=0, screen:int=0, ):void
Copies the viewport to a region of the screen specified by rect. If viewport_set_render_direct_to_screen is true, then the viewport does not use a framebuffer and the contents of the viewport are rendered directly to screen. However, note that the root viewport is drawn last, therefore it will draw over the screen. Accordingly, you must set the root viewport to an area that does not cover the area that you have attached this viewport to.

For example, you can set the root viewport to not render at all with the following code:
func _ready(): RenderingServer.viewport_attach_to_screen(get_viewport().get_viewport_rid(), Rect2()) RenderingServer.viewport_attach_to_screen($Viewport.get_viewport_rid(), Rect2(0, 0, 600, 600))

Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For further optimization, see viewport_set_render_direct_to_screen.
RID viewport_create<>():RID
Creates an empty viewport and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all viewport_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent node is Viewport.
float viewport_get_measured_render_time_cpu<>( RID viewport=, viewport:RID=, ):float
Returns the CPU time taken to render the last frame in milliseconds. This only includes time spent in rendering-related operations; scripts' _process functions and other engine subsystems are not included in this readout. To get a complete readout of CPU time spent to render the scene, sum the render times of all viewports that are drawn every frame plus get_frame_setup_time_cpu. Unlike [method Engine.get_frames_per_second], this method will accurately reflect CPU utilization even if framerate is capped via V-Sync or [member Engine.max_fps]. See also viewport_get_measured_render_time_gpu.

Note: Requires measurements to be enabled on the specified viewport using viewport_set_measure_render_time. Otherwise, this method returns 0.0.
float viewport_get_measured_render_time_gpu<>( RID viewport=, viewport:RID=, ):float
Returns the GPU time taken to render the last frame in milliseconds. To get a complete readout of GPU time spent to render the scene, sum the render times of all viewports that are drawn every frame. Unlike [method Engine.get_frames_per_second], this method accurately reflects GPU utilization even if framerate is capped via V-Sync or [member Engine.max_fps]. See also viewport_get_measured_render_time_cpu.

Note: Requires measurements to be enabled on the specified viewport using viewport_set_measure_render_time. Otherwise, this method returns 0.0.
Note: When GPU utilization is low enough during a certain period of time, GPUs will decrease their power state (which in turn decreases core and memory clock speeds). This can cause the reported GPU time to increase if GPU utilization is kept low enough by a framerate cap (compared to what it would be at the GPU's highest power state). Keep this in mind when benchmarking using viewport_get_measured_render_time_gpu. This behavior can be overridden in the graphics driver settings at the cost of higher power usage.
int viewport_get_render_info<>( RID viewport=, viewport:RID=, int type=, type:int=, int info=, info:int=, ):int
Returns a statistic about the rendering engine which can be used for performance profiling. This is separated into render pass types, each of them having the same infos you can query (different passes will return different values).

See also get_rendering_info, which returns global information across all viewports.
Note: Viewport rendering information is not available until at least 2 frames have been rendered by the engine. If rendering information is not available, viewport_get_render_info returns 0. To print rendering information in _ready() successfully, use the following:
func _ready(): for _i in 2: await get_tree().process_frame print( RenderingServer.viewport_get_render_info(get_viewport().get_viewport_rid(), RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE, RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME) )
RID viewport_get_render_target<>( RID viewport=, viewport:RID=, ):RID
Returns the render target for the viewport.

RID viewport_get_texture<>( RID viewport=, viewport:RID=, ):RID
Returns the viewport's last rendered frame.

int viewport_get_update_mode<>( RID viewport=, viewport:RID=, ):int
Returns the viewport's update mode.

Warning: Calling this from any thread other than the rendering thread will be detrimental to performance.
void viewport_remove_canvas<>( RID viewport=, viewport:RID=, RID canvas=, canvas:RID=, ):void
Detaches a viewport from a canvas.

void viewport_set_active<>( RID viewport=, viewport:RID=, bool active=, active:bool=, ):void
If true, sets the viewport active, else sets it inactive.

void viewport_set_anisotropic_filtering_level<>( RID viewport=, viewport:RID=, int anisotropic_filtering_level=, anisotropic_filtering_level:int=, ):void
Sets the maximum number of samples to take when using anisotropic filtering on textures (as a power of two). A higher sample count will result in sharper textures at oblique angles, but is more expensive to compute. A value of 0 forcibly disables anisotropic filtering, even on materials where it is enabled.

The anisotropic filtering level also affects decals and light projectors if they are configured to use anisotropic filtering. See [member ProjectSettings.rendering/textures/decals/filter] and [member ProjectSettings.rendering/textures/light_projectors/filter].
Note: In 3D, for this setting to have an effect, set [member BaseMaterial3D.texture_filter] to [constant BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] or [constant BaseMaterial3D.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] on materials.
Note: In 2D, for this setting to have an effect, set [member CanvasItem.texture_filter] to [constant CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] or [constant CanvasItem.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] on the CanvasItem node displaying the texture (or in CanvasTexture). However, anisotropic filtering is rarely useful in 2D, so only enable it for textures in 2D if it makes a meaningful visual difference.
void viewport_set_canvas_cull_mask<>( RID viewport=, viewport:RID=, int canvas_cull_mask=, canvas_cull_mask:int=, ):void
Sets the rendering mask associated with this Viewport. Only CanvasItem nodes with a matching rendering visibility layer will be rendered by this Viewport.

void viewport_set_canvas_stacking<>( RID viewport=, viewport:RID=, RID canvas=, canvas:RID=, int layer=, layer:int=, int sublayer=, sublayer:int=, ):void
Sets the stacking order for a viewport's canvas.

layer is the actual canvas layer, while sublayer specifies the stacking order of the canvas among those in the same layer.
Note: layer should be between CANVAS_LAYER_MIN and CANVAS_LAYER_MAX (inclusive). Any other value will wrap around.
void viewport_set_canvas_transform<>( RID viewport=, viewport:RID=, RID canvas=, canvas:RID=, Transform2D offset=, offset:Transform2D=, ):void
Sets the transformation of a viewport's canvas.

void viewport_set_clear_mode<>( RID viewport=, viewport:RID=, int clear_mode=, clear_mode:int=, ):void
Sets the clear mode of a viewport.

void viewport_set_debug_draw<>( RID viewport=, viewport:RID=, int draw=, draw:int=, ):void
Sets the debug draw mode of a viewport.

void viewport_set_default_canvas_item_texture_filter<>( RID viewport=, viewport:RID=, int filter=, filter:int=, ):void
Sets the default texture filtering mode for the specified viewport RID.

void viewport_set_default_canvas_item_texture_repeat<>( RID viewport=, viewport:RID=, int repeat=, repeat:int=, ):void
Sets the default texture repeat mode for the specified viewport RID.

void viewport_set_disable_2d<>( RID viewport=, viewport:RID=, bool disable=, disable:bool=, ):void
If true, the viewport's canvas (i.e. 2D and GUI elements) is not rendered.

void viewport_set_disable_3d<>( RID viewport=, viewport:RID=, bool disable=, disable:bool=, ):void
If true, the viewport's 3D elements are not rendered.

void viewport_set_environment_mode<>( RID viewport=, viewport:RID=, int mode=, mode:int=, ):void
Sets the viewport's environment mode which allows enabling or disabling rendering of 3D environment over 2D canvas. When disabled, 2D will not be affected by the environment. When enabled, 2D will be affected by the environment if the environment background mode is ENV_BG_CANVAS. The default behavior is to inherit the setting from the viewport's parent. If the topmost parent is also set to VIEWPORT_ENVIRONMENT_INHERIT, then the behavior will be the same as if it was set to VIEWPORT_ENVIRONMENT_ENABLED.

void viewport_set_fsr_sharpness<>( RID viewport=, viewport:RID=, float sharpness=, sharpness:float=, ):void
Determines how sharp the upscaled image will be when using the FSR upscaling mode. Sharpness halves with every whole number. Values go from 0.0 (sharpest) to 2.0. Values above 2.0 won't make a visible difference.

void viewport_set_global_canvas_transform<>( RID viewport=, viewport:RID=, Transform2D transform=, transform:Transform2D=, ):void
Sets the viewport's global transformation matrix.

void viewport_set_measure_render_time<>( RID viewport=, viewport:RID=, bool enable=, enable:bool=, ):void
Sets the measurement for the given viewport RID (obtained using [method Viewport.get_viewport_rid]). Once enabled, viewport_get_measured_render_time_cpu and viewport_get_measured_render_time_gpu will return values greater than 0.0 when queried with the given viewport.

void viewport_set_msaa_2d<>( RID viewport=, viewport:RID=, int msaa=, msaa:int=, ):void
Sets the multisample antialiasing mode for 2D/Canvas on the specified viewport RID. Equivalent to [member ProjectSettings.rendering/anti_aliasing/quality/msaa_2d] or [member Viewport.msaa_2d].

void viewport_set_msaa_3d<>( RID viewport=, viewport:RID=, int msaa=, msaa:int=, ):void
Sets the multisample antialiasing mode for 3D on the specified viewport RID. Equivalent to [member ProjectSettings.rendering/anti_aliasing/quality/msaa_3d] or [member Viewport.msaa_3d].

void viewport_set_occlusion_culling_build_quality<>( int quality=, quality:int=, ):void
Sets the [member ProjectSettings.rendering/occlusion_culling/bvh_build_quality] to use for occlusion culling. This parameter is global and cannot be set on a per-viewport basis.

void viewport_set_occlusion_rays_per_thread<>( int rays_per_thread=, rays_per_thread:int=, ):void
Sets the [member ProjectSettings.rendering/occlusion_culling/occlusion_rays_per_thread] to use for occlusion culling. This parameter is global and cannot be set on a per-viewport basis.

void viewport_set_parent_viewport<>( RID viewport=, viewport:RID=, RID parent_viewport=, parent_viewport:RID=, ):void
Sets the viewport's parent to the viewport specified by the parent_viewport RID.

void viewport_set_positional_shadow_atlas_quadrant_subdivision<>( RID viewport=, viewport:RID=, int quadrant=, quadrant:int=, int subdivision=, subdivision:int=, ):void
Sets the number of subdivisions to use in the specified shadow atlas quadrant for omni and spot shadows. See also [method Viewport.set_positional_shadow_atlas_quadrant_subdiv].

void viewport_set_positional_shadow_atlas_size<>( RID viewport=, viewport:RID=, int size=, size:int=, bool use_16_bits=false, use_16_bits:bool=false, ):void
Sets the size of the shadow atlas's images (used for omni and spot lights) on the viewport specified by the viewport RID. The value is rounded up to the nearest power of 2. If use_16_bits is true, use 16 bits for the omni/spot shadow depth map. Enabling this results in shadows having less precision and may result in shadow acne, but can lead to performance improvements on some devices.

Note: If this is set to 0, no positional shadows will be visible at all. This can improve performance significantly on low-end systems by reducing both the CPU and GPU load (as fewer draw calls are needed to draw the scene without shadows).
void viewport_set_render_direct_to_screen<>( RID viewport=, viewport:RID=, bool enabled=, enabled:bool=, ):void
If true, render the contents of the viewport directly to screen. This allows a low-level optimization where you can skip drawing a viewport to the root viewport. While this optimization can result in a significant increase in speed (especially on older devices), it comes at a cost of usability. When this is enabled, you cannot read from the viewport or from the screen_texture. You also lose the benefit of certain window settings, such as the various stretch modes. Another consequence to be aware of is that in 2D the rendering happens in window coordinates, so if you have a viewport that is double the size of the window, and you set this, then only the portion that fits within the window will be drawn, no automatic scaling is possible, even if your game scene is significantly larger than the window size.

void viewport_set_scaling_3d_mode<>( RID viewport=, viewport:RID=, int scaling_3d_mode=, scaling_3d_mode:int=, ):void
Sets the 3D resolution scaling mode. Bilinear scaling renders at different resolution to either undersample or supersample the viewport. FidelityFX Super Resolution 1.0, abbreviated to FSR, is an upscaling technology that produces high quality images at fast framerates by using a spatially aware upscaling algorithm. FSR is slightly more expensive than bilinear, but it produces significantly higher image quality. FSR should be used where possible.

void viewport_set_scaling_3d_scale<>( RID viewport=, viewport:RID=, float scale=, scale:float=, ):void
Scales the 3D render buffer based on the viewport size uses an image filter specified in ViewportScaling3DMode to scale the output image to the full viewport size. Values lower than 1.0 can be used to speed up 3D rendering at the cost of quality (undersampling). Values greater than 1.0 are only valid for bilinear mode and can be used to improve 3D rendering quality at a high performance cost (supersampling). See also ViewportMSAA for multi-sample antialiasing, which is significantly cheaper but only smoothens the edges of polygons.

When using FSR upscaling, AMD recommends exposing the following values as preset options to users "Ultra Quality: 0.77", "Quality: 0.67", "Balanced: 0.59", "Performance: 0.5" instead of exposing the entire scale.
void viewport_set_scenario<>( RID viewport=, viewport:RID=, RID scenario=, scenario:RID=, ):void
Sets a viewport's scenario. The scenario contains information about environment information, reflection atlas, etc.

void viewport_set_screen_space_aa<>( RID viewport=, viewport:RID=, int mode=, mode:int=, ):void
Sets the viewport's screen-space antialiasing mode. Equivalent to [member ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa] or [member Viewport.screen_space_aa].

void viewport_set_sdf_oversize_and_scale<>( RID viewport=, viewport:RID=, int oversize=, oversize:int=, int scale=, scale:int=, ):void
Sets the viewport's 2D signed distance field [member ProjectSettings.rendering/2d/sdf/oversize] and [member ProjectSettings.rendering/2d/sdf/scale]. This is used when sampling the signed distance field in CanvasItem shaders as well as GPUParticles2D collision. This is not used by SDFGI in 3D rendering.

void viewport_set_size<>( RID viewport=, viewport:RID=, int width=, width:int=, int height=, height:int=, ):void
Sets the viewport's width and height in pixels.

void viewport_set_snap_2d_transforms_to_pixel<>( RID viewport=, viewport:RID=, bool enabled=, enabled:bool=, ):void
If true, canvas item transforms (i.e. origin position) are snapped to the nearest pixel when rendering. This can lead to a crisper appearance at the cost of less smooth movement, especially when Camera2D smoothing is enabled. Equivalent to [member ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel].

void viewport_set_snap_2d_vertices_to_pixel<>( RID viewport=, viewport:RID=, bool enabled=, enabled:bool=, ):void
If true, canvas item vertices (i.e. polygon points) are snapped to the nearest pixel when rendering. This can lead to a crisper appearance at the cost of less smooth movement, especially when Camera2D smoothing is enabled. Equivalent to [member ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel].

void viewport_set_texture_mipmap_bias<>( RID viewport=, viewport:RID=, float mipmap_bias=, mipmap_bias:float=, ):void
Affects the final texture sharpness by reading from a lower or higher mipmap (also called "texture LOD bias"). Negative values make mipmapped textures sharper but grainier when viewed at a distance, while positive values make mipmapped textures blurrier (even when up close). To get sharper textures at a distance without introducing too much graininess, set this between -0.75 and 0.0. Enabling temporal antialiasing ([member ProjectSettings.rendering/anti_aliasing/quality/use_taa]) can help reduce the graininess visible when using negative mipmap bias.

Note: When the 3D scaling mode is set to FSR 1.0, this value is used to adjust the automatic mipmap bias which is calculated internally based on the scale factor. The formula for this is -log2(1.0 / scale) + mipmap_bias.
void viewport_set_transparent_background<>( RID viewport=, viewport:RID=, bool enabled=, enabled:bool=, ):void
If true, the viewport renders its background as transparent.

void viewport_set_update_mode<>( RID viewport=, viewport:RID=, int update_mode=, update_mode:int=, ):void
Sets when the viewport should be updated.

void viewport_set_use_debanding<>( RID viewport=, viewport:RID=, bool enable=, enable:bool=, ):void
Equivalent to [member Viewport.use_debanding]. See also [member ProjectSettings.rendering/anti_aliasing/quality/use_debanding].

void viewport_set_use_hdr_2d<>( RID viewport=, viewport:RID=, bool enabled=, enabled:bool=, ):void
If true, 2D rendering will use a high dynamic range (HDR) format framebuffer matching the bit depth of the 3D framebuffer. When using the Forward+ or Compatibility renderer, this will be an RGBA16 framebuffer. When using the Mobile renderer, it will be an RGB10_A2 framebuffer.

Additionally, 2D rendering will be performed on linear values and will be converted using the appropriate transfer function immediately before blitting to the screen (if the Viewport is attached to the screen).
Practically speaking, this means that the end result of the Viewport will not be clamped to the 0-1 range and can be used in 3D rendering without color encoding adjustments. This allows 2D rendering to take advantage of effects requiring high dynamic range (e.g. 2D glow) as well as substantially improves the appearance of effects requiring highly detailed gradients. This setting has the same effect as [member Viewport.use_hdr_2d].
void viewport_set_use_occlusion_culling<>( RID viewport=, viewport:RID=, bool enable=, enable:bool=, ):void
If true, enables occlusion culling on the specified viewport. Equivalent to [member ProjectSettings.rendering/occlusion_culling/use_occlusion_culling].

void viewport_set_use_taa<>( RID viewport=, viewport:RID=, bool enable=, enable:bool=, ):void
If true, use temporal antialiasing. Equivalent to [member ProjectSettings.rendering/anti_aliasing/quality/use_taa] or [member Viewport.use_taa].

void viewport_set_use_xr<>( RID viewport=, viewport:RID=, bool use_xr=, use_xr:bool=, ):void
If true, the viewport uses augmented or virtual reality technologies. See XRInterface.

void viewport_set_vrs_mode<>( RID viewport=, viewport:RID=, int mode=, mode:int=, ):void
Sets the Variable Rate Shading (VRS) mode for the viewport. If the GPU does not support VRS, this property is ignored. Equivalent to [member ProjectSettings.rendering/vrs/mode].

void viewport_set_vrs_texture<>( RID viewport=, viewport:RID=, RID texture=, texture:RID=, ):void
The texture to use when the VRS mode is set to [constant RenderingServer.VIEWPORT_VRS_TEXTURE]. Equivalent to [member ProjectSettings.rendering/vrs/texture].

void viewport_set_vrs_update_mode<>( RID viewport=, viewport:RID=, int mode=, mode:int=, ):void
Sets the update mode for Variable Rate Shading (VRS) for the viewport. VRS requires the input texture to be converted to the format usable by the VRS method supported by the hardware. The update mode defines how often this happens. If the GPU does not support VRS, or VRS is not enabled, this property is ignored.

If set to [constant RenderingServer.VIEWPORT_VRS_UPDATE_ONCE], the input texture is copied once and the mode is changed to [constant RenderingServer.VIEWPORT_VRS_UPDATE_DISABLED].
RID visibility_notifier_create<>():RID
Creates a new 3D visibility notifier object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all visibility_notifier_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
To place in a scene, attach this notifier to an instance using instance_set_base using the returned RID.
Note: The equivalent node is VisibleOnScreenNotifier3D.
void visibility_notifier_set_aabb<>( RID notifier=, notifier:RID=, AABB aabb=, aabb:AABB=, ):void
void visibility_notifier_set_callbacks<>( RID notifier=, notifier:RID=, Callable enter_callable=, enter_callable:Callable=, Callable exit_callable=, exit_callable:Callable=, ):void
void voxel_gi_allocate_data<>( RID voxel_gi=, voxel_gi:RID=, Transform3D to_cell_xform=, to_cell_xform:Transform3D=, AABB aabb=, aabb:AABB=, Vector3i octree_size=, octree_size:Vector3i=, PackedByteArray octree_cells=, octree_cells:PackedByteArray=, PackedByteArray data_cells=, data_cells:PackedByteArray=, PackedByteArray distance_field=, distance_field:PackedByteArray=, PackedInt32Array level_counts=, level_counts:PackedInt32Array=, ):void
RID voxel_gi_create<>():RID
Creates a new voxel-based global illumination object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all voxel_gi_* RenderingServer functions.

Once finished with your RID, you will want to free the RID using the RenderingServer's free_rid method.
Note: The equivalent node is VoxelGI.
PackedByteArray voxel_gi_get_data_cells<>( RID voxel_gi=, voxel_gi:RID=, ):PackedByteArray
PackedByteArray voxel_gi_get_distance_field<>( RID voxel_gi=, voxel_gi:RID=, ):PackedByteArray
PackedInt32Array voxel_gi_get_level_counts<>( RID voxel_gi=, voxel_gi:RID=, ):PackedInt32Array
PackedByteArray voxel_gi_get_octree_cells<>( RID voxel_gi=, voxel_gi:RID=, ):PackedByteArray
Vector3i voxel_gi_get_octree_size<>( RID voxel_gi=, voxel_gi:RID=, ):Vector3i
Transform3D voxel_gi_get_to_cell_xform<>( RID voxel_gi=, voxel_gi:RID=, ):Transform3D
void voxel_gi_set_baked_exposure_normalization<>( RID voxel_gi=, voxel_gi:RID=, float baked_exposure=, baked_exposure:float=, ):void
Used to inform the renderer what exposure normalization value was used while baking the voxel gi. This value will be used and modulated at run time to ensure that the voxel gi maintains a consistent level of exposure even if the scene-wide exposure normalization is changed at run time. For more information see camera_attributes_set_exposure.

void voxel_gi_set_bias<>( RID voxel_gi=, voxel_gi:RID=, float bias=, bias:float=, ):void
Sets the [member VoxelGIData.bias] value to use on the specified voxel_gi's RID.

void voxel_gi_set_dynamic_range<>( RID voxel_gi=, voxel_gi:RID=, float range=, range:float=, ):void
Sets the [member VoxelGIData.dynamic_range] value to use on the specified voxel_gi's RID.

void voxel_gi_set_energy<>( RID voxel_gi=, voxel_gi:RID=, float energy=, energy:float=, ):void
Sets the [member VoxelGIData.energy] value to use on the specified voxel_gi's RID.

void voxel_gi_set_interior<>( RID voxel_gi=, voxel_gi:RID=, bool enable=, enable:bool=, ):void
Sets the [member VoxelGIData.interior] value to use on the specified voxel_gi's RID.

void voxel_gi_set_normal_bias<>( RID voxel_gi=, voxel_gi:RID=, float bias=, bias:float=, ):void
Sets the [member VoxelGIData.normal_bias] value to use on the specified voxel_gi's RID.

void voxel_gi_set_propagation<>( RID voxel_gi=, voxel_gi:RID=, float amount=, amount:float=, ):void
Sets the [member VoxelGIData.propagation] value to use on the specified voxel_gi's RID.

void voxel_gi_set_quality<>( int quality=, quality:int=, ):void
Sets the [member ProjectSettings.rendering/global_illumination/voxel_gi/quality] value to use when rendering. This parameter is global and cannot be set on a per-VoxelGI basis.

void voxel_gi_set_use_two_bounces<>( RID voxel_gi=, voxel_gi:RID=, bool enable=, enable:bool=, ):void
Sets the [member VoxelGIData.use_two_bounces] value to use on the specified voxel_gi's RID.




All social media brands are registrated trademarks and belong to their respective owners.





CONTACT IMPRINT TERMS OF USE PRIVACY © ROKOROJI ® 2021 rokojori.com
CONTACT IMPRINT TERMS OF USE PRIVACY © ROKOROJI ® 2021 rokojori.com
We are using cookies on this site. Read more... Wir benutzen Cookies auf dieser Seite. Mehr lesen...