RenderingServer

继承: Object

任何可见的东西的服务器。

描述

渲染服务器是所有可见内容的 API 后端。整个场景系统都挂载在它上面来显示。渲染服务器是完全不透明的:内部实现完全取决于具体的实现,无法进行访问。

使用渲染服务器可以完全绕过场景和 Node 系统。如果场景系统是瓶颈所在,那么这样做就可以提升性能,否则无法提升性能(例如已经完全利用 GPU 的情况)。

资源是使用 *_create 函数创建的。这些函数返回的 RID 并不是对对象本身的引用,而是指向这些对象的不透明指针

所有对象都会被绘制到视口中。你可以使用附加到 SceneTreeViewport,或者也可以使用 viewport_create 自行创建。使用自定义场景或画布时,需要使用 viewport_set_scenarioviewport_attach_canvas 将场景或画布附加到视口。

场景:在 3D 中,所有可视对象都必须与一个场景(Scenario)相关联。场景是世界的可视化表示。如果要从正在运行的游戏中访问渲染服务器,那么就可以使用 Node3D.get_world_3d 从任何 Node3D 节点的场景树访问该场景。此外,也可以使用 scenario_create 创建场景。

在 2D 中也是类似的,需要一个画布(Canvas)来绘制所有的画布项。

3D:在 3D 中,所有可视对象都由资源(Resource)和实例(Instance)组成。资源可以是网格、粒子系统、灯光或任何其他 3D 对象。为了使资源可见,必须使用 instance_set_base 将其附加到一个实例。该实例还必须使用 instance_set_scenario 附加到场景中才可见。不带前缀的 RenderingServer 方法通常都是针对 3D 的(但也有例外)。

2D:在 2D 中,所有可见对象都是某种形式的画布项(Canvas Item)。为了使画布项可见,就需要让它成为附加到视口的画布的子项,或者需要让它成为其他画布项的子项,但这些画布项最终也需要是画布的子项。针对 2D 的 RenderingServer 方法一般都以 canvas_* 开头。

无头模式:使用 --headless 命令行参数启动引擎将禁用所有渲染和窗口管理功能。在这种情况下,RenderingServer 中的大多数函数将返回虚值。

教程

属性

bool

render_loop_enabled

方法

Image[]

bake_render_uv2 ( RID base, RID[] material_overrides, Vector2i image_size )

void

call_on_render_thread ( Callable callable )

RID

camera_attributes_create ( )

void

camera_attributes_set_auto_exposure ( RID camera_attributes, bool enable, float min_sensitivity, float max_sensitivity, float speed, float scale )

void

camera_attributes_set_dof_blur ( RID camera_attributes, bool far_enable, float far_distance, float far_transition, bool near_enable, float near_distance, float near_transition, float amount )

void

camera_attributes_set_dof_blur_bokeh_shape ( DOFBokehShape shape )

void

camera_attributes_set_dof_blur_quality ( DOFBlurQuality quality, bool use_jitter )

void

camera_attributes_set_exposure ( RID camera_attributes, float multiplier, float normalization )

RID

camera_create ( )

void

camera_set_camera_attributes ( RID camera, RID effects )

void

camera_set_cull_mask ( RID camera, int layers )

void

camera_set_environment ( RID camera, RID env )

void

camera_set_frustum ( RID camera, float size, Vector2 offset, float z_near, float z_far )

void

camera_set_orthogonal ( RID camera, float size, float z_near, float z_far )

void

camera_set_perspective ( RID camera, float fovy_degrees, float z_near, float z_far )

void

camera_set_transform ( RID camera, Transform3D transform )

void

camera_set_use_vertical_aspect ( RID camera, bool enable )

RID

canvas_create ( )

void

canvas_item_add_animation_slice ( RID item, float animation_length, float slice_begin, float slice_end, float offset=0.0 )

void

canvas_item_add_circle ( RID item, Vector2 pos, float radius, Color color )

void

canvas_item_add_clip_ignore ( RID item, bool ignore )

void

canvas_item_add_lcd_texture_rect_region ( RID item, Rect2 rect, RID texture, Rect2 src_rect, Color modulate )

void

canvas_item_add_line ( RID item, Vector2 from, Vector2 to, Color color, float width=-1.0, bool antialiased=false )

void

canvas_item_add_mesh ( RID item, RID mesh, Transform2D transform=Transform2D(1, 0, 0, 1, 0, 0), Color modulate=Color(1, 1, 1, 1), RID texture=RID() )

void

canvas_item_add_msdf_texture_rect_region ( RID item, Rect2 rect, RID texture, Rect2 src_rect, Color modulate=Color(1, 1, 1, 1), int outline_size=0, float px_range=1.0, float scale=1.0 )

void

canvas_item_add_multiline ( RID item, PackedVector2Array points, PackedColorArray colors, float width=-1.0 )

void

canvas_item_add_multimesh ( RID item, RID mesh, RID texture=RID() )

void

canvas_item_add_nine_patch ( RID item, Rect2 rect, Rect2 source, RID texture, Vector2 topleft, Vector2 bottomright, NinePatchAxisMode x_axis_mode=0, NinePatchAxisMode y_axis_mode=0, bool draw_center=true, Color modulate=Color(1, 1, 1, 1) )

void

canvas_item_add_particles ( RID item, RID particles, RID texture )

void

canvas_item_add_polygon ( RID item, PackedVector2Array points, PackedColorArray colors, PackedVector2Array uvs=PackedVector2Array(), RID texture=RID() )

void

canvas_item_add_polyline ( RID item, PackedVector2Array points, PackedColorArray colors, float width=-1.0, bool antialiased=false )

void

canvas_item_add_primitive ( RID item, PackedVector2Array points, PackedColorArray colors, PackedVector2Array uvs, RID texture )

void

canvas_item_add_rect ( RID item, Rect2 rect, Color color )

void

canvas_item_add_set_transform ( RID item, Transform2D transform )

void

canvas_item_add_texture_rect ( RID item, Rect2 rect, RID texture, bool tile=false, Color modulate=Color(1, 1, 1, 1), bool transpose=false )

void

canvas_item_add_texture_rect_region ( RID item, Rect2 rect, RID texture, Rect2 src_rect, Color modulate=Color(1, 1, 1, 1), bool transpose=false, bool clip_uv=true )

void

canvas_item_add_triangle_array ( RID item, PackedInt32Array indices, PackedVector2Array points, PackedColorArray colors, PackedVector2Array uvs=PackedVector2Array(), PackedInt32Array bones=PackedInt32Array(), PackedFloat32Array weights=PackedFloat32Array(), RID texture=RID(), int count=-1 )

void

canvas_item_clear ( RID item )

RID

canvas_item_create ( )

void

canvas_item_set_canvas_group_mode ( RID item, CanvasGroupMode mode, float clear_margin=5.0, bool fit_empty=false, float fit_margin=0.0, bool blur_mipmaps=false )

void

canvas_item_set_clip ( RID item, bool clip )

void

canvas_item_set_copy_to_backbuffer ( RID item, bool enabled, Rect2 rect )

void

canvas_item_set_custom_rect ( RID item, bool use_custom_rect, Rect2 rect=Rect2(0, 0, 0, 0) )

void

canvas_item_set_default_texture_filter ( RID item, CanvasItemTextureFilter filter )

void

canvas_item_set_default_texture_repeat ( RID item, CanvasItemTextureRepeat repeat )

void

canvas_item_set_distance_field_mode ( RID item, bool enabled )

void

canvas_item_set_draw_behind_parent ( RID item, bool enabled )

void

canvas_item_set_draw_index ( RID item, int index )

void

canvas_item_set_light_mask ( RID item, int mask )

void

canvas_item_set_material ( RID item, RID material )

void

canvas_item_set_modulate ( RID item, Color color )

void

canvas_item_set_parent ( RID item, RID parent )

void

canvas_item_set_self_modulate ( RID item, Color color )

void

canvas_item_set_sort_children_by_y ( RID item, bool enabled )

void

canvas_item_set_transform ( RID item, Transform2D transform )

void

canvas_item_set_use_parent_material ( RID item, bool enabled )

void

canvas_item_set_visibility_layer ( RID item, int visibility_layer )

void

canvas_item_set_visibility_notifier ( RID item, bool enable, Rect2 area, Callable enter_callable, Callable exit_callable )

void

canvas_item_set_visible ( RID item, bool visible )

void

canvas_item_set_z_as_relative_to_parent ( RID item, bool enabled )

void

canvas_item_set_z_index ( RID item, int z_index )

void

canvas_light_attach_to_canvas ( RID light, RID canvas )

RID

canvas_light_create ( )

void

canvas_light_occluder_attach_to_canvas ( RID occluder, RID canvas )

RID

canvas_light_occluder_create ( )

void

canvas_light_occluder_set_as_sdf_collision ( RID occluder, bool enable )

void

canvas_light_occluder_set_enabled ( RID occluder, bool enabled )

void

canvas_light_occluder_set_light_mask ( RID occluder, int mask )

void

canvas_light_occluder_set_polygon ( RID occluder, RID polygon )

void

canvas_light_occluder_set_transform ( RID occluder, Transform2D transform )

void

canvas_light_set_blend_mode ( RID light, CanvasLightBlendMode mode )

void

canvas_light_set_color ( RID light, Color color )

void

canvas_light_set_enabled ( RID light, bool enabled )

void

canvas_light_set_energy ( RID light, float energy )

void

canvas_light_set_height ( RID light, float height )

void

canvas_light_set_item_cull_mask ( RID light, int mask )

void

canvas_light_set_item_shadow_cull_mask ( RID light, int mask )

void

canvas_light_set_layer_range ( RID light, int min_layer, int max_layer )

void

canvas_light_set_mode ( RID light, CanvasLightMode mode )

void

canvas_light_set_shadow_color ( RID light, Color color )

void

canvas_light_set_shadow_enabled ( RID light, bool enabled )

void

canvas_light_set_shadow_filter ( RID light, CanvasLightShadowFilter filter )

void

canvas_light_set_shadow_smooth ( RID light, float smooth )

void

canvas_light_set_texture ( RID light, RID texture )

void

canvas_light_set_texture_offset ( RID light, Vector2 offset )

void

canvas_light_set_texture_scale ( RID light, float scale )

void

canvas_light_set_transform ( RID light, Transform2D transform )

void

canvas_light_set_z_range ( RID light, int min_z, int max_z )

RID

canvas_occluder_polygon_create ( )

void

canvas_occluder_polygon_set_cull_mode ( RID occluder_polygon, CanvasOccluderPolygonCullMode mode )

void

canvas_occluder_polygon_set_shape ( RID occluder_polygon, PackedVector2Array shape, bool closed )

void

canvas_set_disable_scale ( bool disable )

void

canvas_set_item_mirroring ( RID canvas, RID item, Vector2 mirroring )

void

canvas_set_modulate ( RID canvas, Color color )

void

canvas_set_shadow_texture_size ( int size )

RID

canvas_texture_create ( )

void

canvas_texture_set_channel ( RID canvas_texture, CanvasTextureChannel channel, RID texture )

void

canvas_texture_set_shading_parameters ( RID canvas_texture, Color base_color, float shininess )

void

canvas_texture_set_texture_filter ( RID canvas_texture, CanvasItemTextureFilter filter )

void

canvas_texture_set_texture_repeat ( RID canvas_texture, CanvasItemTextureRepeat repeat )

RenderingDevice

create_local_rendering_device ( ) const

RID

decal_create ( )

void

decal_set_albedo_mix ( RID decal, float albedo_mix )

void

decal_set_cull_mask ( RID decal, int mask )

void

decal_set_distance_fade ( RID decal, bool enabled, float begin, float length )

void

decal_set_emission_energy ( RID decal, float energy )

void

decal_set_fade ( RID decal, float above, float below )

void

decal_set_modulate ( RID decal, Color color )

void

decal_set_normal_fade ( RID decal, float fade )

void

decal_set_size ( RID decal, Vector3 size )

void

decal_set_texture ( RID decal, DecalTexture type, RID texture )

void

decals_set_filter ( DecalFilter filter )

RID

directional_light_create ( )

void

directional_shadow_atlas_set_size ( int size, bool is_16bits )

void

directional_soft_shadow_filter_set_quality ( ShadowQuality quality )

Image

environment_bake_panorama ( RID environment, bool bake_irradiance, Vector2i size )

RID

environment_create ( )

void

environment_glow_set_use_bicubic_upscale ( bool enable )

void

environment_set_adjustment ( RID env, bool enable, float brightness, float contrast, float saturation, bool use_1d_color_correction, RID color_correction )

void

environment_set_ambient_light ( RID env, Color color, EnvironmentAmbientSource ambient=0, float energy=1.0, float sky_contibution=0.0, EnvironmentReflectionSource reflection_source=0 )

void

environment_set_background ( RID env, EnvironmentBG bg )

void

environment_set_bg_color ( RID env, Color color )

void

environment_set_bg_energy ( RID env, float multiplier, float exposure_value )

void

environment_set_canvas_max_layer ( RID env, int max_layer )

void

environment_set_fog ( RID env, bool enable, Color light_color, float light_energy, float sun_scatter, float density, float height, float height_density, float aerial_perspective, float sky_affect )

void

environment_set_glow ( RID env, bool enable, PackedFloat32Array levels, float intensity, float strength, float mix, float bloom_threshold, EnvironmentGlowBlendMode blend_mode, float hdr_bleed_threshold, float hdr_bleed_scale, float hdr_luminance_cap, float glow_map_strength, RID glow_map )

void

environment_set_sdfgi ( RID env, bool enable, int cascades, float min_cell_size, EnvironmentSDFGIYScale y_scale, bool use_occlusion, float bounce_feedback, bool read_sky, float energy, float normal_bias, float probe_bias )

void

environment_set_sdfgi_frames_to_converge ( EnvironmentSDFGIFramesToConverge frames )

void

environment_set_sdfgi_frames_to_update_light ( EnvironmentSDFGIFramesToUpdateLight frames )

void

environment_set_sdfgi_ray_count ( EnvironmentSDFGIRayCount ray_count )

void

environment_set_sky ( RID env, RID sky )

void

environment_set_sky_custom_fov ( RID env, float scale )

void

environment_set_sky_orientation ( RID env, Basis orientation )

void

environment_set_ssao ( RID env, bool enable, float radius, float intensity, float power, float detail, float horizon, float sharpness, float light_affect, float ao_channel_affect )

void

environment_set_ssao_quality ( EnvironmentSSAOQuality quality, bool half_size, float adaptive_target, int blur_passes, float fadeout_from, float fadeout_to )

void

environment_set_ssil_quality ( EnvironmentSSILQuality quality, bool half_size, float adaptive_target, int blur_passes, float fadeout_from, float fadeout_to )

void

environment_set_ssr ( RID env, bool enable, int max_steps, float fade_in, float fade_out, float depth_tolerance )

void

environment_set_ssr_roughness_quality ( EnvironmentSSRRoughnessQuality quality )

void

environment_set_tonemap ( RID env, EnvironmentToneMapper tone_mapper, float exposure, float white )

void

environment_set_volumetric_fog ( RID env, bool enable, float density, Color albedo, Color emission, float emission_energy, float anisotropy, float length, float p_detail_spread, float gi_inject, bool temporal_reprojection, float temporal_reprojection_amount, float ambient_inject, float sky_affect )

void

environment_set_volumetric_fog_filter_active ( bool active )

void

environment_set_volumetric_fog_volume_size ( int size, int depth )

RID

fog_volume_create ( )

void

fog_volume_set_material ( RID fog_volume, RID material )

void

fog_volume_set_shape ( RID fog_volume, FogVolumeShape shape )

void

fog_volume_set_size ( RID fog_volume, Vector3 size )

void

force_draw ( bool swap_buffers=true, float frame_step=0.0 )

void

force_sync ( )

void

free_rid ( RID rid )

Color

get_default_clear_color ( )

float

get_frame_setup_time_cpu ( ) const

RenderingDevice

get_rendering_device ( ) const

int

get_rendering_info ( RenderingInfo info )

Dictionary[]

get_shader_parameter_list ( RID shader ) const

RID

get_test_cube ( )

RID

get_test_texture ( )

String

get_video_adapter_api_version ( ) const

String

get_video_adapter_name ( ) const

DeviceType

get_video_adapter_type ( ) const

String

get_video_adapter_vendor ( ) const

RID

get_white_texture ( )

void

gi_set_use_half_resolution ( bool half_resolution )

void

global_shader_parameter_add ( StringName name, GlobalShaderParameterType type, Variant default_value )

Variant

global_shader_parameter_get ( StringName name ) const

StringName[]

global_shader_parameter_get_list ( ) const

GlobalShaderParameterType

global_shader_parameter_get_type ( StringName name ) const

void

global_shader_parameter_remove ( StringName name )

void

global_shader_parameter_set ( StringName name, Variant value )

void

global_shader_parameter_set_override ( StringName name, Variant value )

bool

has_changed ( ) const

bool

has_feature ( Features feature ) const

bool

has_os_feature ( String feature ) const

void

instance_attach_object_instance_id ( RID instance, int id )

void

instance_attach_skeleton ( RID instance, RID skeleton )

RID

instance_create ( )

RID

instance_create2 ( RID base, RID scenario )

Variant

instance_geometry_get_shader_parameter ( RID instance, StringName parameter ) const

Variant

instance_geometry_get_shader_parameter_default_value ( RID instance, StringName parameter ) const

Dictionary[]

instance_geometry_get_shader_parameter_list ( RID instance ) const

void

instance_geometry_set_cast_shadows_setting ( RID instance, ShadowCastingSetting shadow_casting_setting )

void

instance_geometry_set_flag ( RID instance, InstanceFlags flag, bool enabled )

void

instance_geometry_set_lightmap ( RID instance, RID lightmap, Rect2 lightmap_uv_scale, int lightmap_slice )

void

instance_geometry_set_lod_bias ( RID instance, float lod_bias )

void

instance_geometry_set_material_overlay ( RID instance, RID material )

void

instance_geometry_set_material_override ( RID instance, RID material )

void

instance_geometry_set_shader_parameter ( RID instance, StringName parameter, Variant value )

void

instance_geometry_set_transparency ( RID instance, float transparency )

void

instance_geometry_set_visibility_range ( RID instance, float min, float max, float min_margin, float max_margin, VisibilityRangeFadeMode fade_mode )

void

instance_set_base ( RID instance, RID base )

void

instance_set_blend_shape_weight ( RID instance, int shape, float weight )

void

instance_set_custom_aabb ( RID instance, AABB aabb )

void

instance_set_extra_visibility_margin ( RID instance, float margin )

void

instance_set_ignore_culling ( RID instance, bool enabled )

void

instance_set_layer_mask ( RID instance, int mask )

void

instance_set_pivot_data ( RID instance, float sorting_offset, bool use_aabb_center )

void

instance_set_scenario ( RID instance, RID scenario )

void

instance_set_surface_override_material ( RID instance, int surface, RID material )

void

instance_set_transform ( RID instance, Transform3D transform )

void

instance_set_visibility_parent ( RID instance, RID parent )

void

instance_set_visible ( RID instance, bool visible )

PackedInt64Array

instances_cull_aabb ( AABB aabb, RID scenario=RID() ) const

PackedInt64Array

instances_cull_convex ( Plane[] convex, RID scenario=RID() ) const

PackedInt64Array

instances_cull_ray ( Vector3 from, Vector3 to, RID scenario=RID() ) const

void

light_directional_set_blend_splits ( RID light, bool enable )

void

light_directional_set_shadow_mode ( RID light, LightDirectionalShadowMode mode )

void

light_directional_set_sky_mode ( RID light, LightDirectionalSkyMode mode )

void

light_omni_set_shadow_mode ( RID light, LightOmniShadowMode mode )

void

light_projectors_set_filter ( LightProjectorFilter filter )

void

light_set_bake_mode ( RID light, LightBakeMode bake_mode )

void

light_set_color ( RID light, Color color )

void

light_set_cull_mask ( RID light, int mask )

void

light_set_distance_fade ( RID decal, bool enabled, float begin, float shadow, float length )

void

light_set_max_sdfgi_cascade ( RID light, int cascade )

void

light_set_negative ( RID light, bool enable )

void

light_set_param ( RID light, LightParam param, float value )

void

light_set_projector ( RID light, RID texture )

void

light_set_reverse_cull_face_mode ( RID light, bool enabled )

void

light_set_shadow ( RID light, bool enabled )

RID

lightmap_create ( )

PackedInt32Array

lightmap_get_probe_capture_bsp_tree ( RID lightmap ) const

PackedVector3Array

lightmap_get_probe_capture_points ( RID lightmap ) const

PackedColorArray

lightmap_get_probe_capture_sh ( RID lightmap ) const

PackedInt32Array

lightmap_get_probe_capture_tetrahedra ( RID lightmap ) const

void

lightmap_set_baked_exposure_normalization ( RID lightmap, float baked_exposure )

void

lightmap_set_probe_bounds ( RID lightmap, AABB bounds )

void

lightmap_set_probe_capture_data ( RID lightmap, PackedVector3Array points, PackedColorArray point_sh, PackedInt32Array tetrahedra, PackedInt32Array bsp_tree )

void

lightmap_set_probe_capture_update_speed ( float speed )

void

lightmap_set_probe_interior ( RID lightmap, bool interior )

void

lightmap_set_textures ( RID lightmap, RID light, bool uses_sh )

RID

make_sphere_mesh ( int latitudes, int longitudes, float radius )

RID

material_create ( )

Variant

material_get_param ( RID material, StringName parameter ) const

void

material_set_next_pass ( RID material, RID next_material )

void

material_set_param ( RID material, StringName parameter, Variant value )

void

material_set_render_priority ( RID material, int priority )

void

material_set_shader ( RID shader_material, RID shader )

void

mesh_add_surface ( RID mesh, Dictionary surface )

void

mesh_add_surface_from_arrays ( RID mesh, PrimitiveType primitive, Array arrays, Array blend_shapes=[], Dictionary lods={}, BitField<ArrayFormat> compress_format=0 )

void

mesh_clear ( RID mesh )

RID

mesh_create ( )

RID

mesh_create_from_surfaces ( Dictionary[] surfaces, int blend_shape_count=0 )

int

mesh_get_blend_shape_count ( RID mesh ) const

BlendShapeMode

mesh_get_blend_shape_mode ( RID mesh ) const

AABB

mesh_get_custom_aabb ( RID mesh ) const

Dictionary

mesh_get_surface ( RID mesh, int surface )

int

mesh_get_surface_count ( RID mesh ) const

void

mesh_set_blend_shape_mode ( RID mesh, BlendShapeMode mode )

void

mesh_set_custom_aabb ( RID mesh, AABB aabb )

void

mesh_set_shadow_mesh ( RID mesh, RID shadow_mesh )

Array

mesh_surface_get_arrays ( RID mesh, int surface ) const

Array[]

mesh_surface_get_blend_shape_arrays ( RID mesh, int surface ) const

int

mesh_surface_get_format_attribute_stride ( BitField<ArrayFormat> format, int vertex_count ) const

int

mesh_surface_get_format_normal_tangent_stride ( BitField<ArrayFormat> format, int vertex_count ) const

int

mesh_surface_get_format_offset ( BitField<ArrayFormat> format, int vertex_count, int array_index ) const

int

mesh_surface_get_format_skin_stride ( BitField<ArrayFormat> format, int vertex_count ) const

int

mesh_surface_get_format_vertex_stride ( BitField<ArrayFormat> format, int vertex_count ) const

RID

mesh_surface_get_material ( RID mesh, int surface ) const

void

mesh_surface_set_material ( RID mesh, int surface, RID material )

void

mesh_surface_update_attribute_region ( RID mesh, int surface, int offset, PackedByteArray data )

void

mesh_surface_update_skin_region ( RID mesh, int surface, int offset, PackedByteArray data )

void

mesh_surface_update_vertex_region ( RID mesh, int surface, int offset, PackedByteArray data )

void

multimesh_allocate_data ( RID multimesh, int instances, MultimeshTransformFormat transform_format, bool color_format=false, bool custom_data_format=false )

RID

multimesh_create ( )

AABB

multimesh_get_aabb ( RID multimesh ) const

PackedFloat32Array

multimesh_get_buffer ( RID multimesh ) const

int

multimesh_get_instance_count ( RID multimesh ) const

RID

multimesh_get_mesh ( RID multimesh ) const

int

multimesh_get_visible_instances ( RID multimesh ) const

Color

multimesh_instance_get_color ( RID multimesh, int index ) const

Color

multimesh_instance_get_custom_data ( RID multimesh, int index ) const

Transform3D

multimesh_instance_get_transform ( RID multimesh, int index ) const

Transform2D

multimesh_instance_get_transform_2d ( RID multimesh, int index ) const

void

multimesh_instance_set_color ( RID multimesh, int index, Color color )

void

multimesh_instance_set_custom_data ( RID multimesh, int index, Color custom_data )

void

multimesh_instance_set_transform ( RID multimesh, int index, Transform3D transform )

void

multimesh_instance_set_transform_2d ( RID multimesh, int index, Transform2D transform )

void

multimesh_set_buffer ( RID multimesh, PackedFloat32Array buffer )

void

multimesh_set_mesh ( RID multimesh, RID mesh )

void

multimesh_set_visible_instances ( RID multimesh, int visible )

RID

occluder_create ( )

void

occluder_set_mesh ( RID occluder, PackedVector3Array vertices, PackedInt32Array indices )

RID

omni_light_create ( )

RID

particles_collision_create ( )

void

particles_collision_height_field_update ( RID particles_collision )

void

particles_collision_set_attractor_attenuation ( RID particles_collision, float curve )

void

particles_collision_set_attractor_directionality ( RID particles_collision, float amount )

void

particles_collision_set_attractor_strength ( RID particles_collision, float strength )

void

particles_collision_set_box_extents ( RID particles_collision, Vector3 extents )

void

particles_collision_set_collision_type ( RID particles_collision, ParticlesCollisionType type )

void

particles_collision_set_cull_mask ( RID particles_collision, int mask )

void

particles_collision_set_field_texture ( RID particles_collision, RID texture )

void

particles_collision_set_height_field_resolution ( RID particles_collision, ParticlesCollisionHeightfieldResolution resolution )

void

particles_collision_set_sphere_radius ( RID particles_collision, float radius )

RID

particles_create ( )

void

particles_emit ( RID particles, Transform3D transform, Vector3 velocity, Color color, Color custom, int emit_flags )

AABB

particles_get_current_aabb ( RID particles )

bool

particles_get_emitting ( RID particles )

bool

particles_is_inactive ( RID particles )

void

particles_request_process ( RID particles )

void

particles_restart ( RID particles )

void

particles_set_amount ( RID particles, int amount )

void

particles_set_amount_ratio ( RID particles, float ratio )

void

particles_set_collision_base_size ( RID particles, float size )

void

particles_set_custom_aabb ( RID particles, AABB aabb )

void

particles_set_draw_order ( RID particles, ParticlesDrawOrder order )

void

particles_set_draw_pass_mesh ( RID particles, int pass, RID mesh )

void

particles_set_draw_passes ( RID particles, int count )

void

particles_set_emission_transform ( RID particles, Transform3D transform )

void

particles_set_emitter_velocity ( RID particles, Vector3 velocity )

void

particles_set_emitting ( RID particles, bool emitting )

void

particles_set_explosiveness_ratio ( RID particles, float ratio )

void

particles_set_fixed_fps ( RID particles, int fps )

void

particles_set_fractional_delta ( RID particles, bool enable )

void

particles_set_interp_to_end ( RID particles, float factor )

void

particles_set_interpolate ( RID particles, bool enable )

void

particles_set_lifetime ( RID particles, float lifetime )

void

particles_set_mode ( RID particles, ParticlesMode mode )

void

particles_set_one_shot ( RID particles, bool one_shot )

void

particles_set_pre_process_time ( RID particles, float time )

void

particles_set_process_material ( RID particles, RID material )

void

particles_set_randomness_ratio ( RID particles, float ratio )

void

particles_set_speed_scale ( RID particles, float scale )

void

particles_set_subemitter ( RID particles, RID subemitter_particles )

void

particles_set_trail_bind_poses ( RID particles, Transform3D[] bind_poses )

void

particles_set_trails ( RID particles, bool enable, float length_sec )

void

particles_set_transform_align ( RID particles, ParticlesTransformAlign align )

void

particles_set_use_local_coordinates ( RID particles, bool enable )

void

positional_soft_shadow_filter_set_quality ( ShadowQuality quality )

RID

reflection_probe_create ( )

void

reflection_probe_set_ambient_color ( RID probe, Color color )

void

reflection_probe_set_ambient_energy ( RID probe, float energy )

void

reflection_probe_set_ambient_mode ( RID probe, ReflectionProbeAmbientMode mode )

void

reflection_probe_set_as_interior ( RID probe, bool enable )

void

reflection_probe_set_cull_mask ( RID probe, int layers )

void

reflection_probe_set_enable_box_projection ( RID probe, bool enable )

void

reflection_probe_set_enable_shadows ( RID probe, bool enable )

void

reflection_probe_set_intensity ( RID probe, float intensity )

void

reflection_probe_set_max_distance ( RID probe, float distance )

void

reflection_probe_set_mesh_lod_threshold ( RID probe, float pixels )

void

reflection_probe_set_origin_offset ( RID probe, Vector3 offset )

void

reflection_probe_set_resolution ( RID probe, int resolution )

void

reflection_probe_set_size ( RID probe, Vector3 size )

void

reflection_probe_set_update_mode ( RID probe, ReflectionProbeUpdateMode mode )

void

request_frame_drawn_callback ( Callable callable )

RID

scenario_create ( )

void

scenario_set_camera_attributes ( RID scenario, RID effects )

void

scenario_set_environment ( RID scenario, RID environment )

void

scenario_set_fallback_environment ( RID scenario, RID environment )

void

screen_space_roughness_limiter_set_active ( bool enable, float amount, float limit )

void

set_boot_image ( Image image, Color color, bool scale, bool use_filter=true )

void

set_debug_generate_wireframes ( bool generate )

void

set_default_clear_color ( Color color )

RID

shader_create ( )

String

shader_get_code ( RID shader ) const

RID

shader_get_default_texture_parameter ( RID shader, StringName name, int index=0 ) const

Variant

shader_get_parameter_default ( RID shader, StringName name ) const

void

shader_set_code ( RID shader, String code )

void

shader_set_default_texture_parameter ( RID shader, StringName name, RID texture, int index=0 )

void

shader_set_path_hint ( RID shader, String path )

void

skeleton_allocate_data ( RID skeleton, int bones, bool is_2d_skeleton=false )

Transform3D

skeleton_bone_get_transform ( RID skeleton, int bone ) const

Transform2D

skeleton_bone_get_transform_2d ( RID skeleton, int bone ) const

void

skeleton_bone_set_transform ( RID skeleton, int bone, Transform3D transform )

void

skeleton_bone_set_transform_2d ( RID skeleton, int bone, Transform2D transform )

RID

skeleton_create ( )

int

skeleton_get_bone_count ( RID skeleton ) const

void

skeleton_set_base_transform_2d ( RID skeleton, Transform2D base_transform )

Image

sky_bake_panorama ( RID sky, float energy, bool bake_irradiance, Vector2i size )

RID

sky_create ( )

void

sky_set_material ( RID sky, RID material )

void

sky_set_mode ( RID sky, SkyMode mode )

void

sky_set_radiance_size ( RID sky, int radiance_size )

RID

spot_light_create ( )

void

sub_surface_scattering_set_quality ( SubSurfaceScatteringQuality quality )

void

sub_surface_scattering_set_scale ( float scale, float depth_scale )

RID

texture_2d_create ( Image image )

Image

texture_2d_get ( RID texture ) const

Image

texture_2d_layer_get ( RID texture, int layer ) const

RID

texture_2d_layered_create ( Image[] layers, TextureLayeredType layered_type )

RID

texture_2d_layered_placeholder_create ( TextureLayeredType layered_type )

RID

texture_2d_placeholder_create ( )

void

texture_2d_update ( RID texture, Image image, int layer )

RID

texture_3d_create ( Format format, int width, int height, int depth, bool mipmaps, Image[] data )

Image[]

texture_3d_get ( RID texture ) const

RID

texture_3d_placeholder_create ( )

void

texture_3d_update ( RID texture, Image[] data )

Format

texture_get_format ( RID texture ) const

int

texture_get_native_handle ( RID texture, bool srgb=false ) const

String

texture_get_path ( RID texture ) const

RID

texture_get_rd_texture ( RID texture, bool srgb=false ) const

RID

texture_proxy_create ( RID base )

void

texture_proxy_update ( RID texture, RID proxy_to )

RID

texture_rd_create ( RID rd_texture, TextureLayeredType layer_type=0 )

void

texture_replace ( RID texture, RID by_texture )

void

texture_set_force_redraw_if_visible ( RID texture, bool enable )

void

texture_set_path ( RID texture, String path )

void

texture_set_size_override ( RID texture, int width, int height )

void

viewport_attach_camera ( RID viewport, RID camera )

void

viewport_attach_canvas ( RID viewport, RID canvas )

void

viewport_attach_to_screen ( RID viewport, Rect2 rect=Rect2(0, 0, 0, 0), int screen=0 )

RID

viewport_create ( )

float

viewport_get_measured_render_time_cpu ( RID viewport ) const

float

viewport_get_measured_render_time_gpu ( RID viewport ) const

int

viewport_get_render_info ( RID viewport, ViewportRenderInfoType type, ViewportRenderInfo info )

RID

viewport_get_render_target ( RID viewport ) const

RID

viewport_get_texture ( RID viewport ) const

void

viewport_remove_canvas ( RID viewport, RID canvas )

void

viewport_set_active ( RID viewport, bool active )

void

viewport_set_canvas_cull_mask ( RID viewport, int canvas_cull_mask )

void

viewport_set_canvas_stacking ( RID viewport, RID canvas, int layer, int sublayer )

void

viewport_set_canvas_transform ( RID viewport, RID canvas, Transform2D offset )

void

viewport_set_clear_mode ( RID viewport, ViewportClearMode clear_mode )

void

viewport_set_debug_draw ( RID viewport, ViewportDebugDraw draw )

void

viewport_set_default_canvas_item_texture_filter ( RID viewport, CanvasItemTextureFilter filter )

void

viewport_set_default_canvas_item_texture_repeat ( RID viewport, CanvasItemTextureRepeat repeat )

void

viewport_set_disable_2d ( RID viewport, bool disable )

void

viewport_set_disable_3d ( RID viewport, bool disable )

void

viewport_set_environment_mode ( RID viewport, ViewportEnvironmentMode mode )

void

viewport_set_fsr_sharpness ( RID viewport, float sharpness )

void

viewport_set_global_canvas_transform ( RID viewport, Transform2D transform )

void

viewport_set_measure_render_time ( RID viewport, bool enable )

void

viewport_set_msaa_2d ( RID viewport, ViewportMSAA msaa )

void

viewport_set_msaa_3d ( RID viewport, ViewportMSAA msaa )

void

viewport_set_occlusion_culling_build_quality ( ViewportOcclusionCullingBuildQuality quality )

void

viewport_set_occlusion_rays_per_thread ( int rays_per_thread )

void

viewport_set_parent_viewport ( RID viewport, RID parent_viewport )

void

viewport_set_positional_shadow_atlas_quadrant_subdivision ( RID viewport, int quadrant, int subdivision )

void

viewport_set_positional_shadow_atlas_size ( RID viewport, int size, bool use_16_bits=false )

void

viewport_set_render_direct_to_screen ( RID viewport, bool enabled )

void

viewport_set_scaling_3d_mode ( RID viewport, ViewportScaling3DMode scaling_3d_mode )

void

viewport_set_scaling_3d_scale ( RID viewport, float scale )

void

viewport_set_scenario ( RID viewport, RID scenario )

void

viewport_set_screen_space_aa ( RID viewport, ViewportScreenSpaceAA mode )

void

viewport_set_sdf_oversize_and_scale ( RID viewport, ViewportSDFOversize oversize, ViewportSDFScale scale )

void

viewport_set_size ( RID viewport, int width, int height )

void

viewport_set_snap_2d_transforms_to_pixel ( RID viewport, bool enabled )

void

viewport_set_snap_2d_vertices_to_pixel ( RID viewport, bool enabled )

void

viewport_set_texture_mipmap_bias ( RID viewport, float mipmap_bias )

void

viewport_set_transparent_background ( RID viewport, bool enabled )

void

viewport_set_update_mode ( RID viewport, ViewportUpdateMode update_mode )

void

viewport_set_use_debanding ( RID viewport, bool enable )

void

viewport_set_use_hdr_2d ( RID viewport, bool enabled )

void

viewport_set_use_occlusion_culling ( RID viewport, bool enable )

void

viewport_set_use_taa ( RID viewport, bool enable )

void

viewport_set_use_xr ( RID viewport, bool use_xr )

void

viewport_set_vrs_mode ( RID viewport, ViewportVRSMode mode )

void

viewport_set_vrs_texture ( RID viewport, RID texture )

RID

visibility_notifier_create ( )

void

visibility_notifier_set_aabb ( RID notifier, AABB aabb )

void

visibility_notifier_set_callbacks ( RID notifier, Callable enter_callable, Callable exit_callable )

void

voxel_gi_allocate_data ( RID voxel_gi, Transform3D to_cell_xform, AABB aabb, Vector3i octree_size, PackedByteArray octree_cells, PackedByteArray data_cells, PackedByteArray distance_field, PackedInt32Array level_counts )

RID

voxel_gi_create ( )

PackedByteArray

voxel_gi_get_data_cells ( RID voxel_gi ) const

PackedByteArray

voxel_gi_get_distance_field ( RID voxel_gi ) const

PackedInt32Array

voxel_gi_get_level_counts ( RID voxel_gi ) const

PackedByteArray

voxel_gi_get_octree_cells ( RID voxel_gi ) const

Vector3i

voxel_gi_get_octree_size ( RID voxel_gi ) const

Transform3D

voxel_gi_get_to_cell_xform ( RID voxel_gi ) const

void

voxel_gi_set_baked_exposure_normalization ( RID voxel_gi, float baked_exposure )

void

voxel_gi_set_bias ( RID voxel_gi, float bias )

void

voxel_gi_set_dynamic_range ( RID voxel_gi, float range )

void

voxel_gi_set_energy ( RID voxel_gi, float energy )

void

voxel_gi_set_interior ( RID voxel_gi, bool enable )

void

voxel_gi_set_normal_bias ( RID voxel_gi, float bias )

void

voxel_gi_set_propagation ( RID voxel_gi, float amount )

void

voxel_gi_set_quality ( VoxelGIQuality quality )

void

voxel_gi_set_use_two_bounces ( RID voxel_gi, bool enable )


信号

frame_post_draw ( )

在该帧的结尾发出,此时 RenderingServer 刚刚完成对所有 Viewport 的更新。


frame_pre_draw ( )

在该帧的开头发出,此后 RenderingServer 会更新所有 Viewport。


枚举

enum TextureLayeredType:

TextureLayeredType TEXTURE_LAYERED_2D_ARRAY = 0

二维纹理数组(见 Texture2DArray)。

TextureLayeredType TEXTURE_LAYERED_CUBEMAP = 1

立方体贴图纹理(见 Cubemap)。

TextureLayeredType TEXTURE_LAYERED_CUBEMAP_ARRAY = 2

立方体贴图纹理数组(见 CubemapArray)。


enum CubeMapLayer:

CubeMapLayer CUBEMAP_LAYER_LEFT = 0

Cubemap 的左面。

CubeMapLayer CUBEMAP_LAYER_RIGHT = 1

Cubemap 的右面。

CubeMapLayer CUBEMAP_LAYER_BOTTOM = 2

Cubemap 的底面。

CubeMapLayer CUBEMAP_LAYER_TOP = 3

Cubemap 的顶面。

CubeMapLayer CUBEMAP_LAYER_FRONT = 4

Cubemap 的正面。

CubeMapLayer CUBEMAP_LAYER_BACK = 5

Cubemap 的背面。


enum ShaderMode:

ShaderMode SHADER_SPATIAL = 0

着色器是 3D 着色器。

ShaderMode SHADER_CANVAS_ITEM = 1

着色器是 2D 着色器。

ShaderMode SHADER_PARTICLES = 2

着色器是粒子着色器(2D 和 3D 均可使用)。

ShaderMode SHADER_SKY = 3

着色器是 3D 天空着色器。

ShaderMode SHADER_FOG = 4

着色器是 3D 雾着色器。

ShaderMode SHADER_MAX = 5

代表 ShaderMode 枚举的大小。


enum ArrayType:

ArrayType ARRAY_VERTEX = 0

数组是顶点位置数组。

ArrayType ARRAY_NORMAL = 1

数组是法线数组。

ArrayType ARRAY_TANGENT = 2

数组是切线数组。

ArrayType ARRAY_COLOR = 3

数组是顶点颜色数组。

ArrayType ARRAY_TEX_UV = 4

数组是 UV 坐标数组。

ArrayType ARRAY_TEX_UV2 = 5

数组是第二组 UV 坐标的 UV 坐标数组。

ArrayType ARRAY_CUSTOM0 = 6

数组是第一组自定义数据的自定义数据数组。

ArrayType ARRAY_CUSTOM1 = 7

数组是第二组自定义数据的自定义数据数组。

ArrayType ARRAY_CUSTOM2 = 8

数组是第三组自定义数据的自定义数据数组。

ArrayType ARRAY_CUSTOM3 = 9

数组是第四组自定义数据的自定义数据数组。

ArrayType ARRAY_BONES = 10

数组包含骨骼信息。

ArrayType ARRAY_WEIGHTS = 11

数组是重量信息。

ArrayType ARRAY_INDEX = 12

数组是索引数组。

ArrayType ARRAY_MAX = 13

代表 ArrayType 枚举的大小。


enum ArrayCustomFormat:

ArrayCustomFormat ARRAY_CUSTOM_RGBA8_UNORM = 0

自定义数据数组包含的是每通道 8 位的红、绿、蓝、Alpha 颜色数据。元素经过归一化,是 [0.0, 1.0] 范围内的无符号浮点数。

ArrayCustomFormat ARRAY_CUSTOM_RGBA8_SNORM = 1

自定义数据数组包含的是每通道 8 位的红、绿、蓝、Alpha 颜色数据。元素经过归一化,是 [0.0, 1.0] 范围内的带符号浮点数。

ArrayCustomFormat ARRAY_CUSTOM_RG_HALF = 2

自定义数据数组包含的是每通道 16 位的红、绿、蓝颜色数据。元素为半精度浮点数。

ArrayCustomFormat ARRAY_CUSTOM_RGBA_HALF = 3

自定义数据数组包含的是每通道 16 位的红、绿、蓝、Alpha 颜色数据。元素为半精度浮点数。

ArrayCustomFormat ARRAY_CUSTOM_R_FLOAT = 4

自定义数据数组包含的是每通道 32 位的红色数据。元素为单精度浮点数。

ArrayCustomFormat ARRAY_CUSTOM_RG_FLOAT = 5

自定义数据数组包含的是每通道 32 位的红、绿颜色数据。元素为单精度浮点数。

ArrayCustomFormat ARRAY_CUSTOM_RGB_FLOAT = 6

自定义数据数组包含的是每通道 32 位的红、绿、蓝颜色数据。元素为单精度浮点数。

ArrayCustomFormat ARRAY_CUSTOM_RGBA_FLOAT = 7

自定义数据数组包含的是每通道 32 位的红、绿、蓝、Alpha 颜色数据。元素为单精度浮点数。

ArrayCustomFormat ARRAY_CUSTOM_MAX = 8

代表 ArrayCustomFormat 枚举的大小。


flags ArrayFormat:

ArrayFormat ARRAY_FORMAT_VERTEX = 1

用于标记顶点位置数组的标志。

ArrayFormat ARRAY_FORMAT_NORMAL = 2

用于标记法线数组的标志。

ArrayFormat ARRAY_FORMAT_TANGENT = 4

用于标记切线数组的标志。

ArrayFormat ARRAY_FORMAT_COLOR = 8

用于标记顶点颜色数组的标志。

ArrayFormat ARRAY_FORMAT_TEX_UV = 16

用于标记 UV 坐标数组的标志。

ArrayFormat ARRAY_FORMAT_TEX_UV2 = 32

用于标记第二个 UV 坐标的 UV 坐标数组的标志。

ArrayFormat ARRAY_FORMAT_CUSTOM0 = 64

用于标记第一组自定义数据的自定义顶点数据数组的标志。

ArrayFormat ARRAY_FORMAT_CUSTOM1 = 128

用于标记第二组自定义数据的自定义顶点数据数组的标志。

ArrayFormat ARRAY_FORMAT_CUSTOM2 = 256

用于标记第三组自定义数据的自定义顶点数据数组的标志。

ArrayFormat ARRAY_FORMAT_CUSTOM3 = 512

用于标记第四组自定义数据的自定义顶点数据数组的标志。

ArrayFormat ARRAY_FORMAT_BONES = 1024

用来标记骨骼信息数组的标志。

ArrayFormat ARRAY_FORMAT_WEIGHTS = 2048

用于标记重量数组的标记。

ArrayFormat ARRAY_FORMAT_INDEX = 4096

用于标记索引数组的标志。

ArrayFormat ARRAY_FORMAT_BLEND_SHAPE_MASK = 7

ArrayFormat ARRAY_FORMAT_CUSTOM_BASE = 13

ArrayFormat ARRAY_FORMAT_CUSTOM_BITS = 3

ArrayFormat ARRAY_FORMAT_CUSTOM0_SHIFT = 13

ArrayFormat ARRAY_FORMAT_CUSTOM1_SHIFT = 16

ArrayFormat ARRAY_FORMAT_CUSTOM2_SHIFT = 19

ArrayFormat ARRAY_FORMAT_CUSTOM3_SHIFT = 22

ArrayFormat ARRAY_FORMAT_CUSTOM_MASK = 7

ArrayFormat ARRAY_COMPRESS_FLAGS_BASE = 25

ArrayFormat ARRAY_FLAG_USE_2D_VERTICES = 33554432

用于标记包含 2D 顶点的数组的标志。

ArrayFormat ARRAY_FLAG_USE_DYNAMIC_UPDATE = 67108864

ArrayFormat ARRAY_FLAG_USE_8_BONE_WEIGHTS = 134217728

用于标记数组使用 8 个骨骼权重而不是 4 个的标志。

ArrayFormat ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = 268435456

用于标记网格没有顶点数组,而是使用索引和其他信息推断着色器中的顶点位置的标志。

ArrayFormat ARRAY_FLAG_COMPRESS_ATTRIBUTES = 536870912

用于标记网格正在使用的压缩的属性(顶点、法线、切线、UV)的标志。启用这种形式的压缩后,顶点位置将被打包到 RGBA16UNORM 属性中,并在顶点着色器中进行缩放。法线和切线将被打包到表示一个轴的 RG16UNORM 中,并在顶点的 A 通道中存储一个 16 位浮点数。UV 将使用 16 位标准化浮点数而不是完整的 32 位有符号浮点数。使用该压缩模式时,必须使用顶点、法线、和切线或仅使用顶点。你无法使用没有切线的法线。如果可以的话,导入器将自动启用这种压缩。

ArrayFormat ARRAY_FLAG_FORMAT_VERSION_BASE = 35

用于标记被用于存储网格版本的位的起始的标志。

ArrayFormat ARRAY_FLAG_FORMAT_VERSION_SHIFT = 35

用于移动网格格式 int,以将版本带入最低位的标志。

ArrayFormat ARRAY_FLAG_FORMAT_VERSION_1 = 0

用于记录版本引入之前先前网格版本所使用的格式的标志。

ArrayFormat ARRAY_FLAG_FORMAT_VERSION_2 = 34359738368

用于记录第二次迭代的网格版本标志的标志。该版本与 ARRAY_FLAG_FORMAT_VERSION_1 之间的主要区别在于,该版本支持 ARRAY_FLAG_COMPRESS_ATTRIBUTES,并且在该版本中,顶点位置与法线和切线去交错。

ArrayFormat ARRAY_FLAG_FORMAT_CURRENT_VERSION = 34359738368

用于记录引擎期望的当前版本的标志。目前这与 ARRAY_FLAG_FORMAT_VERSION_2 相同。

ArrayFormat ARRAY_FLAG_FORMAT_VERSION_MASK = 255

使用 ARRAY_FLAG_FORMAT_VERSION_SHIFT 将用于网格版本的位转移到位后,用于隔离这些位的标志。


enum PrimitiveType:

PrimitiveType PRIMITIVE_POINTS = 0

绘制的图元由点组成。

PrimitiveType PRIMITIVE_LINES = 1

绘制的图元由线组成。

PrimitiveType PRIMITIVE_LINE_STRIP = 2

绘制的图元由单条线带组成。

PrimitiveType PRIMITIVE_TRIANGLES = 3

绘制的图元由三角形组成。

PrimitiveType PRIMITIVE_TRIANGLE_STRIP = 4

绘制的图元由单条三角形带组成(最后 3 个顶点总是会构成三角形)。

PrimitiveType PRIMITIVE_MAX = 5

代表 PrimitiveType 枚举的大小。


enum BlendShapeMode:

BlendShapeMode BLEND_SHAPE_MODE_NORMALIZED = 0

混合形状是被归一化了的。

BlendShapeMode BLEND_SHAPE_MODE_RELATIVE = 1

混合形状是相对于基础的权重。


enum MultimeshTransformFormat:

MultimeshTransformFormat MULTIMESH_TRANSFORM_2D = 0

使用 Transform2D 存储 MultiMesh 变换。

MultimeshTransformFormat MULTIMESH_TRANSFORM_3D = 1

使用 Transform3D 存储 MultiMesh 变换。


enum LightProjectorFilter:

LightProjectorFilter LIGHT_PROJECTOR_FILTER_NEAREST = 0

光线投射器的最近邻过滤(用于像素风光线投射器)。渲染时不使用 mipmap,这意味着较远处的光线投射器看上去会很锐利,但会有颗粒状的图案。与使用 mipmap 的性能开销大致相同。

LightProjectorFilter LIGHT_PROJECTOR_FILTER_LINEAR = 1

光线投射器的线性过滤(用于非像素风光线投射器)。渲染时不使用 mipmap,这意味着较远处的光线投射器看上去会很平滑,但会有模糊的效果。与使用 mipmap 的性能开销大致相同。

LightProjectorFilter LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS = 2

光线投射器的最近邻过滤(用于像素风光线投射器)。渲染时使用各向同性的 mipmap,这意味着较远处的光线投射器看上去会很平滑,但会有模糊的效果。与不使用 mipmap 的性能开销大致相同。

LightProjectorFilter LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS = 3

光线投射器的线性过滤(用于非像素风光线投射器)。渲染时使用各向同性的 mipmap,这意味着较远处的光线投射器看上去会很平滑,但会有模糊的效果。与不使用 mipmap 的性能开销大致相同。

LightProjectorFilter LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC = 4

光线投射器的最近邻过滤(用于像素风光线投射器)。渲染时使用各向异性的 mipmap,这意味着光线投射器从斜角度观察会既平滑又锐利。比各向同性的 mipmap 更好看,但也更慢。各向异性的级别由 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level 定义。

LightProjectorFilter LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC = 5

光线投射器的线性过滤(用于非像素风光线投射器)。渲染时使用各向异性的 mipmap,这意味着光线投射器从斜角度观察会既平滑又锐利。比各向同性的 mipmap 更好看,但也更慢。各向异性的级别由 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level 定义。


enum LightType:

LightType LIGHT_DIRECTIONAL = 0

方向(太阳/月亮)灯(见 DirectionalLight3D)。

LightType LIGHT_OMNI = 1

全向灯(见 OmniLight3D)。

LightType LIGHT_SPOT = 2

聚光灯(见 SpotLight3D)。


enum LightParam:

LightParam LIGHT_PARAM_ENERGY = 0

该灯光的能量倍数。

LightParam LIGHT_PARAM_INDIRECT_ENERGY = 1

该灯光的间接能量倍数(最终的间接能量为 LIGHT_PARAM_ENERGY * LIGHT_PARAM_INDIRECT_ENERGY)。

LightParam LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY = 2

该灯光的体积雾能量倍数(最终的体积雾能量为 LIGHT_PARAM_ENERGY * LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY)。

LightParam LIGHT_PARAM_SPECULAR = 3

灯光对镜面反射的影响。

LightParam LIGHT_PARAM_RANGE = 4

灯光的范围。

LightParam LIGHT_PARAM_SIZE = 5

使用聚光灯或全向灯时的灯光大小。使用定向光时是光的角度大小。

LightParam LIGHT_PARAM_ATTENUATION = 6

光线的衰减。

LightParam LIGHT_PARAM_SPOT_ANGLE = 7

聚光灯的角度。

LightParam LIGHT_PARAM_SPOT_ATTENUATION = 8

聚光灯的衰减。

LightParam LIGHT_PARAM_SHADOW_MAX_DISTANCE = 9

阴影分割的最大距离。将这个值增大会让定向阴影在更远处可见,代价是整体的阴影细节降低和性能(因为渲染定向阴影时需要包含更多的物体)。

LightParam LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET = 10

第一次拆分所占据的阴影图集的比例。

LightParam LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET = 11

第二次拆分所占用的阴影图集的比例。

LightParam LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET = 12

第三次拆分所占用的阴影图集的比例。第四个拆分占据了其余部分。

LightParam LIGHT_PARAM_SHADOW_FADE_START = 13

阴影将开始淡出的阴影最大距离的比例。

LightParam LIGHT_PARAM_SHADOW_NORMAL_BIAS = 14

法线偏置,用于抵消物体法线的阴影查找。可以用来修复自阴影的伪影。

LightParam LIGHT_PARAM_SHADOW_BIAS = 15

对阴影查找进行偏置,以修复自我阴影的假象。

LightParam LIGHT_PARAM_SHADOW_PANCAKE_SIZE = 16

设置定向阴影圆斑的大小。该圆斑偏移了阴影的相机视锥体的起点,为阴影提供更高的有效深度分辨率。但是,较大的圆斑大小会导致靠近视锥体边缘的大型物体的阴影出现伪影。减少该圆斑的大小会有所帮助。将大小设置为 0 会关闭该圆斑效果。

LightParam LIGHT_PARAM_SHADOW_OPACITY = 17

灯光的阴影不透明度。低于 1.0 的值会使光线透过阴影出现。这可以用于以较低的性能成本伪造全局照明。

LightParam LIGHT_PARAM_SHADOW_BLUR = 18

模糊阴影的边缘。可用于隐藏低分辨率阴影贴图中的像素伪影。较高的值会使阴影显得粗糙,并可能导致其他不需要的伪影。尽量保持接近默认值。

LightParam LIGHT_PARAM_TRANSMITTANCE_BIAS = 19

LightParam LIGHT_PARAM_INTENSITY = 20

代表灯光强度的常量,SpotLight3DOmniLight3D 的单位为流明,DirectionalLight3D 的单位为勒克斯。仅在 ProjectSettings.rendering/lights_and_shadows/use_physical_light_unitstrue 时使用。

LightParam LIGHT_PARAM_MAX = 21

代表 LightParam 枚举的大小。


enum LightBakeMode:

LightBakeMode LIGHT_BAKE_DISABLED = 0

烘焙时灯光将被忽略。这是最快的模式,但是在烘焙全局照明时仍会考虑该灯光。该模式通常应用于快速变化的动态灯光,因为全局照明的效果在这些灯光上不太明显。

LightBakeMode LIGHT_BAKE_STATIC = 1

在静态烘焙(VoxelGILightmapGI、SDFGI(Environment.sdfgi_enabled))时,考虑了灯光。灯光可以四处移动或修改,但其全局照明不会实时更新。这适用于细微的变化(例如闪烁的手电筒),但通常不适用于大的变化,例如打开和关闭灯光。

LightBakeMode LIGHT_BAKE_DYNAMIC = 2

动态烘焙时考虑灯光(仅 VoxelGI 和 SDFGI(Environment.sdfgi_enabled))。灯光可以四处移动或修改,全局照明会实时更新。灯光的全局照明效果与 LIGHT_BAKE_STATIC 略有不同。性能开销比 LIGHT_BAKE_STATIC 更大。使用 SDFGI 时,动态灯光的更新速度受 ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights 的影响。


enum LightOmniShadowMode:

LightOmniShadowMode LIGHT_OMNI_SHADOW_DUAL_PARABOLOID = 0

对全向光使用双抛物面阴影贴图。

LightOmniShadowMode LIGHT_OMNI_SHADOW_CUBE = 1

对全向光使用立方体贴图阴影贴图。比双抛物面更慢但质量更好。


enum LightDirectionalShadowMode:

LightDirectionalShadowMode LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL = 0

对平行光使用正交阴影投影。

LightDirectionalShadowMode LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS = 1

使用平行光时,使用 2 个分割进行阴影投影。

LightDirectionalShadowMode LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS = 2

使用平行光时,使用 4 个分割进行阴影投影。


enum LightDirectionalSkyMode:

LightDirectionalSkyMode LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY = 0

在天空渲染和场景照明中都使用 DirectionalLight3D。

LightDirectionalSkyMode LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY = 1

仅在场景照明中使用 DirectionalLight3D。

LightDirectionalSkyMode LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY = 2

仅在天空渲染中使用 DirectionalLight3D。


enum ShadowQuality:

ShadowQuality SHADOW_QUALITY_HARD = 0

最低的阴影过滤质量(最快)。使用这种质量设置时,软阴影不可用,这意味着如果 Light3D.light_sizeLight3D.light_angular_distance0.0,则会忽略 Light3D.shadow_blur 属性。

注意:使用硬阴影过滤时,由 Light3D.light_sizeLight3D.light_angular_distance 执行的可变阴影模糊仍然有效。在这种情况下考虑 Light3D.shadow_blur。但是不会对结果进行模糊处理,而是将模糊量视为半影的最大半径。

ShadowQuality SHADOW_QUALITY_SOFT_VERY_LOW = 1

非常低的阴影过滤质量(更快)。使用该质量设置时,Light3D.shadow_blur 会自动乘以 0.75 倍以避免引入过多的噪点。该划分仅适用于 Light3D.light_sizeLight3D.light_angular_distance0.0 的灯光。

ShadowQuality SHADOW_QUALITY_SOFT_LOW = 2

低阴影过滤质量(快速)。

ShadowQuality SHADOW_QUALITY_SOFT_MEDIUM = 3

中低阴影过滤质量(平均)。

ShadowQuality SHADOW_QUALITY_SOFT_HIGH = 4

高低阴影过滤质量(慢)。使用该质量设置时,Light3D.shadow_blur 会自动乘以 1.5 倍以更好地利用高样本数。这种增加的模糊还提高了动态对象阴影的稳定性。该乘数仅适用于 Light3D.light_sizeLight3D.light_angular_distance0.0 的灯光。

ShadowQuality SHADOW_QUALITY_SOFT_ULTRA = 5

最高的低阴影过滤质量(最慢)。使用该质量设置时,Light3D.shadow_blur 会自动乘以 2 倍以更好地利用高样本数。这种增加的模糊还提高了动态对象阴影的稳定性。该乘数仅适用于 Light3D.light_sizeLight3D.light_angular_distance0.0 的灯光。

ShadowQuality SHADOW_QUALITY_MAX = 6

代表 ShadowQuality 枚举的大小。


enum ReflectionProbeUpdateMode:

ReflectionProbeUpdateMode REFLECTION_PROBE_UPDATE_ONCE = 0

反射探针将更新一次反射,然后停止。

ReflectionProbeUpdateMode REFLECTION_PROBE_UPDATE_ALWAYS = 1

反射探针将每帧更新。这种模式对于捕捉移动物体是必要的。


enum ReflectionProbeAmbientMode:

ReflectionProbeAmbientMode REFLECTION_PROBE_AMBIENT_DISABLED = 0

不要在反射探针的区域内应用任何环境光,区域由探针的大小决定。

ReflectionProbeAmbientMode REFLECTION_PROBE_AMBIENT_ENVIRONMENT = 1

在反射探针的区域内应用自动来源的环境光照,区域由探针的大小决定。

ReflectionProbeAmbientMode REFLECTION_PROBE_AMBIENT_COLOR = 2

在反射探针的区域内应用自定义环境光,区域由探针的大小决定。见 reflection_probe_set_ambient_colorreflection_probe_set_ambient_energy


enum DecalTexture:

DecalTexture DECAL_TEXTURE_ALBEDO = 0

贴花中的反照率纹理(Decal.texture_albedo)。

DecalTexture DECAL_TEXTURE_NORMAL = 1

贴花中的法线贴图纹理(Decal.texture_normal)。

DecalTexture DECAL_TEXTURE_ORM = 2

贴花中的遮蔽/粗糙度/金属性纹理(Decal.texture_orm)。

DecalTexture DECAL_TEXTURE_EMISSION = 3

贴花中的自发光纹理(Decal.texture_orm)。

DecalTexture DECAL_TEXTURE_MAX = 4

代表 DecalTexture 枚举的大小。


enum DecalFilter:

DecalFilter DECAL_FILTER_NEAREST = 0

贴花的最近邻过滤(用于像素风贴花)。渲染时不使用 mipmap,这意味着较远处的贴花看上去会很锐利,但会有颗粒状的图案。与使用 mipmap 的性能开销大致相同。

DecalFilter DECAL_FILTER_LINEAR = 1

贴花的线性过滤(用于非像素风贴花)。渲染时不使用 mipmap,这意味着较远处的贴花看上去会很平滑,但会有模糊的效果。与使用 mipmap 的性能开销大致相同。

DecalFilter DECAL_FILTER_NEAREST_MIPMAPS = 2

贴花的最近邻过滤(用于像素风贴花)。渲染时使用各向同性的 mipmap,这意味着较远处的贴花看上去会很平滑,但会有模糊的效果。与不使用 mipmap 的性能开销大致相同。

DecalFilter DECAL_FILTER_LINEAR_MIPMAPS = 3

贴花的线性过滤(用于非像素风贴花)。渲染时使用各向同性的 mipmap,这意味着较远处的贴花看上去会很平滑,但会有模糊的效果。与不使用 mipmap 的性能开销大致相同。

DecalFilter DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC = 4

贴花的最近邻过滤(用于像素风贴花)。渲染时使用各向异性的 mipmap,这意味着贴花从斜角度观察会既平滑又锐利。比各向同性的 mipmap 更好看,但也更慢。各向异性的级别由 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level 定义。

DecalFilter DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC = 5

贴花的线性过滤(用于非像素风贴花)。渲染时使用各向异性的 mipmap,这意味着贴花从斜角度观察会既平滑又锐利。比各向同性的 mipmap 更好看,但也更慢。各向异性的级别由 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level 定义。


enum VoxelGIQuality:

VoxelGIQuality VOXEL_GI_QUALITY_LOW = 0

VoxelGI 较低渲染质量,使用 4 个锥体。

VoxelGIQuality VOXEL_GI_QUALITY_HIGH = 1

VoxelGI 较高渲染质量,使用 6 个锥体。


enum ParticlesMode:

ParticlesMode PARTICLES_MODE_2D = 0

2D 粒子。

ParticlesMode PARTICLES_MODE_3D = 1

3D 粒子。


enum ParticlesTransformAlign:

ParticlesTransformAlign PARTICLES_TRANSFORM_ALIGN_DISABLED = 0

ParticlesTransformAlign PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD = 1

ParticlesTransformAlign PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY = 2

ParticlesTransformAlign PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY = 3


enum ParticlesDrawOrder:

ParticlesDrawOrder PARTICLES_DRAW_ORDER_INDEX = 0

按照粒子数组中出现的顺序绘制粒子。

ParticlesDrawOrder PARTICLES_DRAW_ORDER_LIFETIME = 1

根据粒子的寿命对其进行排序。换句话说,寿命最长的粒子被绘制在前面。

ParticlesDrawOrder PARTICLES_DRAW_ORDER_REVERSE_LIFETIME = 2

根据粒子寿命的倒数对粒子进行排序。换句话说,寿命最短的粒子被绘制在前面。

ParticlesDrawOrder PARTICLES_DRAW_ORDER_VIEW_DEPTH = 3

根据粒子与相机的距离对其进行排序。


enum ParticlesCollisionType:

ParticlesCollisionType PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT = 0

ParticlesCollisionType PARTICLES_COLLISION_TYPE_BOX_ATTRACT = 1

ParticlesCollisionType PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT = 2

ParticlesCollisionType PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE = 3

ParticlesCollisionType PARTICLES_COLLISION_TYPE_BOX_COLLIDE = 4

ParticlesCollisionType PARTICLES_COLLISION_TYPE_SDF_COLLIDE = 5

ParticlesCollisionType PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE = 6


enum ParticlesCollisionHeightfieldResolution:

ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256 = 0

ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512 = 1

ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024 = 2

ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048 = 3

ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096 = 4

ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192 = 5

ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX = 6

代表 ParticlesCollisionHeightfieldResolution 枚举的大小。


enum FogVolumeShape:

FogVolumeShape FOG_VOLUME_SHAPE_ELLIPSOID = 0

FogVolume 的形状类似于一个椭球体(拉伸的球体)。

FogVolumeShape FOG_VOLUME_SHAPE_CONE = 1

FogVolume 的形状像一个向上的圆锥体(在局部坐标中)。圆锥体的角度会自动被设置以填充大小。锥体将被调整以适合大小。旋转 FogVolume 节点以重新定向圆锥体。不支持通过大小进行非均匀缩放(改为缩放 FogVolume 节点)。

FogVolumeShape FOG_VOLUME_SHAPE_CYLINDER = 2

FogVolume 的形状将像一个直立的圆柱体(在局部坐标中)。旋转 FogVolume 节点以重新定向圆柱体。圆柱体将被调整以适合大小。不支持通过大小进行非均匀缩放(改为缩放 FogVolume 节点)。

FogVolumeShape FOG_VOLUME_SHAPE_BOX = 3

FogVolume 的形状会像一个盒子。

FogVolumeShape FOG_VOLUME_SHAPE_WORLD = 4

FogVolume 将没有形状,将覆盖整个世界并且不会被剔除。

FogVolumeShape FOG_VOLUME_SHAPE_MAX = 5

代表 FogVolumeShape 枚举的大小。


enum ViewportScaling3DMode:

ViewportScaling3DMode VIEWPORT_SCALING_3D_MODE_BILINEAR = 0

对视口的 3D 缓冲区使用双线性缩放。可以使用 Viewport.scaling_3d_scale 设置缩放量。小于 1.0 的值将导致欠采样,而大于 1.0 的值将导致超采样。1.0 的值将禁用缩放。

ViewportScaling3DMode VIEWPORT_SCALING_3D_MODE_FSR = 1

对视口的 3D 缓冲区使用 AMD FidelityFX 超分辨率 1.0 放大。可以使用 Viewport.scaling_3d_scale 设置缩放量。小于 1.0 的值将导致使用 FSR 放大视口。不支持大于 1.0 的值,将改用双线性降采样。1.0 的值将禁用缩放。

ViewportScaling3DMode VIEWPORT_SCALING_3D_MODE_FSR2 = 2

对视口的 3D 缓冲区使用 AMD FidelityFX 超分辨率 2.2 放大。可以使用 Viewport.scaling_3d_scale 设置缩放量。小于 1.0 的值将导致使用 FSR2 放大视口。不支持大于 1.0 的值,将改用双线性降采样。1.0 的值将使用原生分辨率下的 FSR2 作为 TAA 解决方案。

ViewportScaling3DMode VIEWPORT_SCALING_3D_MODE_MAX = 3

代表 ViewportScaling3DMode 枚举的大小。


enum ViewportUpdateMode:

ViewportUpdateMode VIEWPORT_UPDATE_DISABLED = 0

不要更新视口的渲染目标。

ViewportUpdateMode VIEWPORT_UPDATE_ONCE = 1

更新一次视口的渲染目标,然后切换到 VIEWPORT_UPDATE_DISABLED

ViewportUpdateMode VIEWPORT_UPDATE_WHEN_VISIBLE = 2

仅在渲染目标可见时更新视口的渲染目标。这是默认值。

ViewportUpdateMode VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE = 3

仅在其父级可见时更新视口的渲染目标。

ViewportUpdateMode VIEWPORT_UPDATE_ALWAYS = 4

始终更新视口的渲染目标。


enum ViewportClearMode:

ViewportClearMode VIEWPORT_CLEAR_ALWAYS = 0

绘制前始终清除视口的渲染目标。

ViewportClearMode VIEWPORT_CLEAR_NEVER = 1

永不清除视口的渲染目标。

ViewportClearMode VIEWPORT_CLEAR_ONLY_NEXT_FRAME = 2

在下一帧清除视口的渲染目标,然后切换到 VIEWPORT_CLEAR_NEVER


enum ViewportEnvironmentMode:

ViewportEnvironmentMode VIEWPORT_ENVIRONMENT_DISABLED = 0

禁用在 2D 画布上渲染 3D 环境。

ViewportEnvironmentMode VIEWPORT_ENVIRONMENT_ENABLED = 1

启用在 2D 画布上渲染 3D 环境。

ViewportEnvironmentMode VIEWPORT_ENVIRONMENT_INHERIT = 2

从父级继承启用/禁用值。如果最顶层的父级也被设置为 VIEWPORT_ENVIRONMENT_INHERIT,那么与 VIEWPORT_ENVIRONMENT_ENABLED 的行为相同。

ViewportEnvironmentMode VIEWPORT_ENVIRONMENT_MAX = 3

代表 ViewportEnvironmentMode 枚举的大小。


enum ViewportSDFOversize:

ViewportSDFOversize VIEWPORT_SDF_OVERSIZE_100_PERCENT = 0

不使用过大的 2D 带符号距离场。遮挡器可能在接触视口边缘时消失,GPUParticles3D 碰撞也可能比预期更早地停止工作。对 GPU 的要求最低。

ViewportSDFOversize VIEWPORT_SDF_OVERSIZE_120_PERCENT = 1

2D 带符号距离场在每个方向(上、右、下、左)都覆盖超出视口大小 20% 的范围。

ViewportSDFOversize VIEWPORT_SDF_OVERSIZE_150_PERCENT = 2

2D 带符号距离场在每个方向(上、右、下、左)都覆盖超出视口大小 50% 的范围。

ViewportSDFOversize VIEWPORT_SDF_OVERSIZE_200_PERCENT = 3

2D 带符号距离场在每个方向(上、右、下、左)都覆盖超出视口大小 100% 的范围。对 GPU 的要求最高。

ViewportSDFOversize VIEWPORT_SDF_OVERSIZE_MAX = 4

代表 ViewportSDFOversize 枚举的大小。


enum ViewportSDFScale:

ViewportSDFScale VIEWPORT_SDF_SCALE_100_PERCENT = 0

全分辨率 2D 带符号距离场缩放。对 GPU 的要求最高。

ViewportSDFScale VIEWPORT_SDF_SCALE_50_PERCENT = 1

各轴半分辨率 2D 带符号距离场缩放(视口像素数的 25%)。

ViewportSDFScale VIEWPORT_SDF_SCALE_25_PERCENT = 2

各轴四分之一分辨率 2D 带符号距离场缩放(视口像素数的 6.25%)。对 GPU 的要求最低。

ViewportSDFScale VIEWPORT_SDF_SCALE_MAX = 3

代表 ViewportSDFScale 枚举的大小。


enum ViewportMSAA:

ViewportMSAA VIEWPORT_MSAA_DISABLED = 0

用于 3D 的多重采样抗锯齿被禁用。这是默认值,也是最快的设置。

ViewportMSAA VIEWPORT_MSAA_2X = 1

用于 3D 的多重采样抗锯齿,使用每个像素 2 个样本。这对性能有中等影响。

ViewportMSAA VIEWPORT_MSAA_4X = 2

用于 3D 的多重采样抗锯齿,使用每个像素 4 个样本。这对性能有较大影响。

ViewportMSAA VIEWPORT_MSAA_8X = 3

用于 3D 的多重采样抗锯齿,使用每个像素 8 个样本。这对性能有非常大的影响。可能在低端和较旧的硬件上不受支持。

ViewportMSAA VIEWPORT_MSAA_MAX = 4

代表 ViewportMSAA 枚举的大小。


enum ViewportScreenSpaceAA:

ViewportScreenSpaceAA VIEWPORT_SCREEN_SPACE_AA_DISABLED = 0

不要在全屏后处理中执行抗锯齿。

ViewportScreenSpaceAA VIEWPORT_SCREEN_SPACE_AA_FXAA = 1

使用快速近似抗锯齿(Fast Approximate Anti-Aliasing)。FXAA 是一种流行的屏幕空间抗锯齿方法,速度很快,但会让图像变模糊,使用较低分辨率时尤为显著。1440p 和 4K 等较高分辨率下效果仍然不错。

ViewportScreenSpaceAA VIEWPORT_SCREEN_SPACE_AA_MAX = 2

代表 ViewportScreenSpaceAA 枚举的大小。


enum ViewportOcclusionCullingBuildQuality:

ViewportOcclusionCullingBuildQuality VIEWPORT_OCCLUSION_BUILD_QUALITY_LOW = 0

较低的遮挡剔除 BVH 构建质量(由 Embree 定义)。CPU 占用最低,但剔除效率最低。

ViewportOcclusionCullingBuildQuality VIEWPORT_OCCLUSION_BUILD_QUALITY_MEDIUM = 1

中等的遮挡剔除 BVH 构建质量(由 Embree 定义)。

ViewportOcclusionCullingBuildQuality VIEWPORT_OCCLUSION_BUILD_QUALITY_HIGH = 2

较高的遮挡剔除 BVH 构建质量(由 Embree 定义)。CPU 占用最高,但剔除效率最高。


enum ViewportRenderInfo:

ViewportRenderInfo VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME = 0

在单帧中绘制的对象的数量。

ViewportRenderInfo VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME = 1

在单帧中绘制的点、线、三角形的数量。

ViewportRenderInfo VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME = 2

此帧期间的绘制调用数。

ViewportRenderInfo VIEWPORT_RENDER_INFO_MAX = 3

代表 ViewportRenderInfo 枚举的大小。


enum ViewportRenderInfoType:

ViewportRenderInfoType VIEWPORT_RENDER_INFO_TYPE_VISIBLE = 0

可见渲染阶段(不含阴影)。

ViewportRenderInfoType VIEWPORT_RENDER_INFO_TYPE_SHADOW = 1

阴影渲染阶段。根据开启了阴影的灯光数以及方向阴影的拆分数,同一个对象可能会渲染多次。

ViewportRenderInfoType VIEWPORT_RENDER_INFO_TYPE_MAX = 2

代表 ViewportRenderInfoType 枚举的大小。


enum ViewportDebugDraw:

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_DISABLED = 0

调试绘制被禁用。默认设置。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_UNSHADED = 1

显示的对象没有光照信息。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_LIGHTING = 2

仅使用光照信息显示对象。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_OVERDRAW = 3

对象通过加法混合显示为半透明,因此可以看到它们在彼此之上绘制的位置。更高的过度绘制(由更亮的颜色表示)意味着在绘制隐藏在其他像素后面的像素时浪费了性能。

注意:使用该调试绘制模式时,自定义着色器将被忽略。这意味着顶点置换不再可见。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_WIREFRAME = 4

调试绘制,将对象用线框形式绘制。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER = 5

绘制法线缓冲区而不是常规场景,因此可以看到将由后处理效果使用的每像素法线。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO = 6

仅使用来自 VoxelGI 的反照率值显示对象。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING = 7

仅使用来自 VoxelGI 的照明值显示对象。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION = 8

仅使用来自 VoxelGI 的自发光颜色显示对象。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS = 9

Viewport 的左上象限中绘制存储来自 OmniLight3DSpotLight3D 的阴影的阴影图集。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS = 10

绘制阴影图集,该阴影图集存储 Viewport 左上象限中 DirectionalLight3D 的阴影。

与阴影贴图级联相关的相机视锥体切片被叠加以可视化覆盖范围。每个切片的颜色与 VIEWPORT_DEBUG_DRAW_PSSM_SPLITS 使用的颜色匹配。当混合阴影级联时,绘制视锥体切片时会考虑重叠。

最后一个级联显示了所有视锥体切片,以说明所有切片的覆盖范围。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE = 11

绘制估计的场景亮度。这是一个 1×1 的纹理,启用自动曝光时生成,用于控制场景的曝光。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SSAO = 12

绘制屏幕空间环境光遮蔽纹理而不是场景,以便可以清楚地看到它是如何影响对象的。为了使这种显示模式起作用,必须在 WorldEnvironment 中设置 Environment.ssao_enabled

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SSIL = 13

绘制屏幕空间间接照明纹理而不是场景,以便可以清楚地看到它是如何影响对象的。为了使这种显示模式起作用,必须在 WorldEnvironment 中设置 Environment.ssil_enabled

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_PSSM_SPLITS = 14

为场景中的 DirectionalLight3D 的每个 PSSM 分割着色不同的颜色,以便可以看到分割的位置。它们将按顺序被着色为红色、绿色、蓝色、黄色。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_DECAL_ATLAS = 15

绘制贴花图集,图集中保存的是各个 Decal 中的贴花纹理。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SDFGI = 16

绘制 SDFGI 级联数据。这是用于反弹灯光、创建反射的数据结构。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SDFGI_PROBES = 17

绘制 SDFGI 探针数据。这是用于为场景中移动的动态对象提供间接光照的数据结构。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_GI_BUFFER = 18

绘制全局光照缓冲(VoxelGI 或 SDFGI)。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_DISABLE_LOD = 19

禁用网格 LOD。所有网格都会使用完整细节绘制,可以用来比较性能。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS = 20

绘制 OmniLight3D 集群。集群决定屏幕空间中灯光的放置位置,能够让引擎在进行光照时仅对屏幕的部分区域进行处理。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS = 21

绘制 SpotLight3D 集群。集群决定屏幕空间中灯光的放置位置,能够让引擎在进行光照时仅对屏幕的部分区域进行处理。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS = 22

绘制 Decal 集群。集群决定屏幕空间中贴花的放置位置,能够让引擎在进行贴花时仅对屏幕的部分区域进行处理。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES = 23

绘制 ReflectionProbe 集群。集群决定屏幕空间中反射探针的放置位置,能够让引擎在处理反射探针时仅对屏幕的部分区域进行处理。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_OCCLUDERS = 24

绘制遮挡剔除缓冲。这个低分辨率遮挡剔除缓冲在 CPU 栅格化,可用于检查实例是否被其他对象遮挡。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_MOTION_VECTORS = 25

绘制运动向量缓冲。由时间抗锯齿使用,能够修正在游戏过程中发生的运动。

ViewportDebugDraw VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER = 26

绘制内部缓冲区而不是常规场景,因此可以看到将被后处理效果使用的每像素输出。


enum ViewportVRSMode:

ViewportVRSMode VIEWPORT_VRS_DISABLED = 0

可变速率着色已禁用。

ViewportVRSMode VIEWPORT_VRS_TEXTURE = 1

可变速率着色使用纹理。请注意,对于立体视觉,请使用为每个视图提供纹理的纹理图集。

ViewportVRSMode VIEWPORT_VRS_XR = 2

可变速率着色纹理由主 XRInterface 提供。

ViewportVRSMode VIEWPORT_VRS_MAX = 3

代表 ViewportVRSMode 枚举的大小。


enum SkyMode:

SkyMode SKY_MODE_AUTOMATIC = 0

根据天空着色器自动选择合适的处理模式。如果着色器使用 TIMEPOSITION,则会使用 SKY_MODE_REALTIME。如果着色器使用任何 LIGHT_* 变量或任何自定义 uniform,则会使用 SKY_MODE_INCREMENTAL。否则默认为 SKY_MODE_QUALITY

SkyMode SKY_MODE_QUALITY = 1

使用高质量重要性采样处理辐射度贴图。得到的结果通常比 SKY_MODE_REALTIME 的质量更高,但需要花费更多的时间来生成。如果你计划在运行时修改天空,则不应使用。如果你发现反射不够模糊,出现了火花或者萤火虫,请尝试增大 ProjectSettings.rendering/reflections/sky_reflections/ggx_samples

SkyMode SKY_MODE_INCREMENTAL = 2

使用与 SKY_MODE_QUALITY 相同的高质量重要性采样来处理辐射度贴图,但更新会占用若干帧。帧数由 ProjectSettings.rendering/reflections/sky_reflections/roughness_layers 决定。当需要最高质量的辐射度贴图,但天空更新缓慢时,请使用该选项。

SkyMode SKY_MODE_REALTIME = 3

使用快速过滤算法处理辐照度贴图。一般来说,这会导致质量降低,但运行时间会大大加快。如果需要更好的质量,但仍需要每帧更新天空,请考虑开启 ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality

注意:快速过滤算法被限制为 256x256 立方体贴图,因此 sky_set_radiance_size 必须被设置为 256。否则会打印警告并忽略对辐照度大小的覆盖。


enum EnvironmentBG:

EnvironmentBG ENV_BG_CLEAR_COLOR = 0

用透明的颜色作为背景。

EnvironmentBG ENV_BG_COLOR = 1

使用指定的颜色作为背景。

EnvironmentBG ENV_BG_SKY = 2

使用天空资源作为背景。

EnvironmentBG ENV_BG_CANVAS = 3

使用一个指定的画布层作为背景。这对在 3D 世界中实例化一个 2D 场景很有用。

EnvironmentBG ENV_BG_KEEP = 4

不要清除背景,使用上一帧渲染的东西作为背景。

EnvironmentBG ENV_BG_CAMERA_FEED = 5

在背景中显示相机源。

EnvironmentBG ENV_BG_MAX = 6

代表 EnvironmentBG 枚举的大小。


enum EnvironmentAmbientSource:

EnvironmentAmbientSource ENV_AMBIENT_SOURCE_BG = 0

从指定为背景的任何来源收集环境光。

EnvironmentAmbientSource ENV_AMBIENT_SOURCE_DISABLED = 1

禁用环境光。

EnvironmentAmbientSource ENV_AMBIENT_SOURCE_COLOR = 2

为环境光指定特定的 Color

EnvironmentAmbientSource ENV_AMBIENT_SOURCE_SKY = 3

无论背景如何,都从 Sky 收集环境光。


enum EnvironmentReflectionSource:

EnvironmentReflectionSource ENV_REFLECTION_SOURCE_BG = 0

使用背景进行反射。

EnvironmentReflectionSource ENV_REFLECTION_SOURCE_DISABLED = 1

禁用反射。

EnvironmentReflectionSource ENV_REFLECTION_SOURCE_SKY = 2

无论背景如何,都使用 Sky 进行反射。


enum EnvironmentGlowBlendMode:

EnvironmentGlowBlendMode ENV_GLOW_BLEND_MODE_ADDITIVE = 0

添加辉光混合模式。主要用于粒子、辉光(泛光)、镜头眩光、亮源。

EnvironmentGlowBlendMode ENV_GLOW_BLEND_MODE_SCREEN = 1

滤色辉光混合模式。增加亮度,经常与泛光一起使用。

EnvironmentGlowBlendMode ENV_GLOW_BLEND_MODE_SOFTLIGHT = 2

柔光辉光混合模式。修改对比度,曝光阴影和高光(高质量泛光)。

EnvironmentGlowBlendMode ENV_GLOW_BLEND_MODE_REPLACE = 3

替换辉光混合模式。用辉光值替换所有像素的颜色。这可以通过调整辉光参数来模拟全屏模糊效果,使其与原始图像的亮度相匹配。

EnvironmentGlowBlendMode ENV_GLOW_BLEND_MODE_MIX = 4

将辉光与底层颜色混合,以避免在保持辉光效果的同时,尽可能多地增加亮度。


enum EnvironmentToneMapper:

EnvironmentToneMapper ENV_TONE_MAPPER_LINEAR = 0

按照输入原样输出颜色。较亮的光照会导致过曝、输出的颜色中会有可见的截断。

EnvironmentToneMapper ENV_TONE_MAPPER_REINHARD = 1

使用 Reinhard 色调映射器。对渲染后的像素颜色进行调整,使用的是这个公式:color = color / (1 + color)。可以避免对高光的截断,但最终的图像可能看上去有些寡淡。

EnvironmentToneMapper ENV_TONE_MAPPER_FILMIC = 2

使用电影级色调映射器。可以避免对高光的截断,最终的图像一般比 ENV_TONE_MAPPER_REINHARD 看上去更鲜艳。

EnvironmentToneMapper ENV_TONE_MAPPER_ACES = 3

使用Academy 颜色编码系统色调映射器。ACES 比其他选项稍贵一些,但它通过在光线变亮时对其进行去饱和处理,以更逼真的方式处理明亮的光线。与 ENV_TONE_MAPPER_REINHARDENV_TONE_MAPPER_FILMIC 相比,ACES 通常具有对比度更高的输出。

注意:这个色调映射运算符在 Godot 3.x 中被称为“ACES Fitted”。


enum EnvironmentSSRRoughnessQuality:

EnvironmentSSRRoughnessQuality ENV_SSR_ROUGHNESS_QUALITY_DISABLED = 0

用于屏幕空间反射的最低质量粗糙度过滤。与光滑(非粗糙)材质相比,粗糙材质不会有更模糊的屏幕空间反射。这是最快的选项。

EnvironmentSSRRoughnessQuality ENV_SSR_ROUGHNESS_QUALITY_LOW = 1

屏幕空间反射的较低质量粗糙度过滤器。

EnvironmentSSRRoughnessQuality ENV_SSR_ROUGHNESS_QUALITY_MEDIUM = 2

屏幕空间反射的中等质量粗糙度过滤器。

EnvironmentSSRRoughnessQuality ENV_SSR_ROUGHNESS_QUALITY_HIGH = 3

屏幕空间反射的较高质量粗糙度过滤器。这是最慢的选项。


enum EnvironmentSSAOQuality:

EnvironmentSSAOQuality ENV_SSAO_QUALITY_VERY_LOW = 0

最低质量的屏幕空间环境光遮蔽。

EnvironmentSSAOQuality ENV_SSAO_QUALITY_LOW = 1

低质量的屏幕空间环境光遮蔽。

EnvironmentSSAOQuality ENV_SSAO_QUALITY_MEDIUM = 2

中等质量的屏幕空间环境光遮蔽。

EnvironmentSSAOQuality ENV_SSAO_QUALITY_HIGH = 3

高质量的屏幕空间环境光遮蔽。

EnvironmentSSAOQuality ENV_SSAO_QUALITY_ULTRA = 4

最高质量的屏幕空间环境光遮蔽。使用可动态调整的自适应目标设置,以平滑地平衡性能和视觉质量。


enum EnvironmentSSILQuality:

EnvironmentSSILQuality ENV_SSIL_QUALITY_VERY_LOW = 0

最低质量的屏幕空间间接光照。

EnvironmentSSILQuality ENV_SSIL_QUALITY_LOW = 1

较低质量的屏幕空间间接光照。

EnvironmentSSILQuality ENV_SSIL_QUALITY_MEDIUM = 2

较高质量的屏幕空间间接光照。

EnvironmentSSILQuality ENV_SSIL_QUALITY_HIGH = 3

较高质量的屏幕空间间接光照。

EnvironmentSSILQuality ENV_SSIL_QUALITY_ULTRA = 4

最高质量的屏幕空间间接光照。使用可动态调整的自适应目标设置,以平滑地平衡性能和视觉质量。


enum EnvironmentSDFGIYScale:

EnvironmentSDFGIYScale ENV_SDFGI_Y_SCALE_50_PERCENT = 0

在 Y(垂直)轴上对 SDFGI 使用 50% 的缩放。SDFGI 单元格将比它们的宽度短两倍。这允许提供更多的 GI 细节,并减少薄地板和天花板的漏光。这通常是垂直度不高的场景的最佳选择。

EnvironmentSDFGIYScale ENV_SDFGI_Y_SCALE_75_PERCENT = 1

在 Y(垂直)轴上为 SDFGI 使用 75% 的缩放。这是 50% 和 100% SDFGI Y 缩放之间的平衡。

EnvironmentSDFGIYScale ENV_SDFGI_Y_SCALE_100_PERCENT = 2

在 Y(垂直)轴上为 SDFGI 使用 100% 的缩放。SDFGI 单元格将与宽度一样高。这通常是高度垂直场景的最佳选择。不利之处在于,薄地板和天花板可能会导致漏光更加明显。


enum EnvironmentSDFGIRayCount:

EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_4 = 0

聚合 SDFGI 时每帧发出 4 条光线。对 GPU 的要求最低,但结果中噪点最多。

EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_8 = 1

聚合 SDFGI 时每帧发出 8 条光线。

EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_16 = 2

聚合 SDFGI 时每帧发出 16 条光线。

EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_32 = 3

聚合 SDFGI 时每帧发出 32 条光线。

EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_64 = 4

聚合 SDFGI 时每帧发出 64 条光线。

EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_96 = 5

聚合 SDFGI 时每帧发出 96 条光线。对 GPU 的要求较高。

EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_128 = 6

聚合 SDFGI 时每帧发出 128 条光线。对 GPU 的要求非常高,但结果中噪点最少。

EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_MAX = 7

代表 EnvironmentSDFGIRayCount 枚举的大小。


enum EnvironmentSDFGIFramesToConverge:

EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_5_FRAMES = 0

通过 5 帧聚合 SDFGI。响应最快,但光线数量一定时,结果中噪点最多。

EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_10_FRAMES = 1

让 SDFGI 通过 10 帧完成聚合。

EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_15_FRAMES = 2

让 SDFGI 通过 15 帧完成聚合。

EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_20_FRAMES = 3

让 SDFGI 通过 20 帧完成聚合。

EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_25_FRAMES = 4

让 SDFGI 通过 25 帧完成聚合。

EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_30_FRAMES = 5

让 SDFGI 通过 30 帧完成聚合。响应最慢,但光线数量一定时,结果中噪点最少。

EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_MAX = 6

代表 EnvironmentSDFGIFramesToConverge 枚举的大小。


enum EnvironmentSDFGIFramesToUpdateLight:

EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME = 0

通过 1 帧更新 SDFGI 中动态灯光的间接光照。响应最快,但对 GPU 的要求最高。

EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES = 1

通过 2 帧更新 SDFGI 中动态灯光的间接光照。

EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES = 2

通过 4 帧更新 SDFGI 中动态灯光的间接光照。

EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES = 3

通过 8 帧更新 SDFGI 中动态灯光的间接光照。

EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES = 4

通过 16 帧更新 SDFGI 中动态灯光的间接光照。响应最慢,但对 GPU 的要求最低。

EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_MAX = 5

代表 EnvironmentSDFGIFramesToUpdateLight 枚举的大小。


enum SubSurfaceScatteringQuality:

SubSurfaceScatteringQuality SUB_SURFACE_SCATTERING_QUALITY_DISABLED = 0

完全禁用次表面散射,即便材质的 BaseMaterial3D.subsurf_scatter_enabledtrue。对 GPU 的要求最低。

SubSurfaceScatteringQuality SUB_SURFACE_SCATTERING_QUALITY_LOW = 1

较低质量的次表面散射。

SubSurfaceScatteringQuality SUB_SURFACE_SCATTERING_QUALITY_MEDIUM = 2

中等质量的次表面散射。

SubSurfaceScatteringQuality SUB_SURFACE_SCATTERING_QUALITY_HIGH = 3

较高质量的次表面散射。对 GPU 的要求最高。


enum DOFBokehShape:

DOFBokehShape DOF_BOKEH_BOX = 0

使用一个盒式过滤计算 DOF 模糊。最快的选项,但会在模糊图案中产生明显的线条。

DOFBokehShape DOF_BOKEH_HEXAGON = 1

使用一个六边形过滤计算 DOF 模糊。

DOFBokehShape DOF_BOKEH_CIRCLE = 2

使用一个圆形过滤计算 DOF 模糊。最好的质量和最真实的,但最慢的。仅用于可以将大量性能专用于后期处理的区域(例如过场动画)。


enum DOFBlurQuality:

DOFBlurQuality DOF_BLUR_QUALITY_VERY_LOW = 0

最低质量的 DOF 模糊。这是最快的设置,但你可能会看到不自然的过滤。

DOFBlurQuality DOF_BLUR_QUALITY_LOW = 1

较低质量的 DOF 模糊。

DOFBlurQuality DOF_BLUR_QUALITY_MEDIUM = 2

中等质量的 DOF 模糊。

DOFBlurQuality DOF_BLUR_QUALITY_HIGH = 3

最高质量的 DOF 模糊。通过采集最多的样本,产生最平滑的模糊效果,但速度也明显变慢。


enum InstanceType:

InstanceType INSTANCE_NONE = 0

实例没有类型。

InstanceType INSTANCE_MESH = 1

该实例是网格。

InstanceType INSTANCE_MULTIMESH = 2

该实例是一个 multimesh。

InstanceType INSTANCE_PARTICLES = 3

该实例是粒子发射器。

InstanceType INSTANCE_PARTICLES_COLLISION = 4

该实例是 GPUParticles 碰撞形状。

InstanceType INSTANCE_LIGHT = 5

该实例是灯。

InstanceType INSTANCE_REFLECTION_PROBE = 6

该实例是反射探针。

InstanceType INSTANCE_DECAL = 7

该实例是贴花。

InstanceType INSTANCE_VOXEL_GI = 8

该实例是 VoxelGI。

InstanceType INSTANCE_LIGHTMAP = 9

该实例是光照贴图。

InstanceType INSTANCE_OCCLUDER = 10

该实例是遮挡剔除遮挡器。

InstanceType INSTANCE_VISIBLITY_NOTIFIER = 11

该实例是屏幕可见通知器。

InstanceType INSTANCE_FOG_VOLUME = 12

该实例是雾体积。

InstanceType INSTANCE_MAX = 13

代表 InstanceType 枚举的大小。

InstanceType INSTANCE_GEOMETRY_MASK = 14

几何体实例(网格、多网格、即时和粒子)的标志的组合。


enum InstanceFlags:

InstanceFlags INSTANCE_FLAG_USE_BAKED_LIGHT = 0

允许在烘焙照明中使用实例。

InstanceFlags INSTANCE_FLAG_USE_DYNAMIC_GI = 1

允许在动态全局光照中使用该实例。

InstanceFlags INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = 2

当设置时,手动请求在下一帧绘制几何图形。

InstanceFlags INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING = 3

始终绘制,即便实例能够被遮挡剔除剔除。不影响视锥剔除。

InstanceFlags INSTANCE_FLAG_MAX = 4

代表 InstanceFlags 枚举的大小。


enum ShadowCastingSetting:

ShadowCastingSetting SHADOW_CASTING_SETTING_OFF = 0

禁用这个实例的阴影。

ShadowCastingSetting SHADOW_CASTING_SETTING_ON = 1

从此实例投下阴影。

ShadowCastingSetting SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2

在渲染对象的阴影时禁用背面剔除。这会稍微慢一些,但可能会产生更正确的阴影。

ShadowCastingSetting SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3

仅渲染对象的阴影。对象本身不会被绘制。


enum VisibilityRangeFadeMode:

VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_DISABLED = 0

禁用给定实例的可见性范围淡出。

VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_SELF = 1

当给定实例接近其可见范围限制时淡出该给定实例。

VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_DEPENDENCIES = 2

当达到其可见性范围限制时淡入给定实例的依赖项。


enum BakeChannels:

BakeChannels BAKE_CHANNEL_ALBEDO_ALPHA = 0

bake_render_uv2 返回的 Image 数组中 Image 的索引。图像使用 Image.FORMAT_RGBA8 格式,并在 .rgb 通道中包含反照率颜色,在 .a 通道中包含 Alpha。

BakeChannels BAKE_CHANNEL_NORMAL = 1

bake_render_uv2 返回的 Image 数组中 Image 的索引。图像使用 Image.FORMAT_RGBA8 格式,并在 .rgb 通道中包含该对象的每像素法线,在 .a 通道中不包含任何内容。每像素法线被编码为 normal * 0.5 + 0.5

BakeChannels BAKE_CHANNEL_ORM = 2

bake_render_uv2 返回的 Image 数组中 Image 的索引。图像使用 Image.FORMAT_RGBA8 格式,并在 .r 通道中包含环境光遮挡(仅来自材质和贴花),在 .g 通道中包含粗糙度,在 .b 通道中包含金属度,并且中 .a 通道中包含次表面散射量。

BakeChannels BAKE_CHANNEL_EMISSION = 3

bake_render_uv2 返回的 Image 数组中 Image 的索引。图像使用 Image.FORMAT_RGBAH 格式,并在 .rgb 通道中包含自发光颜色,在 .a 通道中不包含任何内容。


enum CanvasTextureChannel:

CanvasTextureChannel CANVAS_TEXTURE_CHANNEL_DIFFUSE = 0

漫反射画布纹理(CanvasTexture.diffuse_texture)。

CanvasTextureChannel CANVAS_TEXTURE_CHANNEL_NORMAL = 1

法线贴图画布纹理(CanvasTexture.normal_texture)。

CanvasTextureChannel CANVAS_TEXTURE_CHANNEL_SPECULAR = 2

高光贴图画布纹理(CanvasTexture.specular_texture)。


enum NinePatchAxisMode:

NinePatchAxisMode NINE_PATCH_STRETCH = 0

九宫格在需要的地方被拉伸。

NinePatchAxisMode NINE_PATCH_TILE = 1

九宫格在需要的地方填充图块。

NinePatchAxisMode NINE_PATCH_TILE_FIT = 2

九宫格在需要的地方填充图块,并在需要时将它们拉伸一点。


enum CanvasItemTextureFilter:

CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_DEFAULT = 0

Viewport 使用默认过滤模式。

CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_NEAREST = 1

纹理过滤仅从最近的像素读取。这使得纹理从近距离看是像素化的,从远处看是颗粒状的(由于多级渐远纹理没有被采样)。

CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_LINEAR = 2

纹理过滤在最近的 4 个像素之间进行混合。这使得纹理从近处看起来很平滑,从远处看起来却有颗粒感(由于多级渐远纹理没有被采样)。

CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3

纹理过滤从最近的像素读取并在最近的 2 个多级渐远纹理之间进行混合(或者如果 ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filtertrue,则使用最近的多级渐远纹理)。这使得纹理从近处看起来像素化,从远处看起来平滑。

将此用于可能以低缩放查看的非像素艺术纹理(例如,由于 Camera2D 缩放或精灵缩放),因为多级渐远纹理对于平滑小于屏幕像素的像素很重要。

CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 4

纹理过滤在最近的 4 个像素和最近的 2 个多级渐远纹理之间进行混合(或者如果 ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filtertrue,则使用最近的多级渐远纹理)。这使得纹理从近处看起来平滑,从远处看起来也平滑。

将此用于可能以低缩放查看的非像素艺术纹理(例如,由于 Camera2D 缩放或精灵缩放),因为多级渐远纹理对于平滑小于屏幕像素的像素很重要。

CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 5

纹理过滤从最近的像素读取并根据表面和相机视图之间的角度在 2 个多级渐远纹理之间进行混合(或者如果 ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filtertrue,则使用最近的多级渐远纹理)。这使得纹理从近处看起来像素化,从远处看起来平滑。各向异性过滤提高了几乎与相机位于一条线的表面上的纹理质量,但速度稍慢。各向异性过滤级别可以通过调整 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level 来改变。

注意:该纹理过滤在 2D 项目中很少有用。CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS 在这种情况下通常更合适。

CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 6

纹理过滤在最近的 4 个像素之间进行混合,并基于表面与相机视图之间的角度在 2 个多级渐远纹理之间进行混合(或者如果 ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filtertrue,则使用最近的多级渐远纹理)。这使得纹理从近处看起来平滑,从远处看起来也平滑。各向异性过滤提高了几乎与相机位于一条线的表面上的纹理质量,但速度稍慢。各向异性过滤级别可以通过调整 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level 来改变。

注意:该纹理过滤在 2D 项目中很少有用。CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS 在这种情况下通常更合适。

CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_MAX = 7

CanvasItemTextureFilter 枚举的最大值。


enum CanvasItemTextureRepeat:

CanvasItemTextureRepeat CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT = 0

Viewport 使用默认重复模式。

CanvasItemTextureRepeat CANVAS_ITEM_TEXTURE_REPEAT_DISABLED = 1

禁用纹理重复。相反,当读取 0-1 范围之外的 UV 时,该值将被钳制在纹理的边缘,从而导致纹理的边界看起来被拉长。

CanvasItemTextureRepeat CANVAS_ITEM_TEXTURE_REPEAT_ENABLED = 2

当 UV 坐标超出 0-1 范围时,使纹理能够重复。如果使用其中一种线性过滤模式,则当采样器过滤纹理边缘时,这可能会导致纹理边缘出现伪影。

CanvasItemTextureRepeat CANVAS_ITEM_TEXTURE_REPEAT_MIRROR = 3

重复时翻转该纹理,使边缘对齐而不是突然改变。

CanvasItemTextureRepeat CANVAS_ITEM_TEXTURE_REPEAT_MAX = 4

CanvasItemTextureRepeat 枚举的最大值。


enum CanvasGroupMode:

CanvasGroupMode CANVAS_GROUP_MODE_DISABLED = 0

子级绘制在父级之上,不会被裁剪。

CanvasGroupMode CANVAS_GROUP_MODE_CLIP_ONLY = 1

父级仅用于裁剪目的。子级被裁剪到父级的可见区域,不绘制父级。

CanvasGroupMode CANVAS_GROUP_MODE_CLIP_AND_DRAW = 2

父级用于裁剪子级,但在将子级剪裁到其可见区域之前,父级也像往常一样绘制在子级下方。

CanvasGroupMode CANVAS_GROUP_MODE_TRANSPARENT = 3


enum CanvasLightMode:

CanvasLightMode CANVAS_LIGHT_MODE_POINT = 0

2D 点光(见 PointLight2D)。

CanvasLightMode CANVAS_LIGHT_MODE_DIRECTIONAL = 1

2D 方向(日月)光(见 DirectionalLight2D)。


enum CanvasLightBlendMode:

CanvasLightBlendMode CANVAS_LIGHT_BLEND_MODE_ADD = 0

向画布添加浅色。

CanvasLightBlendMode CANVAS_LIGHT_BLEND_MODE_SUB = 1

从画布中减去浅色。

CanvasLightBlendMode CANVAS_LIGHT_BLEND_MODE_MIX = 2

灯光根据透明度增加颜色。


enum CanvasLightShadowFilter:

CanvasLightShadowFilter CANVAS_LIGHT_FILTER_NONE = 0

不要对画布上的光影应用滤镜。

CanvasLightShadowFilter CANVAS_LIGHT_FILTER_PCF5 = 1

使用 PCF5 过滤法来过滤画布的光影。

CanvasLightShadowFilter CANVAS_LIGHT_FILTER_PCF13 = 2

使用 PCF13 过滤法来过滤画布的光影。

CanvasLightShadowFilter CANVAS_LIGHT_FILTER_MAX = 3

CanvasLightShadowFilter 枚举的最大值。


enum CanvasOccluderPolygonCullMode:

CanvasOccluderPolygonCullMode CANVAS_OCCLUDER_POLYGON_CULL_DISABLED = 0

禁用画布遮挡物的剔除。

CanvasOccluderPolygonCullMode CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE = 1

画布遮挡器的剔除是顺时针的。

CanvasOccluderPolygonCullMode CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE = 2

画布遮挡物的剔除是逆时针的。


enum GlobalShaderParameterType:

GlobalShaderParameterType GLOBAL_VAR_TYPE_BOOL = 0

布尔型全局着色器参数(global uniform bool ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_BVEC2 = 1

二维布尔向量全局着色器参数(global uniform bvec2 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_BVEC3 = 2

三维布尔向量全局着色器参数(global uniform bvec3 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_BVEC4 = 3

四维布尔向量全局着色器参数(global uniform bvec4 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_INT = 4

整数全局着色器参数(global uniform int ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_IVEC2 = 5

二维整数向量全局着色器参数(global uniform ivec2 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_IVEC3 = 6

三维整数向量全局着色器参数(global uniform ivec3 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_IVEC4 = 7

四维整数向量全局着色器参数(global uniform ivec4 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_RECT2I = 8

二维整数矩形全局着色器参数(global uniform ivec4 ...)。等价于着色器代码中的 GLOBAL_VAR_TYPE_IVEC4,但在编辑器 UI 中以 Rect2i 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_UINT = 9

无符号整数全局着色器参数(global uniform uint ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_UVEC2 = 10

二维无符号整数向量全局着色器参数(global uniform uvec2 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_UVEC3 = 11

三维无符号整数向量全局着色器参数(global uniform uvec3 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_UVEC4 = 12

四维无符号整数向量全局着色器参数(global uniform uvec4 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_FLOAT = 13

单精度浮点数全局着色器参数(global uniform float ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_VEC2 = 14

二维单精度浮点数向量全局着色器参数(global uniform vec2 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_VEC3 = 15

三维单精度浮点数向量全局着色器参数(global uniform vec3 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_VEC4 = 16

四维单精度浮点数向量全局着色器参数(global uniform vec4 ...)。

GlobalShaderParameterType GLOBAL_VAR_TYPE_COLOR = 17

颜色全局着色器参数(global uniform vec4 ...)。等价于着色器代码中的 GLOBAL_VAR_TYPE_VEC4,但在编辑器 UI 中以 Color 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_RECT2 = 18

二维浮点数矩形全局着色器参数(global uniform vec4 ...)。等价于着色器代码中的 GLOBAL_VAR_TYPE_VEC4,但在编辑器 UI 中以 Rect2 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_MAT2 = 19

2×2 矩阵全局着色器参数(global uniform mat2 ...)。编辑器 UI 中以 PackedInt32Array 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_MAT3 = 20

3×3 矩阵全局着色器参数(global uniform mat3 ...)。编辑器 UI 中以 Basis 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_MAT4 = 21

4×4 矩阵全局着色器参数(global uniform mat4 ...)。编辑器 UI 中以 Projection 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_TRANSFORM_2D = 22

二维变换全局着色器参数(global uniform mat2x3 ...)。编辑器 UI 中以 Transform2D 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_TRANSFORM = 23

三维变换全局着色器参数(global uniform mat3x4 ...)。编辑器 UI 中以 Transform3D 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_SAMPLER2D = 24

2D 采样器全局着色器参数(global uniform sampler2D ...)。编辑器 UI 中以 Texture2D 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_SAMPLER2DARRAY = 25

2D 采样器数组全局着色器参数(global uniform sampler2DArray ...)。编辑器 UI 中以 Texture2DArray 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_SAMPLER3D = 26

3D 采样器全局着色器参数(global uniform sampler3D ...)。编辑器 UI 中以 Texture3D 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_SAMPLERCUBE = 27

立方体贴图全局着色器参数(global uniform samplerCube ...)。编辑器 UI 中以 Cubemap 的形式暴露。

GlobalShaderParameterType GLOBAL_VAR_TYPE_MAX = 28

代表 GlobalShaderParameterType 枚举的大小。


enum RenderingInfo:

RenderingInfo RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME = 0

在当前 3D 场景中渲染的对象数。会根据相机的位置和旋转的不同而不同。

RenderingInfo RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME = 1

在当前 3D 场景中渲染的点、线、三角的数量。会根据相机的位置和旋转的不同而不同。

RenderingInfo RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME = 2

在当前 3D 场景中渲染执行的绘制调用的数量。会根据相机的位置和旋转的不同而不同。

RenderingInfo RENDERING_INFO_TEXTURE_MEM_USED = 3

纹理内存的使用量(单位为字节)。

RenderingInfo RENDERING_INFO_BUFFER_MEM_USED = 4

缓冲内存的使用量(单位为字节)。包括顶点数据、uniform 缓冲以及内部使用的各种不同缓冲类型。

RenderingInfo RENDERING_INFO_VIDEO_MEM_USED = 5

显存的使用量(单位为字节)。使用 Forward+ 或移动渲染后端时,始终比 RENDERING_INFO_TEXTURE_MEM_USEDRENDERING_INFO_BUFFER_MEM_USED 的总和要大,因为这两项之外还有一些杂项数据。使用 GL Compatibility 后端时,等于 RENDERING_INFO_TEXTURE_MEM_USEDRENDERING_INFO_BUFFER_MEM_USED 之和。


enum Features:

Features FEATURE_SHADERS = 0

硬件支持着色器。这个枚举目前在 Godot 3.x 中没有使用。

Features FEATURE_MULTITHREADED = 1

硬件支持多线程。这个枚举目前在 Godot 3.x 中没有使用。


常量

NO_INDEX_ARRAY = -1

标记一个错误,表明索引数组为空。

ARRAY_WEIGHTS_SIZE = 4

每个顶点的权重/骨骼数。

CANVAS_ITEM_Z_MIN = -4096

画布项目的最小 Z 层。

CANVAS_ITEM_Z_MAX = 4096

帆布项目的最大 Z 层。

MAX_GLOW_LEVELS = 7

辉光后期处理效果使用的最大辉光级别数。

MAX_CURSORS = 8

已废弃。这个常量未在内部使用。

MAX_2D_DIRECTIONAL_LIGHTS = 8

2D 中同一时间能够渲染的最大方向光的数量。

MATERIAL_RENDER_PRIORITY_MIN = -128

所有材质的最小渲染优先级。

MATERIAL_RENDER_PRIORITY_MAX = 127

所有材质的最大渲染优先级。

ARRAY_CUSTOM_COUNT = 4

可用自定义数据数组的数量(ARRAY_CUSTOM0ARRAY_CUSTOM1ARRAY_CUSTOM2ARRAY_CUSTOM3)。

PARTICLES_EMIT_FLAG_POSITION = 1

PARTICLES_EMIT_FLAG_ROTATION_SCALE = 2

PARTICLES_EMIT_FLAG_VELOCITY = 4

PARTICLES_EMIT_FLAG_COLOR = 8

PARTICLES_EMIT_FLAG_CUSTOM = 16


属性说明

bool render_loop_enabled

  • void set_render_loop_enabled ( bool value )

  • bool is_render_loop_enabled ( )

如果为 false,则完全禁用渲染,但引擎逻辑仍在处理中。即使禁用渲染,你也可以调用 force_draw 来绘制帧。


方法说明

Image[] bake_render_uv2 ( RID base, RID[] material_overrides, Vector2i image_size )

使用可选的 material_overrides,将 base 参数中传递的 Mesh 的材质数据,烘焙为一组大小为 image_sizeImage。返回包含 BakeChannels 中指定的材质属性的 Image 数组。


void call_on_render_thread ( Callable callable )

由于 RenderingServer 实际逻辑可能在单独的线程上运行,因此从主(或任何其他)线程访问其内部将导致错误。为了更轻松地运行可以安全访问渲染内部的代码(例如 RenderingDevice 和类似的 RD 类),请通过该函数推送一个可调用对象,以便它将在渲染线程上执行。


RID camera_attributes_create ( )

创建相机属性对象并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 camera_attributes_ RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价资源为 CameraAttributes


void camera_attributes_set_auto_exposure ( RID camera_attributes, bool enable, float min_sensitivity, float max_sensitivity, float speed, float scale )

设置用于自动曝光效果的参数。这些参数与 CameraAttributesCameraAttributesPractical 中的对应参数具有相同的含义。


void camera_attributes_set_dof_blur ( RID camera_attributes, bool far_enable, float far_distance, float far_transition, bool near_enable, float near_distance, float near_transition, float amount )

设置用于 DOF 模糊效果的参数。这些参数与 CameraAttributesPractical 中的对应参数具有相同的含义。


void camera_attributes_set_dof_blur_bokeh_shape ( DOFBokehShape shape )

设置 DOF 散景图案的形状。可以使用不同的形状来达到艺术效果,或达到性能目标。有关可用选项的更多详细信息,请参阅 DOFBokehShape


void camera_attributes_set_dof_blur_quality ( DOFBlurQuality quality, bool use_jitter )

将 DOF 模糊效果的质量级别设置为 DOFBlurQuality 中的选项之一。use_jitter 可用于抖动模糊过程中采集的样本,以隐藏伪影,代价是看起来更模糊。


void camera_attributes_set_exposure ( RID camera_attributes, float multiplier, float normalization )

设置渲染器所使用的曝光值。归一化量用于将给定的曝光值(Exposure Value,EV)烘焙进渲染计算,从而降低场景的动态范围。

可以用如下方法根据曝光值(EV100)来计算归一化系数:

  1. func get_exposure_normalization(float ev100):
  2. return 1.0 / (pow(2.0, ev100) * 1.2)

可以使用如下方法根据光圈(单位为 F 值)、快门速度(单位为秒)、感光度(单位为 ISO)来计算曝光值:

  1. func get_exposure(float aperture, float shutter_speed, float sensitivity):
  2. return log2((aperture * aperture) / shutterSpeed * (100.0 / sensitivity))

RID camera_create ( )

创建 3D 相机并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 camera_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价节点为 Camera3D


void camera_set_camera_attributes ( RID camera, RID effects )

将使用 camera_attributes_create 创建的 camera_attributes 设置给给定的相机。


void camera_set_cull_mask ( RID camera, int layers )

设置与该相机关联的剔除掩码。剔除掩码描述了该相机渲染了哪些 3D 图层。相当于 Camera3D.cull_mask


void camera_set_environment ( RID camera, RID env )

设置该相机使用的环境。相当于 Camera3D.environment


void camera_set_frustum ( RID camera, float size, Vector2 offset, float z_near, float z_far )

将相机设置为使用视锥投影。该模式允许调整 offset 参数以创建“倾斜视锥”效果。


void camera_set_orthogonal ( RID camera, float size, float z_near, float z_far )

将相机设置为使用正交投影,也称为正射投影。物体在屏幕上保持相同的尺寸,无论它们有多远。


void camera_set_perspective ( RID camera, float fovy_degrees, float z_near, float z_far )

将相机设置为使用透视投影。屏幕上的物体在远处时变得更小。


void camera_set_transform ( RID camera, Transform3D transform )

设置相机的 Transform3D


void camera_set_use_vertical_aspect ( RID camera, bool enable )

如果为 true,则保留水平长宽比,相当于 Camera3D.KEEP_WIDTH。如果为 false,则保留垂直长宽比,相当于 Camera3D.KEEP_HEIGHT


RID canvas_create ( )

创建画布并返回分配的 RID。可以通过返回的 RID 进行访问。这个 RID 会在所有 canvas_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

没有与画布等价的 ResourceNode


void canvas_item_add_animation_slice ( RID item, float animation_length, float slice_begin, float slice_end, float offset=0.0 )

后续的绘制命令将被忽略,除非它们位于指定的动画切片内。这是实现在背景上循环而不是不断重绘的动画的更快方法。


void canvas_item_add_circle ( RID item, Vector2 pos, float radius, Color color )

item RID 指向的 CanvasItem 上绘制一个圆圈。另见 CanvasItem.draw_circle


void canvas_item_add_clip_ignore ( RID item, bool ignore )

如果 ignoretrue,则忽略使用该画布项绘制的项目的裁剪,直到将 ignore 设置为 false 时再次调用。


void canvas_item_add_lcd_texture_rect_region ( RID item, Rect2 rect, RID texture, Rect2 src_rect, Color modulate )

另见 CanvasItem.draw_lcd_texture_rect_region


void canvas_item_add_line ( RID item, Vector2 from, Vector2 to, Color color, float width=-1.0, bool antialiased=false )

item RID 指向的 CanvasItem 上画一条线。另见 CanvasItem.draw_line


void canvas_item_add_mesh ( RID item, RID mesh, Transform2D transform=Transform2D(1, 0, 0, 1, 0, 0), Color modulate=Color(1, 1, 1, 1), RID texture=RID() )

使用给定的 transformmodulate 颜色、和 texture 绘制使用 mesh_create 创建的网格。这由 MeshInstance2D 内部使用。


void canvas_item_add_msdf_texture_rect_region ( RID item, Rect2 rect, RID texture, Rect2 src_rect, Color modulate=Color(1, 1, 1, 1), int outline_size=0, float px_range=1.0, float scale=1.0 )

另见 CanvasItem.draw_msdf_texture_rect_region


void canvas_item_add_multiline ( RID item, PackedVector2Array points, PackedColorArray colors, float width=-1.0 )

item RID 指向的 CanvasItem 上,绘制一个 2D 多线。另见 CanvasItem.draw_multilineCanvasItem.draw_multiline_colors


void canvas_item_add_multimesh ( RID item, RID mesh, RID texture=RID() )

item RID 指向的 CanvasItem 上,绘制一个 2D MultiMesh。另见 CanvasItem.draw_multimesh


void canvas_item_add_nine_patch ( RID item, Rect2 rect, Rect2 source, RID texture, Vector2 topleft, Vector2 bottomright, NinePatchAxisMode x_axis_mode=0, NinePatchAxisMode y_axis_mode=0, bool draw_center=true, Color modulate=Color(1, 1, 1, 1) )

item RID 指向的 CanvasItem 上,绘制一个九宫格矩形。


void canvas_item_add_particles ( RID item, RID particles, RID texture )

item RID 指向的 CanvasItem 上绘制粒子。


void canvas_item_add_polygon ( RID item, PackedVector2Array points, PackedColorArray colors, PackedVector2Array uvs=PackedVector2Array(), RID texture=RID() )

item RID 指向的 CanvasItem 上绘制一个 2D 多边形。如果你需要更加灵活的设置(例如能够使用骨骼),请改用 canvas_item_add_triangle_array。另见 CanvasItem.draw_polygon


void canvas_item_add_polyline ( RID item, PackedVector2Array points, PackedColorArray colors, float width=-1.0, bool antialiased=false )

item RID 指向的 CanvasItem 上,绘制一个 2D 折线。另见 CanvasItem.draw_polylineCanvasItem.draw_polyline_colors


void canvas_item_add_primitive ( RID item, PackedVector2Array points, PackedColorArray colors, PackedVector2Array uvs, RID texture )

item RID 指向的 CanvasItem 上绘制一个 2D 图元。另见 CanvasItem.draw_primitive


void canvas_item_add_rect ( RID item, Rect2 rect, Color color )

item RID 指向的 CanvasItem 上绘制一个矩形。另见 CanvasItem.draw_rect


void canvas_item_add_set_transform ( RID item, Transform2D transform )

设置将被用于变换后续画布项命令的 Transform2D


void canvas_item_add_texture_rect ( RID item, Rect2 rect, RID texture, bool tile=false, Color modulate=Color(1, 1, 1, 1), bool transpose=false )

item RID 指向的 CanvasItem 上绘制一个有纹理的 2D 矩形。另见 CanvasItem.draw_texture_rectTexture2D.draw_rect


void canvas_item_add_texture_rect_region ( RID item, Rect2 rect, RID texture, Rect2 src_rect, Color modulate=Color(1, 1, 1, 1), bool transpose=false, bool clip_uv=true )

item RID 指向的 CanvasItem 上绘制一个有纹理 2D 矩形的特定区域。另见 CanvasItem.draw_texture_rect_regionTexture2D.draw_rect_region


void canvas_item_add_triangle_array ( RID item, PackedInt32Array indices, PackedVector2Array points, PackedColorArray colors, PackedVector2Array uvs=PackedVector2Array(), PackedInt32Array bones=PackedInt32Array(), PackedFloat32Array weights=PackedFloat32Array(), RID texture=RID(), int count=-1 )

item RID 指向的 CanvasItem 上绘制一个三角形数组。渲染 Line2DStyleBoxFlat 时内部使用。canvas_item_add_triangle_array 非常灵活,但用起来要比 canvas_item_add_polygon 复杂。

注意:count 未使用,可以不指定。


void canvas_item_clear ( RID item )

清空 CanvasItem 并删除其中的所有命令。


RID canvas_item_create ( )

新建 CanvasItem 实例并返回其 RID。可以通过返回的 RID 进行访问。这个 RID 会在所有 canvas_item_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价节点为 CanvasItem


void canvas_item_set_canvas_group_mode ( RID item, CanvasGroupMode mode, float clear_margin=5.0, bool fit_empty=false, float fit_margin=0.0, bool blur_mipmaps=false )

设置对画布项进行 2D 渲染时使用的画布分组模式,画布项由 item RID 指定。要使用更快速但局限性更大的裁剪,请改用 canvas_item_set_clip

注意:等价的节点功能可以在 CanvasGroupCanvasItem.clip_children 中找到。


void canvas_item_set_clip ( RID item, bool clip )

如果 cliptrue,则画布项不会在其矩形坐标之外绘制内容,画布项由 item RID 指定。这种裁剪很快,但只能用于轴对齐的矩形。也就是说裁剪矩形会忽略旋转。更高阶的裁剪形状请改用 canvas_item_set_canvas_group_mode

注意:等价的节点功能可以在 Label.clip_textRichTextLabel(始终启用)等处找到。


void canvas_item_set_copy_to_backbuffer ( RID item, bool enabled, Rect2 rect )

设置 CanvasItem 以将矩形复制到后台缓冲区。


void canvas_item_set_custom_rect ( RID item, bool use_custom_rect, Rect2 rect=Rect2(0, 0, 0, 0) )

如果 use_custom_recttrue,则将画布项 item 的自定义可见性框设置为 rect(用于剔除)。设置自定义可见性框能够在绘制大量 2D 实例时降低 CPU 负载。如果 use_custom_rectfalse,则会根据画布项的绘制命令自动计算可见性框。


void canvas_item_set_default_texture_filter ( RID item, CanvasItemTextureFilter filter )

设置 RID 为 item 的画布项的默认纹理过滤模式。等价于 CanvasItem.texture_filter


void canvas_item_set_default_texture_repeat ( RID item, CanvasItemTextureRepeat repeat )

设置 RID 为 item 的画布项的默认纹理重复模式。等价于 CanvasItem.texture_repeat


void canvas_item_set_distance_field_mode ( RID item, bool enabled )

如果 enabledtrue,则为 RID 为 item 的画布项启用多通道带符号距离场渲染模式。旨在用于字体渲染,或针对使用 msdfgen 生成的图像。


void canvas_item_set_draw_behind_parent ( RID item, bool enabled )

如果 enabledtrue,则为 RID 为 item 的画布项绘制在父级之后。等价于 CanvasItem.show_behind_parent


void canvas_item_set_draw_index ( RID item, int index )

设置 CanvasItem 的索引。


void canvas_item_set_light_mask ( RID item, int mask )

设置 RID 为 item 的画布项的灯光掩码 mask。等价于 CanvasItem.light_mask


void canvas_item_set_material ( RID item, RID material )

设置 RID 为 item 的画布项的新材质 material。等价于 CanvasItem.material


void canvas_item_set_modulate ( RID item, Color color )

将 RID 为 item 的画布项的颜色与其相乘,子项也受影响。另见 canvas_item_set_self_modulate。等价于 CanvasItem.modulate


void canvas_item_set_parent ( RID item, RID parent )

CanvasItem 设置父级 CanvasItem。该项目会从父级继承变换、调制、可见性,和场景树中的 CanvasItem 节点一样。


void canvas_item_set_self_modulate ( RID item, Color color )

将 RID 为 item 的画布项的颜色与其相乘,子项不受影响。另见 canvas_item_set_modulate。等价于 CanvasItem.self_modulate


void canvas_item_set_sort_children_by_y ( RID item, bool enabled )

如果 enabledtrue,则会在绘制 Y 位置最低的子节点之后再绘制 Y 位置较高的子节点。Y 排序仅影响继承自该画布项的子级,不影响画布项自身,该画布项由 item RID 指定。等价于 CanvasItem.y_sort_enabled


void canvas_item_set_transform ( RID item, Transform2D transform )

将 RID 为 item 的画布项的变换设置为 transform。会影响该画布项绘制的位置和方法。子级画布项的变换会与父级变换相乘。等价于 Node2D.transform


void canvas_item_set_use_parent_material ( RID item, bool enabled )

设置 CanvasItem 是否使用其父级的材质。


void canvas_item_set_visibility_layer ( RID item, int visibility_layer )

设置与这个 CanvasItem 关联的渲染可见性层。只有渲染掩码与此匹配的 Viewport 节点才会渲染这个 CanvasItem


void canvas_item_set_visibility_notifier ( RID item, bool enable, Rect2 area, Callable enter_callable, Callable exit_callable )

将给定的 CanvasItem 设置为可见性通知器。area 定义可见性检查的区域。CanvasItem 进入屏幕时会调用 enter_callableCanvasItem 退出屏幕时会调用 exit_callable。如果 enablefalse,则该项目将不再作为通知器。

这个方法可用于手动模仿 VisibleOnScreenNotifier2D


void canvas_item_set_visible ( RID item, bool visible )

设置 CanvasItem 的可见性。


void canvas_item_set_z_as_relative_to_parent ( RID item, bool enabled )

如果启用此选项,则父项的 Z 索引将添加到子项的 Z 索引中。


void canvas_item_set_z_index ( RID item, int z_index )

设置 CanvasItem 的 Z 索引,即它的绘制顺序(首先绘制数值较低的索引)。


void canvas_light_attach_to_canvas ( RID light, RID canvas )

将画布灯连接到画布上,并将其从以前的画布中取出。


RID canvas_light_create ( )

创建画布灯光并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 canvas_light_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价节点为 Light2D


void canvas_light_occluder_attach_to_canvas ( RID occluder, RID canvas )

将光遮挡物添加到画布上,并将其从之前的画布中移除。


RID canvas_light_occluder_create ( )

创建光线遮挡器并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 canvas_light_occluder_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价节点为 LightOccluder2D


void canvas_light_occluder_set_as_sdf_collision ( RID occluder, bool enable )

目前没有这个方法的描述。请帮我们贡献一个


void canvas_light_occluder_set_enabled ( RID occluder, bool enabled )

启用或禁用遮光器。


void canvas_light_occluder_set_light_mask ( RID occluder, int mask )

光线遮罩。详情请参阅 LightOccluder2D


void canvas_light_occluder_set_polygon ( RID occluder, RID polygon )

设置光遮挡物的多边形。


void canvas_light_occluder_set_transform ( RID occluder, Transform2D transform )

设置光遮挡物的 Transform2D


void canvas_light_set_blend_mode ( RID light, CanvasLightBlendMode mode )

设置给定画布灯光的混合模式。选项见 CanvasLightBlendMode。等价于 Light2D.blend_mode


void canvas_light_set_color ( RID light, Color color )

设置灯光的颜色。


void canvas_light_set_enabled ( RID light, bool enabled )

启用或禁用画布灯。


void canvas_light_set_energy ( RID light, float energy )

设置画布灯的能量。


void canvas_light_set_height ( RID light, float height )

设置画布灯的高度。


void canvas_light_set_item_cull_mask ( RID light, int mask )

光线遮罩。详情请参阅 LightOccluder2D


void canvas_light_set_item_shadow_cull_mask ( RID light, int mask )

用于确定此画布灯光阴影影响哪些图层的二进制蒙版。有关光遮罩的更多信息,请参阅 LightOccluder2D


void canvas_light_set_layer_range ( RID light, int min_layer, int max_layer )

使用此灯光渲染的图层范围。


void canvas_light_set_mode ( RID light, CanvasLightMode mode )

光的模式,详见CanvasLightMode


void canvas_light_set_shadow_color ( RID light, Color color )

设置画布灯的阴影颜色。


void canvas_light_set_shadow_enabled ( RID light, bool enabled )

启用或禁用画布灯的阴影。


void canvas_light_set_shadow_filter ( RID light, CanvasLightShadowFilter filter )

设置画布灯的阴影过滤器,详见 CanvasLightShadowFilter


void canvas_light_set_shadow_smooth ( RID light, float smooth )

使阴影变得平滑。数值越低越光滑。


void canvas_light_set_texture ( RID light, RID texture )

设置 PointLight2D 所使用的纹理。相当于 PointLight2D.texture


void canvas_light_set_texture_offset ( RID light, Vector2 offset )

设置 PointLight2D 纹理的偏移量。相当于 PointLight2D.offset


void canvas_light_set_texture_scale ( RID light, float scale )

设置 PointLight2D 纹理的缩放系数。相当于 PointLight2D.texture_scale


void canvas_light_set_transform ( RID light, Transform2D transform )

设置画布灯的 Transform2D


void canvas_light_set_z_range ( RID light, int min_z, int max_z )

设置将受此光影响的对象的 Z 范围。相当于 Light2D.range_z_minLight2D.range_z_max


RID canvas_occluder_polygon_create ( )

新建光线遮挡多边形并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 canvas_occluder_polygon_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价节点为 OccluderPolygon2D


void canvas_occluder_polygon_set_cull_mode ( RID occluder_polygon, CanvasOccluderPolygonCullMode mode )

设置遮挡多边形剔除模式。详见 CanvasOccluderPolygonCullMode


void canvas_occluder_polygon_set_shape ( RID occluder_polygon, PackedVector2Array shape, bool closed )

设置遮挡多边形的形状。


void canvas_set_disable_scale ( bool disable )

目前没有这个方法的描述。请帮我们贡献一个


void canvas_set_item_mirroring ( RID canvas, RID item, Vector2 mirroring )

画布项目的副本将以镜像的局部偏移量Vector2被绘制。


void canvas_set_modulate ( RID canvas, Color color )

调制给定画布中的所有颜色。


void canvas_set_shadow_texture_size ( int size )

设置 Light2D 阴影渲染时使用的 ProjectSettings.rendering/2d/shadow_atlas/size(单位为像素)。该值会向上取整到最接近的 2 的幂。


RID canvas_texture_create ( )

创建画布纹理并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 canvas_texture_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。另见 texture_2d_create

注意:等价资源为 CanvasTexture,应该仅用于 2D 渲染,不用于 3D。


void canvas_texture_set_channel ( RID canvas_texture, CanvasTextureChannel channel, RID texture )

为画布纹理设置 channel 通道的纹理 texture,该画布纹理由 RID canvas_texture 指定。等价于 CanvasTexture.diffuse_textureCanvasTexture.normal_textureCanvasTexture.specular_texture


void canvas_texture_set_shading_parameters ( RID canvas_texture, Color base_color, float shininess )

为画布纹理设置 base_colorshininess,该画布纹理由 RID canvas_texture 指定。等价于 CanvasTexture.specular_colorCanvasTexture.specular_shininess


void canvas_texture_set_texture_filter ( RID canvas_texture, CanvasItemTextureFilter filter )

为画布纹理设置纹理过滤模式 filter,该画布纹理由 RID canvas_texture 指定。


void canvas_texture_set_texture_repeat ( RID canvas_texture, CanvasItemTextureRepeat repeat )

为画布纹理设置纹理重复模式 repeat,该画布纹理由 RID canvas_texture 指定。


RenderingDevice create_local_rendering_device ( ) const

创建一个 RenderingDevice,可以用来在单独的线程上进行绘制和计算操作。不能绘制到屏幕上,也不能与全局的 RenderingDevice 共享数据。

注意:使用 OpenGL 后端或在无头模式下运行时,这个函数始终返回 null


RID decal_create ( )

创建贴花并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 decal_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

如果要将这个贴花放置到场景中,请使用返回的 RID 调用 instance_set_base,将其附加至某个实例上。

注意:等价节点为 Decal


void decal_set_albedo_mix ( RID decal, float albedo_mix )

为贴花设置 albedo_mix,该贴花由 RID decal 指定。等价于 Decal.albedo_mix


void decal_set_cull_mask ( RID decal, int mask )

为贴花设置剔除掩码 mask,该贴花由 RID decal 指定。等价于 Decal.cull_mask


void decal_set_distance_fade ( RID decal, bool enabled, float begin, float length )

为贴花设置距离淡出参数,该贴花由 RID decal 指定。等价于 Decal.distance_fade_enabledDecal.distance_fade_beginDecal.distance_fade_length


void decal_set_emission_energy ( RID decal, float energy )

为贴花设置自发光能量 energy,该贴花由 RID decal 指定。等价于 Decal.emission_energy


void decal_set_fade ( RID decal, float above, float below )

为贴花设置上侧淡出(above)和下侧淡出(below),该贴花由 RID decal 指定。等价于 Decal.upper_fadeDecal.lower_fade


void decal_set_modulate ( RID decal, Color color )

将贴花的颜色乘数设置为 color,该贴花由 RID decal 指定。等价于 Decal.modulate


void decal_set_normal_fade ( RID decal, float fade )

设置 RID 为 decal 的贴花的法线淡出 fade。等价于 Decal.normal_fade


void decal_set_size ( RID decal, Vector3 size )

设置 RID 为 decal 的贴花的大小 size。等价于 Decal.size


void decal_set_texture ( RID decal, DecalTexture type, RID texture )

设置指定贴花中给定纹理类型插槽 type 的纹理 texture。等价于 Decal.set_texture


void decals_set_filter ( DecalFilter filter )

设置渲染贴花时所使用的纹理过滤模式 filter。这个参数是全局的,无法针对某个贴花单独设置。


RID directional_light_create ( )

创建平行光并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在大多数 light_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

如果要将这个平行光放置到场景中,请使用返回的 RID 调用 instance_set_base,将其附加至某个实例上。

注意:等价节点为 DirectionalLight3D


void directional_shadow_atlas_set_size ( int size, bool is_16bits )

设置 3D 方向灯光的阴影大小 size。另见 ProjectSettings.rendering/lights_and_shadows/directional_shadow/size。这个参数是全局的,无法针对某个视口单独设置。


void directional_soft_shadow_filter_set_quality ( ShadowQuality quality )

设置 3D 方向灯光的阴影过滤质量 quality。另见 ProjectSettings.rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality。这个参数是全局的,无法针对某个视口单独设置。


Image environment_bake_panorama ( RID environment, bool bake_irradiance, Vector2i size )

生成并返回包含 environment RID 中的天空的辐射度贴图的 Image。支持内置天空材质和自定义天空着色器。如果 bake_irradiancetrue,则保存的是辐照度贴图,而不是辐射度贴图。辐射度贴图用于渲染反射光,而辐照度贴图用于渲染环境光。另见 sky_bake_panorama

注意:图像使用线性色彩空间保存,未执行任何色调映射,也就是说如果在图像编辑器中查看会显得太暗。

注意:要让生成的全景图拥有正方形的像素,size 的长宽比应该为 2:1。辐射度贴图的高度超过 Sky.radiance_size 没有意义,不会增加细节。辐照度仅包含低频数据,保存时超过 128×64 像素通常没有意义。


RID environment_create ( )

创建环境并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 environment_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价资源为 Environment


void environment_glow_set_use_bicubic_upscale ( bool enable )

如果 enabletrue,则会为辉光启用双三次插值,能够牺牲性能、提升质量。等价于 ProjectSettings.rendering/environment/glow/upscale_mode


void environment_set_adjustment ( RID env, bool enable, float brightness, float contrast, float saturation, bool use_1d_color_correction, RID color_correction )

设置用于“调整”后期处理效果的数值。详见 Environment


void environment_set_ambient_light ( RID env, Color color, EnvironmentAmbientSource ambient=0, float energy=1.0, float sky_contibution=0.0, EnvironmentReflectionSource reflection_source=0 )

设置用于环境光渲染的数值。详见 Environment


void environment_set_background ( RID env, EnvironmentBG bg )

设置环境的背景模式。等价于 Environment.background_mode


void environment_set_bg_color ( RID env, Color color )

场景中清屏区域的颜色。仅在使用 ENV_BG_COLOR 背景模式时有效。


void environment_set_bg_energy ( RID env, float multiplier, float exposure_value )

设置背景颜色的强度。


void environment_set_canvas_max_layer ( RID env, int max_layer )

如果使用画布背景模式,设置要使用的最大层数。


void environment_set_fog ( RID env, bool enable, Color light_color, float light_energy, float sun_scatter, float density, float height, float height_density, float aerial_perspective, float sky_affect )

为指定的环境 RID 配置雾。详见 Environment 中的 fog_* 属性。


void environment_set_glow ( RID env, bool enable, PackedFloat32Array levels, float intensity, float strength, float mix, float bloom_threshold, EnvironmentGlowBlendMode blend_mode, float hdr_bleed_threshold, float hdr_bleed_scale, float hdr_luminance_cap, float glow_map_strength, RID glow_map )

为指定的环境 RID 配置辉光。详见 Environment 中的 glow_* 属性。


void environment_set_sdfgi ( RID env, bool enable, int cascades, float min_cell_size, EnvironmentSDFGIYScale y_scale, bool use_occlusion, float bounce_feedback, bool read_sky, float energy, float normal_bias, float probe_bias )

为指定的环境 RID 配置带符号距离场全局光照。详见 Environment 中的 sdfgi_* 属性。


void environment_set_sdfgi_frames_to_converge ( EnvironmentSDFGIFramesToConverge frames )

设置用于聚合带符号距离场全局光照的帧数。等价于 ProjectSettings.rendering/global_illumination/sdfgi/frames_to_converge


void environment_set_sdfgi_frames_to_update_light ( EnvironmentSDFGIFramesToUpdateLight frames )

设置计算带符号距离场全局光照时动态灯光间接光照的更新速度。等价于 ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights


void environment_set_sdfgi_ray_count ( EnvironmentSDFGIRayCount ray_count )

设置计算带符号距离场全局光照时每帧射出的光线数。等价于 ProjectSettings.rendering/global_illumination/sdfgi/probe_ray_count


void environment_set_sky ( RID env, RID sky )

设置当使用 BGMode 天空时被用作环境背景的 Sky。相当于 Environment.sky


void environment_set_sky_custom_fov ( RID env, float scale )

为背景 Sky 设置自定义视野。相当于 Environment.sky_custom_fov


void environment_set_sky_orientation ( RID env, Basis orientation )

设置被表示为 Basis 的背景 Sky 的旋转。相当于 Environment.sky_rotation,其中旋转向量用于构建该 Basis


void environment_set_ssao ( RID env, bool enable, float radius, float intensity, float power, float detail, float horizon, float sharpness, float light_affect, float ao_channel_affect )

设置屏幕空间环境光遮蔽(SSAO)后期处理效果所使用的变量。详情见 Environment


void environment_set_ssao_quality ( EnvironmentSSAOQuality quality, bool half_size, float adaptive_target, int blur_passes, float fadeout_from, float fadeout_to )

设置屏幕空间环境光遮蔽(SSAO)后期处理效果的质量级别。详情见 Environment


void environment_set_ssil_quality ( EnvironmentSSILQuality quality, bool half_size, float adaptive_target, int blur_passes, float fadeout_from, float fadeout_to )

设置屏幕空间间接照明(SSIL)后期处理效果的质量级别。详情见 Environment


void environment_set_ssr ( RID env, bool enable, int max_steps, float fade_in, float fade_out, float depth_tolerance )

设置屏幕空间反射(SSR)后期处理效果所使用的变量。详情见 Environment


void environment_set_ssr_roughness_quality ( EnvironmentSSRRoughnessQuality quality )

目前没有这个方法的描述。请帮我们贡献一个


void environment_set_tonemap ( RID env, EnvironmentToneMapper tone_mapper, float exposure, float white )

设置“色调映射”后期处理效果所使用的变量。详情见 Environment


void environment_set_volumetric_fog ( RID env, bool enable, float density, Color albedo, Color emission, float emission_energy, float anisotropy, float length, float p_detail_spread, float gi_inject, bool temporal_reprojection, float temporal_reprojection_amount, float ambient_inject, float sky_affect )

设置体积雾后期处理效果所使用的变量。详情见 Environment


void environment_set_volumetric_fog_filter_active ( bool active )

启用体积雾散射缓冲区的过滤。这会产生更平滑的体积,并且几乎没有欠采样伪影。


void environment_set_volumetric_fog_volume_size ( int size, int depth )

设置体积雾的片段体素缓冲区分辨率。size 会被屏幕的纵横比修改,用于设置缓冲区的宽度和高度。depth 则用于设置缓冲区的深度。


RID fog_volume_create ( )

新建雾体积并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 fog_volume_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价节点为 FogVolume


void fog_volume_set_material ( RID fog_volume, RID material )

设置该雾体积的 Material。可以是 FogMaterial,也可以是自定义的 ShaderMaterial


void fog_volume_set_shape ( RID fog_volume, FogVolumeShape shape )

将雾体积的形状设置为 FOG_VOLUME_SHAPE_ELLIPSOIDFOG_VOLUME_SHAPE_CONEFOG_VOLUME_SHAPE_CYLINDERFOG_VOLUME_SHAPE_BOXFOG_VOLUME_SHAPE_WORLD


void fog_volume_set_size ( RID fog_volume, Vector3 size )

设置形状为 FOG_VOLUME_SHAPE_ELLIPSOIDFOG_VOLUME_SHAPE_CONEFOG_VOLUME_SHAPE_CYLINDERFOG_VOLUME_SHAPE_BOX 时,雾体积的大小。


void force_draw ( bool swap_buffers=true, float frame_step=0.0 )

立即强制重绘所有的视口。


void force_sync ( )

强制在 CPU 和 GPU 之间进行同步,某些情况下是必须的。请只在需要时调用,因为 CPU-GPU 同步对性能有影响。


void free_rid ( RID rid )

尝试释放 RenderingServer 中的某个对象。为了避免内存泄漏,应该在使用完对象后调用,因为直接使用 RenderingServer 时不会自动进行内存管理。


Color get_default_clear_color ( )

返回默认清屏颜色,会在没有选择特定的清屏颜色时使用。另见 set_default_clear_color


float get_frame_setup_time_cpu ( ) const

返回在 CPU 上设置渲染所消耗的时间,单位为毫秒。这个值是所有视口共享的,不需要在查询的视口上启用 viewport_set_measure_render_time。另见 viewport_get_measured_render_time_cpu


RenderingDevice get_rendering_device ( ) const

返回全局的 RenderingDevice。

注意:当使用 OpenGL 后端或在无头模式下运行时,这个函数始终返回 null


int get_rendering_info ( RenderingInfo info )

返回关于渲染引擎的统计信息,能够用于性能分析。能够查询的值的列表见 RenderingInfo。另见 viewport_get_render_info,返回的是某个视口的相关信息。

注意:部分值目前仅考虑 3D 渲染,例如绘制调用的数量。

注意:引擎渲染至少 2 帧后渲染信息才可用。渲染信息不可用时 get_rendering_info 返回 0。要在 _ready() 中成功输出渲染信息,请使用如下代码:

  1. func _ready():
  2. for _i in 2:
  3. await get_tree().process_frame
  4. print(RenderingServer.get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME))

Dictionary[] get_shader_parameter_list ( RID shader ) const

返回着色器的参数。


RID get_test_cube ( )

返回测试立方体的 RID。首次调用 get_test_cube 时会创建并返回该网格,然后为后续调用缓存。另见 make_sphere_mesh


RID get_test_texture ( )

返回带有测试图案的 256×256 纹理(格式为 Image.FORMAT_RGB8)。首次调用 get_test_texture 时会创建并返回该纹理,然后为后续调用缓存。另见 get_white_texture

获取测试纹理并将其应用至 Sprite2D 节点的示例:

  1. var texture_rid = RenderingServer.get_test_texture()
  2. var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid))
  3. $Sprite2D.texture = texture

String get_video_adapter_api_version ( ) const

返回当前使用的图形视频适配器的版本(例如,Vulkan 为“1.2.189”,OpenGL 为“3.3.0 NVIDIA 510.60.02”)。该版本可能与硬件支持的实际最新版本不同,因为 Godot 可能并不总是要求最新版本。另见 OS.get_video_adapter_driver_info

注意:当运行无头或服务器可执行文件时,该函数返回一个空字符串。


String get_video_adapter_name ( ) const

返回视频适配器的名称(例如“GeForce GTX 1080/PCIe/SSE2”)。

注意:运行无头或服务器二进制文件时,该函数返回空字符串。

注意:在 web 平台上,某些浏览器(例如 Firefox)可能会报告不同的固定 GPU 名称,例如“GeForce GTX 980”(无论用户的实际 GPU 型号如何)。这样做是为了使指纹识别更加困难。


DeviceType get_video_adapter_type ( ) const

返回视频适配器的类型。由于给定代的专用显卡通常明显快于同一代制造的集成显卡,因此设备类型可用作自动图形设置调整的基础。然而,这并不总是正确的,因此请确保为用户提供一种手动覆盖图形设置的方法。

注意:当使用 OpenGL 后端或在无头模式下运行时,该函数始终返回 RenderingDevice.DEVICE_TYPE_OTHER


String get_video_adapter_vendor ( ) const

返回视频适配器的供应商(例如 “NVIDIA Corporation”)。

注意:当运行精简或服务器可执行文件时,该函数返回一个空字符串。


RID get_white_texture ( )

返回 4×4 的白色纹理(格式为 Image.FORMAT_RGB8)。首次调用 get_white_texture 时会创建并返回该纹理,然后为后续调用缓存。另见 get_test_texture

获取测试纹理并将其应用至 Sprite2D 节点的示例:

  1. var texture_rid = RenderingServer.get_white_texture()
  2. var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid))
  3. $Sprite2D.texture = texture

void gi_set_use_half_resolution ( bool half_resolution )

如果 half_resolutiontrue,则每个轴上都会使用一半的分辨率渲染 VoxelGI 和 SDFGI(Environment.sdfgi_enabled)缓冲区(例如视口大小为 1920×1080 时使用 960×540)。启用 VoxelGI 或 SDFGI 时,这样做能够显著提升性能,但代价是多边形边缘可能产生显示问题。视口分辨率越高,越不容易注意到质量的损失。LightmapGI 的渲染不受这个设置的影响。等价于 ProjectSettings.rendering/global_illumination/gi/use_half_resolution


void global_shader_parameter_add ( StringName name, GlobalShaderParameterType type, Variant default_value )

新建全局着色器 uniform。

注意:全局着色器参数名称是大小写敏感的。


Variant global_shader_parameter_get ( StringName name ) const

返回名称为 name 的全局着色器 uniform 的值。

注意:global_shader_parameter_get 存在较大的性能损耗,因为渲染线程需要与调用线程同步,这个过程比较慢。为了避免卡顿,请勿在游戏过程中使用这个方法。如果你需要在设置后在脚本中读取,请考虑创建一个自动加载,在设置全局参数的同时保存一份你需要查询的值。


StringName[] global_shader_parameter_get_list ( ) const

返回全局着色器 uniform 名称的列表。

注意:global_shader_parameter_get 存在较大的性能损耗,因为渲染线程需要与调用线程同步,这个过程比较慢。为了避免卡顿,请勿在游戏过程中使用这个方法。如果你需要在设置后在脚本中读取,请考虑创建一个自动加载,在设置全局参数的同时保存一份你需要查询的值。


GlobalShaderParameterType global_shader_parameter_get_type ( StringName name ) const

返回与名称为 name 的全局着色器 uniform 相关联的类型。

注意:global_shader_parameter_get 存在较大的性能损耗,因为渲染线程需要与调用线程同步,这个过程比较慢。为了避免卡顿,请勿在游戏过程中使用这个方法。如果你需要在设置后在脚本中读取,请考虑创建一个自动加载,在设置全局参数的同时保存一份你需要查询的值。


void global_shader_parameter_remove ( StringName name )

移除名称为 name 的全局着色器 Uniform。


void global_shader_parameter_set ( StringName name, Variant value )

将名称为 name 的全局着色器 Uniform 设置为 value


void global_shader_parameter_set_override ( StringName name, Variant value )

使用 value 覆盖名称为 name 的全局着色器 Uniform。等价于 ShaderGlobalsOverride 节点。


bool has_changed ( ) const

如果对 RenderingServer 的数据进行了更改,则返回 true。如果发生这种情况,通常会调用 force_draw


bool has_feature ( Features feature ) const

还没有实现。总是返回 false


bool has_os_feature ( String feature ) const

如果操作系统支持某个特性 feature,则返回 true。特性可以是 s3tcetcetc2


void instance_attach_object_instance_id ( RID instance, int id )

将唯一的对象 ID 附加到实例上。必须将对象 ID 附加到实例上,以便通过 instances_cull_aabbinstances_cull_convexinstances_cull_ray 进行正确的筛除。


void instance_attach_skeleton ( RID instance, RID skeleton )

将骨架附加到实例。并从实例中移除之前骨架。


RID instance_create ( )

创建可视实例并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 instance_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

实例可以将 3D 对象放置到场景中。粒子、网格、反射探针、贴花等对象都需要使用 instance_set_base 与实例关联,才能显示在场景中。

注意:等价节点为 VisualInstance3D


RID instance_create2 ( RID base, RID scenario )

创建可视实例并将其添加到 RenderingServer、设置基础和场景。可以通过返回的 RID 进行访问。这个 RID 会在大多数 instance_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。这是使用 instance_create 并手动设置基础和场景的快捷方式。


Variant instance_geometry_get_shader_parameter ( RID instance, StringName parameter ) const

返回指定 3D 几何体实例的单实例着色器 uniform 的值。等价于 GeometryInstance3D.get_instance_shader_parameter

注意:单实例着色器参数的名称是大小写敏感的。


Variant instance_geometry_get_shader_parameter_default_value ( RID instance, StringName parameter ) const

返回指定 3D 几何体实例的单实例着色器 uniform 的默认值。等价于 GeometryInstance3D.get_instance_shader_parameter


Dictionary[] instance_geometry_get_shader_parameter_list ( RID instance ) const

返回指定 3D 几何体实例的单实例着色器名称字典。返回的字典使用 PropertyInfo 格式,包含 nameclass_nametypehinthint_string 以及 usage 等键。等价于 GeometryInstance3D.get_instance_shader_parameter


void instance_geometry_set_cast_shadows_setting ( RID instance, ShadowCastingSetting shadow_casting_setting )

将阴影的投射设置设置为 ShadowCastingSetting 之一。相当于 GeometryInstance3D.cast_shadow


void instance_geometry_set_flag ( RID instance, InstanceFlags flag, bool enabled )

设置给定的 InstanceFlags 标志。更多细节请参阅 InstanceFlags


void instance_geometry_set_lightmap ( RID instance, RID lightmap, Rect2 lightmap_uv_scale, int lightmap_slice )

为指定的 3D 几何体实例设置要使用的光照贴图 GI 实例。必须同时指定该实例的光照贴图 UV 缩放(等价于 GeometryInstance3D.gi_lightmap_scale)和光照贴图图集切片。


void instance_geometry_set_lod_bias ( RID instance, float lod_bias )

为指定的 3D 几何体实例设置要使用的细节级别偏置。值越高,距离较远时的细节也会越高。等价于 GeometryInstance3D.lod_bias


void instance_geometry_set_material_overlay ( RID instance, RID material )

设置一个材质,该材质将在与该实例关联的网格的活动材质之上,为所有表面渲染。相当于GeometryInstance3D.material_overlay


void instance_geometry_set_material_override ( RID instance, RID material )

设置一种材质,该材质将覆盖与此实例关联的网格上的所有表面的材质。相当于 GeometryInstance3D.material_override


void instance_geometry_set_shader_parameter ( RID instance, StringName parameter, Variant value )

设置指定的 3D 几何体实例的单实例着色器 uniform。等价于 GeometryInstance3D.set_instance_shader_parameter


void instance_geometry_set_transparency ( RID instance, float transparency )

设置给定几何体实例的透明度。相当于 GeometryInstance3D.transparency

透明度为 0.0 时完全不透明,为 1.0 时则完全透明。如果值比 0.0 大,则会强制让几何体的材质经过透明管线,渲染起来相对较慢,可能由于错误的透明排序而产生渲染问题。不过,与使用透明材质不同,将 transparency 设置为比 0.0 大的值不会禁用阴影的渲染。

在空间着色器中,内置 ALPHA 的默认值为 1.0 - transparency

注意:transparency 会被钳制在 0.01.0 的范围内,所以这个属性无法让透明材质比原来更不透明。


void instance_geometry_set_visibility_range ( RID instance, float min, float max, float min_margin, float max_margin, VisibilityRangeFadeMode fade_mode )

设置给定几何实例的可见性范围值。相当于 GeometryInstance3D.visibility_range_begin 和相关属性。


void instance_set_base ( RID instance, RID base )

设置实例的基础。基础可以是在 RenderingServer 中创建的任何可以显示的 3D 对象。例如,任何光源类型、网格、多重网格、粒子系统、反射探针、贴花、光照贴图、体素 GI 和可见性通知器都可以设置为实例的基础,以便在场景中显示。


void instance_set_blend_shape_weight ( RID instance, int shape, float weight )

设置与该实例相关的特定混合形状的权重。


void instance_set_custom_aabb ( RID instance, AABB aabb )

设置将对象从视锥中剔除时使用的自定义 AABB。相当于设置 GeometryInstance3D.custom_aabb


void instance_set_extra_visibility_margin ( RID instance, float margin )

设置将对象从视锥中剔除时为 AABB 增加的边距大小。这样就可以避免剔除落在视锥外的对象。相当于 GeometryInstance3D.extra_cull_margin


void instance_set_ignore_culling ( RID instance, bool enabled )

如果为 true,则会忽略指定 3D 几何体实例的视锥剔除和遮挡剔除。和 GeometryInstance3D.ignore_occlusion_culling 不同,后者只会忽略遮挡剔除,仍会保留视锥剔除。


void instance_set_layer_mask ( RID instance, int mask )

设置这个实例要绘制到的渲染层。相当于 VisualInstance3D.layers


void instance_set_pivot_data ( RID instance, float sorting_offset, bool use_aabb_center )

设置排序偏移量,并在使用包围框还是实例原点进行深度排序之间进行切换。


void instance_set_scenario ( RID instance, RID scenario )

设置实例所在的场景。场景是对象将在其中显示的 3D 世界。


void instance_set_surface_override_material ( RID instance, int surface, RID material )

设置指定表面的覆盖材质。相当于 MeshInstance3D.set_surface_override_material


void instance_set_transform ( RID instance, Transform3D transform )

设置该实例的世界空间变换。相当于 Node3D.transform


void instance_set_visibility_parent ( RID instance, RID parent )

设置给定实例的可见性父级。相当于 Node3D.visibility_parent


void instance_set_visible ( RID instance, bool visible )

设置是否绘制实例。相当于 Node3D.visible


PackedInt64Array instances_cull_aabb ( AABB aabb, RID scenario=RID() ) const

返回与提供的 AABB 相交的对象 ID 的数组。仅考虑继承自 VisualInstance3D 的 3D 节点,例如 MeshInstance3DDirectionalLight3D。可使用 @GlobalScope.instance_from_id 来获取实际节点。必须提供一个场景 RID,且它在要查询的 World3D 中可用。这会强制更新所有已被队列以等待更新的资源。

警告:该函数主要供编辑器使用。对于游戏中的用例,最好是物理碰撞。


PackedInt64Array instances_cull_convex ( Plane[] convex, RID scenario=RID() ) const

返回与提供的凸形相交的对象 ID 的数组。仅考虑继承自 VisualInstance3D 的 3D 节点,例如 MeshInstance3DDirectionalLight3D。可使用 @GlobalScope.instance_from_id 以获取实际节点。必须提供场景 RID,且它在要查询的 World3D 中可用。这会强制更新所有已被队列以等待更新的资源。

警告:该函数主要供编辑器使用。对于游戏中的用例,最好是物理碰撞。


PackedInt64Array instances_cull_ray ( Vector3 from, Vector3 to, RID scenario=RID() ) const

返回与提供的 3D 射线相交的对象 ID 的数组。仅考虑继承自 VisualInstance3D 的 3D 节点,例如 MeshInstance3DDirectionalLight3D。可使用 @GlobalScope.instance_from_id 以获取实际节点。必须提供场景 RID,且它在你要查询的 World3D 中可用。这会强制更新所有已被队列以等待更新的资源。

警告:该函数主要供编辑器使用。对于游戏中的用例,最好是物理碰撞。


void light_directional_set_blend_splits ( RID light, bool enable )

如果为 true,则该平行光将在阴影贴图分割之间混合,从而在它们之间产生更平滑的过渡。相当于 DirectionalLight3D.directional_shadow_blend_splits


void light_directional_set_shadow_mode ( RID light, LightDirectionalShadowMode mode )

设置该平行光的阴影模式。相当于 DirectionalLight3D.directional_shadow_mode。有关选项,请参阅 LightDirectionalShadowMode


void light_directional_set_sky_mode ( RID light, LightDirectionalSkyMode mode )

如果为 true,则该灯光将不会被用于除天空着色器之外的任何内容。将其用于影响天空着色器的灯光,可能希望隐藏这些灯光以免影响场景的其余部分。例如,当天空着色器中的太阳落在地平线以下时,可能希望启用该功能。


void light_omni_set_shadow_mode ( RID light, LightOmniShadowMode mode )

设置是使用双抛物面还是立方体贴图作为阴影贴图。双抛物面速度更快,但可能会出现伪影。相当于 OmniLight3D.omni_shadow_mode


void light_projectors_set_filter ( LightProjectorFilter filter )

设置渲染光线投射器时使用的纹理过滤模式。这个参数是全局的,不能单独针对某个灯光进行设置。


void light_set_bake_mode ( RID light, LightBakeMode bake_mode )

设置指定 3D 灯光所使用的烘焙模式。相当于 Light3D.light_bake_mode


void light_set_color ( RID light, Color color )

设置灯光的颜色。相当于 Light3D.light_color


void light_set_cull_mask ( RID light, int mask )

设置该 3D 灯光的剔除掩码。灯光仅影响选定层中的对象。相当于 Light3D.light_cull_mask


void light_set_distance_fade ( RID decal, bool enabled, float begin, float shadow, float length )

设置该 3D 灯光的淡入淡出距离。这充当了一种多细节层次(LOD)的形式,可用于提高性能。相当于 Light3D.distance_fade_enabledLight3D.distance_fade_beginLight3D.distance_fade_shadowLight3D.distance_fade_length


void light_set_max_sdfgi_cascade ( RID light, int cascade )

设置渲染 3D 灯光间接光照时的 SDFGI 最大级联数。较高的值能够让远离相机的灯光在 SDFGI 中渲染。


void light_set_negative ( RID light, bool enable )

如果为 true,则该 3D 灯光会扣除光照而不是增加。等价于 Light3D.light_negative


void light_set_param ( RID light, LightParam param, float value )

设置指定的 3D 灯光参数。选项见 LightParam。等价于 Light3D.set_param


void light_set_projector ( RID light, RID texture )

设置指定 3D 灯光使用的投射器纹理。等价于 Light3D.light_projector


void light_set_reverse_cull_face_mode ( RID light, bool enabled )

如果为 true,则反转网格的背面剔除。当有一个背后有灯光的平面网格时,这会很有用。如果需要在网格的两侧投射阴影,请使用 instance_geometry_set_cast_shadows_setting,将网格设置为使用双面阴影。相当于 Light3D.shadow_reverse_cull_face


void light_set_shadow ( RID light, bool enabled )

如果为 true,则灯光会投射阴影。相当于 Light3D.shadow_enabled


RID lightmap_create ( )

新建全局光照的光照贴图并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 lightmap_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:与其等价的资源为 LightmapGI


PackedInt32Array lightmap_get_probe_capture_bsp_tree ( RID lightmap ) const

目前没有这个方法的描述。请帮我们贡献一个


PackedVector3Array lightmap_get_probe_capture_points ( RID lightmap ) const

目前没有这个方法的描述。请帮我们贡献一个


PackedColorArray lightmap_get_probe_capture_sh ( RID lightmap ) const

目前没有这个方法的描述。请帮我们贡献一个


PackedInt32Array lightmap_get_probe_capture_tetrahedra ( RID lightmap ) const

目前没有这个方法的描述。请帮我们贡献一个


void lightmap_set_baked_exposure_normalization ( RID lightmap, float baked_exposure )

用于通知渲染器在烘焙光照贴图时使用的曝光归一化值。该值将在运行时被使用和被调制,以确保即使场景范围的曝光归一化值在运行时发生变化,光照贴图也能保持一致的曝光水平。有关详细信息,请参阅 camera_attributes_set_exposure


void lightmap_set_probe_bounds ( RID lightmap, AABB bounds )

目前没有这个方法的描述。请帮我们贡献一个


void lightmap_set_probe_capture_data ( RID lightmap, PackedVector3Array points, PackedColorArray point_sh, PackedInt32Array tetrahedra, PackedInt32Array bsp_tree )

目前没有这个方法的描述。请帮我们贡献一个


void lightmap_set_probe_capture_update_speed ( float speed )

目前没有这个方法的描述。请帮我们贡献一个


void lightmap_set_probe_interior ( RID lightmap, bool interior )

目前没有这个方法的描述。请帮我们贡献一个


void lightmap_set_textures ( RID lightmap, RID light, bool uses_sh )

将给定光照贴图 lightmap GI 实例的纹理设置为 light RID 所指向的纹理数组。如果烘焙光照贴图纹理时的 LightmapGI.directionaltrue,则 uses_sh 也必须为 true


RID make_sphere_mesh ( int latitudes, int longitudes, float radius )

返回球体网格,具有给定数量的水平细分、垂直细分、半径。另见 get_test_cube


RID material_create ( )

创建空材质并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 material_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:与其等价的资源为 Material


Variant material_get_param ( RID material, StringName parameter ) const

返回特定材质的参数值。


void material_set_next_pass ( RID material, RID next_material )

设置对象的下一个材质。


void material_set_param ( RID material, StringName parameter, Variant value )

设置材质的参数。


void material_set_render_priority ( RID material, int priority )

设置材质的渲染优先级。


void material_set_shader ( RID shader_material, RID shader )

设置着色器材质的着色器。


void mesh_add_surface ( RID mesh, Dictionary surface )

目前没有这个方法的描述。请帮我们贡献一个


void mesh_add_surface_from_arrays ( RID mesh, PrimitiveType primitive, Array arrays, Array blend_shapes=[], Dictionary lods={}, BitField<ArrayFormat> compress_format=0 )

目前没有这个方法的描述。请帮我们贡献一个


void mesh_clear ( RID mesh )

移除网格中的所有表面。


RID mesh_create ( )

新建网格并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 mesh_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

如果要将这个网格放置到场景中,请使用返回的 RID 调用 instance_set_base,将其附加至某个实例上。

注意:与其等价的资源为 Mesh


RID mesh_create_from_surfaces ( Dictionary[] surfaces, int blend_shape_count=0 )

目前没有这个方法的描述。请帮我们贡献一个


int mesh_get_blend_shape_count ( RID mesh ) const

返回一个网格的混合形状数量。


BlendShapeMode mesh_get_blend_shape_mode ( RID mesh ) const

返回网格的混合形状模式。


AABB mesh_get_custom_aabb ( RID mesh ) const

返回网格的自定义 AABB。


Dictionary mesh_get_surface ( RID mesh, int surface )

目前没有这个方法的描述。请帮我们贡献一个


int mesh_get_surface_count ( RID mesh ) const

返回网格的面数。


void mesh_set_blend_shape_mode ( RID mesh, BlendShapeMode mode )

设置网格的混合形状模式。


void mesh_set_custom_aabb ( RID mesh, AABB aabb )

设置网格的自定义 AABB。


void mesh_set_shadow_mesh ( RID mesh, RID shadow_mesh )

目前没有这个方法的描述。请帮我们贡献一个


Array mesh_surface_get_arrays ( RID mesh, int surface ) const

返回网格表面的缓冲区数组。


Array[] mesh_surface_get_blend_shape_arrays ( RID mesh, int surface ) const

返回网格表面的混合形状数组。


int mesh_surface_get_format_attribute_stride ( BitField<ArrayFormat> format, int vertex_count ) const

返回具有给定 format 的网格的属性缓冲区的步幅。


int mesh_surface_get_format_normal_tangent_stride ( BitField<ArrayFormat> format, int vertex_count ) const

返回具有给定 format 的网格的组合法线和切线的步幅。重要的是请注意,虽然法线和切线位于带有顶点的顶点缓冲区中,但它们仅彼此交错,因此具有与顶点位置不同的步幅。


int mesh_surface_get_format_offset ( BitField<ArrayFormat> format, int vertex_count, int array_index ) const

返回由 array_index 给定属性在其各自缓冲区开头的偏移量。


int mesh_surface_get_format_skin_stride ( BitField<ArrayFormat> format, int vertex_count ) const

返回具有给定 format 的网格的皮肤缓冲区的步幅。


int mesh_surface_get_format_vertex_stride ( BitField<ArrayFormat> format, int vertex_count ) const

返回具有给定 format 的网格的顶点位置的步幅。请注意,重要的是,顶点位置是连续存储的,并且不与顶点缓冲区中的其他属性(法线和切线)交错。


RID mesh_surface_get_material ( RID mesh, int surface ) const

返回网格表面的材质。


void mesh_surface_set_material ( RID mesh, int surface, RID material )

设置网格表面的材质。


void mesh_surface_update_attribute_region ( RID mesh, int surface, int offset, PackedByteArray data )

目前没有这个方法的描述。请帮我们贡献一个


void mesh_surface_update_skin_region ( RID mesh, int surface, int offset, PackedByteArray data )

目前没有这个方法的描述。请帮我们贡献一个


void mesh_surface_update_vertex_region ( RID mesh, int surface, int offset, PackedByteArray data )

目前没有这个方法的描述。请帮我们贡献一个


void multimesh_allocate_data ( RID multimesh, int instances, MultimeshTransformFormat transform_format, bool color_format=false, bool custom_data_format=false )

目前没有这个方法的描述。请帮我们贡献一个


RID multimesh_create ( )

新建多网格并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 multimesh_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

如果要将这个多网格放置到场景中,请使用返回的 RID 调用 instance_set_base,将其附加至某个实例上。

注意:与其等价的资源为 MultiMesh


AABB multimesh_get_aabb ( RID multimesh ) const

计算并返回轴对齐的边界框,该边界框将所有的实例都包含在 multimesh 中。


PackedFloat32Array multimesh_get_buffer ( RID multimesh ) const

返回 MultiMesh 数据(实例的变换、颜色等)。返回数据的描述见 multimesh_set_buffer

注意:如果缓冲位于引擎的内部缓存中,则需要从 GPU 显存获取,并且有可能需要解压。也就是说 multimesh_get_buffer 可能会比较慢,应该尽可能避免。


int multimesh_get_instance_count ( RID multimesh ) const

返回分配给这个 multimesh 的实例的数量。


RID multimesh_get_mesh ( RID multimesh ) const

返回用于绘制此 multimesh 的 RID。


int multimesh_get_visible_instances ( RID multimesh ) const

返回此 multimesh 的可见实例数。


Color multimesh_instance_get_color ( RID multimesh, int index ) const

返回指定实例将被调制的颜色。


Color multimesh_instance_get_custom_data ( RID multimesh, int index ) const

返回与指定实例相关的自定义数据。


Transform3D multimesh_instance_get_transform ( RID multimesh, int index ) const

返回指定实例的 Transform3D


Transform2D multimesh_instance_get_transform_2d ( RID multimesh, int index ) const

返回指定实例的 Transform2D。只在 multimesh 设置为使用 2D 变换时使用。


void multimesh_instance_set_color ( RID multimesh, int index, Color color )

设置这个实例的调制颜色。相当于 MultiMesh.set_instance_color


void multimesh_instance_set_custom_data ( RID multimesh, int index, Color custom_data )

为这个实例设置自定义数据。自定义数据以 Color 的形式传递,但在着色器中会被解释为 vec4。相当于 MultiMesh.set_instance_custom_data


void multimesh_instance_set_transform ( RID multimesh, int index, Transform3D transform )

为此实例设置 Transform3D。相当于 MultiMesh.set_instance_transform


void multimesh_instance_set_transform_2d ( RID multimesh, int index, Transform2D transform )

为此实例设置 Transform2D。用于在 2D 中使用 multimesh 时。相当于 MultiMesh.set_instance_transform_2d


void multimesh_set_buffer ( RID multimesh, PackedFloat32Array buffer )

将用于绘制 multimesh 的全部数据立即写入 buffer(例如实例的变换和颜色)。buffer 的大小必须与实例数和单实例数据大小的乘积匹配(后者取决于启用的 MultiMesh 字段)。否则,会输出错误信息,不渲染任何东西。另见 multimesh_get_buffer

单实例数据大小与预期的数据顺序如下:

  1. 2D:
  2. - 位置:8 floatTransform2D 8 float
  3. - 位置 + 顶点颜色:12 floatTransform2D 8 float、颜色占 4 float
  4. - 位置 + 自定义数据:12 floatTransform2D 8 float、自定义数据占 4 float
  5. - 位置 + 顶点颜色 + 自定义数据:16 floatTransform2D 8 float、颜色占 4 float、自定义数据占 4 float
  6. 3D:
  7. - 位置:12 floatTransform3D 12 float
  8. - 位置 + 顶点颜色:16 floatTransform3D 12 float、颜色占 4 float
  9. - 位置 + 自定义数据:16 floatTransform3D 12 float、自定义数据占 4 float
  10. - 位置 + 顶点颜色 + 自定义数据:20 floatTransform3D 12 float、颜色占 4 float、自定义数据占 4 float

void multimesh_set_mesh ( RID multimesh, RID mesh )

设置 Multimesh 所要绘制的网格。相当于 MultiMesh.mesh


void multimesh_set_visible_instances ( RID multimesh, int visible )

设置在给定时间内可见的实例的数量。如果是 -1,所有被分配的实例都会被画出来。相当于 MultiMesh.visible_instance_count


RID occluder_create ( )

创建遮挡器实例并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 occluder_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:与其等价的资源为 Occluder3D(请勿与 OccluderInstance3D 节点混淆)。


void occluder_set_mesh ( RID occluder, PackedVector3Array vertices, PackedInt32Array indices )

设置给定遮挡器 RID 的网格数据,控制执行遮挡剔除时的形状。


RID omni_light_create ( )

创建一个新的全向灯并将其添加到 RenderingServer。可以使用返回的 RID 访问它。该 RID 可用于大多数 light_* RenderingServer 函数。

一旦使用 RID 完成操作后,需要使用 RenderingServer 的方法 free_rid 来释放该 RID。

要放置在场景中,请使用 instance_set_base 使用该返回的 RID 将该全向灯附加到一个实例。

注意:等价节点为 OmniLight3D


RID particles_collision_create ( )

新建 3D GPU 粒子碰撞或吸引器并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 particles_collision_* RenderingServer 函数中使用。

注意:等价节点为 GPUParticlesCollision3DGPUParticlesAttractor3D


void particles_collision_height_field_update ( RID particles_collision )

请求对 3D GPU 粒子碰撞高度图进行更新。3D GPU 粒子碰撞高度图可能会自动调用这个函数,取决于 GPUParticlesCollisionHeightField3D.update_mode


void particles_collision_set_attractor_attenuation ( RID particles_collision, float curve )

为 RID 为 particles_collision 的 3D GPU 粒子吸引器设置衰减曲线 curve。仅用于吸引器,对碰撞体不适用。等价于 GPUParticlesAttractor3D.attenuation


void particles_collision_set_attractor_directionality ( RID particles_collision, float amount )

设置 3D GPU 粒子吸引器的方向量 amount,吸引器由 RID particles_collision 指定。仅用于吸引器,不适用于碰撞体。等价于 GPUParticlesAttractor3D.directionality


void particles_collision_set_attractor_strength ( RID particles_collision, float strength )

设置 3D GPU 粒子吸引器的强度 strength,吸引器由 RID particles_collision 指定。仅用于吸引器,不适用于碰撞体。等价于 GPUParticlesAttractor3D.strength


void particles_collision_set_box_extents ( RID particles_collision, Vector3 extents )

设置 3D GPU 粒子吸引器的范围 extents,吸引器由 RID particles_collision 指定。根据 particles_collision 类型的不同,等价于 GPUParticlesCollisionBox3D.sizeGPUParticlesCollisionSDF3D.sizeGPUParticlesCollisionHeightField3D.sizeGPUParticlesAttractorBox3D.sizeGPUParticlesAttractorVectorField3D.size


void particles_collision_set_collision_type ( RID particles_collision, ParticlesCollisionType type )

设置 3D GPU 粒子碰撞或吸引器的形状类型 type,碰撞或吸引器由 RID particles_collision 指定。


void particles_collision_set_cull_mask ( RID particles_collision, int mask )

设置 3D GPU 粒子碰撞或吸引器的剔除掩码 mask,碰撞或吸引器由 RID particles_collision 指定。根据 particles_collision 类型的不同,等价于 GPUParticlesCollision3D.cull_maskGPUParticlesAttractor3D.cull_mask


void particles_collision_set_field_texture ( RID particles_collision, RID texture )

设置 3D GPU 粒子碰撞的带符号距离场纹理 texture,碰撞由 RID particles_collision 指定。根据 particles_collision 类型的不同,等价于 GPUParticlesCollisionSDF3D.textureGPUParticlesAttractorVectorField3D.texture


void particles_collision_set_height_field_resolution ( RID particles_collision, ParticlesCollisionHeightfieldResolution resolution )

设置 3D GPU 粒子高度图碰撞的高度图分辨率 resolution,碰撞由 RID particles_collision 指定。等价于 GPUParticlesCollisionHeightField3D.resolution


void particles_collision_set_sphere_radius ( RID particles_collision, float radius )

设置 3D GPU 粒子球体碰撞或吸引器的半径 radius,碰撞或吸引器由 RID particles_collision 指定。根据 particles_collision 类型的不同,等价于 GPUParticlesCollisionSphere3D.radiusGPUParticlesAttractorSphere3D.radius


RID particles_create ( )

创建基于 GPU 的粒子系统并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 particles_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

如果要将这个粒子系统放置到场景中,请使用返回的 RID 调用 instance_set_base,将其附加至某个实例上。

注意:等价节点为 GPUParticles2DGPUParticles3D

注意:所有 particles_* 方法都仅适用于基于 GPU 的粒子,不适用于基于 CPU 的粒子。RenderingServer 中没有 CPUParticles2DCPUParticles3D 的等价函数,因为这两个节点底层使用的是 MultiMeshInstance2DMultiMeshInstance3D(见 multimesh_* 方法)。


void particles_emit ( RID particles, Transform3D transform, Vector3 velocity, Color color, Color custom, int emit_flags )

particles 实例中手动发射粒子。


AABB particles_get_current_aabb ( RID particles )

计算并返回包含所有粒子的轴对齐边界框。相当于 GPUParticles3D.capture_aabb


bool particles_get_emitting ( RID particles )

如果当前粒子被设置发射,则返回 true


bool particles_is_inactive ( RID particles )

如果粒子没有发射并且粒子设置为非活动状态,则返回 true


void particles_request_process ( RID particles )

将粒子系统添加到需要更新的粒子系统列表中。更新将在下一帧或下一次调用 instances_cull_aabbinstances_cull_convexinstances_cull_ray 时进行。


void particles_restart ( RID particles )

下次更新时重置粒子。相当于 GPUParticles3D.restart


void particles_set_amount ( RID particles, int amount )

设置要绘制的粒子的数量,并为其分配内存。相当于 GPUParticles3D.amount


void particles_set_amount_ratio ( RID particles, float ratio )

设置要被发射的粒子的数量比率。相当于 GPUParticles3D.amount_ratio


void particles_set_collision_base_size ( RID particles, float size )

目前没有这个方法的描述。请帮我们贡献一个


void particles_set_custom_aabb ( RID particles, AABB aabb )

设置粒子系统的自定义轴对齐边界框。相当于 GPUParticles3D.visibility_aabb


void particles_set_draw_order ( RID particles, ParticlesDrawOrder order )

将粒子的绘制顺序设置为命名枚举 ParticlesDrawOrder。选项见 ParticlesDrawOrder。相当于 GPUParticles3D.draw_order


void particles_set_draw_pass_mesh ( RID particles, int pass, RID mesh )

设置用于指定绘制阶段的网格。相当于 GPUParticles3D.draw_pass_1GPUParticles3D.draw_pass_2GPUParticles3D.draw_pass_3、和 GPUParticles3D.draw_pass_4


void particles_set_draw_passes ( RID particles, int count )

设置要使用的绘制阶段的数量。相当于 GPUParticles3D.draw_passes


void particles_set_emission_transform ( RID particles, Transform3D transform )

设置粒子首次发射时使用的 Transform3D


void particles_set_emitter_velocity ( RID particles, Vector3 velocity )

设置粒子节点的速度,将由 ParticleProcessMaterial.inherit_velocity_ratio 使用。


void particles_set_emitting ( RID particles, bool emitting )

如果为 true,则粒子将随时间发射。设置为 false 不会重置粒子,只会停止发射。相当于 GPUParticles3D.emitting


void particles_set_explosiveness_ratio ( RID particles, float ratio )

设置爆发比例。相当于 GPUParticles3D.explosiveness


void particles_set_fixed_fps ( RID particles, int fps )

设置粒子系统渲染的固定帧率。相当于 GPUParticles3D.fixed_fps


void particles_set_fractional_delta ( RID particles, bool enable )

如果为 true,则使用分数增量来平滑粒子的运动。相当于 GPUParticles3D.fract_delta


void particles_set_interp_to_end ( RID particles, float factor )

设置通知 ParticleProcessMaterial 将所有粒子冲向其生命周期终点的值。


void particles_set_interpolate ( RID particles, bool enable )

目前没有这个方法的描述。请帮我们贡献一个


void particles_set_lifetime ( RID particles, float lifetime )

设置系统中每个粒子的生命周期。相当于 GPUParticles3D.lifetime


void particles_set_mode ( RID particles, ParticlesMode mode )

设置由 RID particles 指定的 GPU 粒子是否应该根据 mode 在 2D 或 3D 中渲染。


void particles_set_one_shot ( RID particles, bool one_shot )

如果为 true,则粒子将发射一次然后停止。相当于 GPUParticles3D.one_shot


void particles_set_pre_process_time ( RID particles, float time )

设置粒子动画的预处理时间。这样可以让动画延迟到粒子开始发射之后再开始。相当于 GPUParticles3D.preprocess


void particles_set_process_material ( RID particles, RID material )

设置用于处理粒子的材质。

注意:这不是用来绘制材质的材质。相当于 GPUParticles3D.process_material


void particles_set_randomness_ratio ( RID particles, float ratio )

设置发射随机性比例。会随机化该粒子在其相位内的发射。相当于 GPUParticles3D.randomness


void particles_set_speed_scale ( RID particles, float scale )

设置粒子系统的速度缩放。相当于 GPUParticles3D.speed_scale


void particles_set_subemitter ( RID particles, RID subemitter_particles )

目前没有这个方法的描述。请帮我们贡献一个


void particles_set_trail_bind_poses ( RID particles, Transform3D[] bind_poses )

目前没有这个方法的描述。请帮我们贡献一个


void particles_set_trails ( RID particles, bool enable, float length_sec )

如果 enabletrue,则会为 particles 启用尾迹,长度为 length_sec 秒。等价于 GPUParticles3D.trail_enabledGPUParticles3D.trail_lifetime


void particles_set_transform_align ( RID particles, ParticlesTransformAlign align )

目前没有这个方法的描述。请帮我们贡献一个


void particles_set_use_local_coordinates ( RID particles, bool enable )

如果为 true,则粒子使用局部坐标。如果为 false 则使用全局坐标。相当于 GPUParticles3D.local_coords


void positional_soft_shadow_filter_set_quality ( ShadowQuality quality )

设置 3D 全向灯和聚光灯阴影的过滤质量。另见 ProjectSettings.rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality。这个参数是全局的,无法针对单个视口设置。


RID reflection_probe_create ( )

创建反射探针并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 reflection_probe_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

如果要将这个反射探针放置到场景中,请使用返回的 RID 调用 instance_set_base,将其附加至某个实例上。

注意:等价节点为 ReflectionProbe


void reflection_probe_set_ambient_color ( RID probe, Color color )

设置反射探针的自定义环境光颜色。等价于 ReflectionProbe.ambient_color


void reflection_probe_set_ambient_energy ( RID probe, float energy )

设置反射探针的自定义环境光能量。等价于 ReflectionProbe.ambient_color_energy


void reflection_probe_set_ambient_mode ( RID probe, ReflectionProbeAmbientMode mode )

设置反射探针的环境光模式。等价于 ReflectionProbe.ambient_mode


void reflection_probe_set_as_interior ( RID probe, bool enable )

如果为 true,则反射将忽略天空的贡献。相当于 ReflectionProbe.interior


void reflection_probe_set_cull_mask ( RID probe, int layers )

为这个反射探针设置渲染遮蔽。只有具有匹配的遮蔽罩的实例才会被这个探针渲染。相当于 ReflectionProbe.cull_mask


void reflection_probe_set_enable_box_projection ( RID probe, bool enable )

如果为 true,则使用箱体投影。这可以使反射在某些情况下看起来更正确。相当于 ReflectionProbe.box_projection


void reflection_probe_set_enable_shadows ( RID probe, bool enable )

如果为 true,计算反射探针中的阴影。这会使得反射的计算速度慢得多。相当于 ReflectionProbe.enable_shadows


void reflection_probe_set_intensity ( RID probe, float intensity )

设置反射探针的强度。强度调节反射的强度。相当于 ReflectionProbe.intensity


void reflection_probe_set_max_distance ( RID probe, float distance )

设置物体在被删除前与探针的最大距离。相当于 ReflectionProbe.max_distance


void reflection_probe_set_mesh_lod_threshold ( RID probe, float pixels )

设置渲染反射探针时所使用的网格细节级别。值越高,生成了 LOD 变体的网格所使用的版本细节就越低,能够提升性能。等价于 ReflectionProbe.mesh_lod_threshold


void reflection_probe_set_origin_offset ( RID probe, Vector3 offset )

设置当此反射探针处于框项目模式时要使用的源偏移。相当于 ReflectionProbe.origin_offset


void reflection_probe_set_resolution ( RID probe, int resolution )

设置渲染指定的反射探针时使用的分辨率。resolution 指定的是各个立方体贴图面的分辨率:例如指定 512 时就会分配 6 个 512×512 的面(另外还有粗糙度级别的 mipmap)。


void reflection_probe_set_size ( RID probe, Vector3 size )

设置反射探针将捕获的区域的大小。相当于 ReflectionProbe.size


void reflection_probe_set_update_mode ( RID probe, ReflectionProbeUpdateMode mode )

设置反射探针的更新频率。可以是一次,也可以是每一帧。参阅 ReflectionProbeUpdateMode 选项。


void request_frame_drawn_callback ( Callable callable )

安排对给定可调用体的回调,会在一帧绘制完成后回调。


RID scenario_create ( )

创建场景并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 scenario_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

场景是所有可视实例存在的 3D 世界。


void scenario_set_camera_attributes ( RID scenario, RID effects )

设置该场景会使用的相机属性(effects)。另见 CameraAttributes


void scenario_set_environment ( RID scenario, RID environment )

设置该场景会使用的环境。另见 Environment


void scenario_set_fallback_environment ( RID scenario, RID environment )

设置此方案所使用的后备环境。如果没有设置环境,则使用后备环境。这被编辑器用来提供一个默认环境。


void screen_space_roughness_limiter_set_active ( bool enable, float amount, float limit )

设置屏幕空间粗糙度限制参数,例如是否应该启用以及阈值等。等价于 ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/enabledProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/amountProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/limit


void set_boot_image ( Image image, Color color, bool scale, bool use_filter=true )

设置一个启动图像。颜色定义背景颜色。如果 scaletrue,则该图像将被缩放以适应屏幕大小。如果 use_filtertrue,则该图像将使用线性插值的方式进行缩放。如果 use_filterfalse,则该图像将使用最近邻插值的方式进行缩放。


void set_debug_generate_wireframes ( bool generate )

这个方法目前未实现,将 generate 设为 true 调用时没有任何效果。


void set_default_clear_color ( Color color )

设置默认清屏颜色,会在尚未选择特定的清屏颜色时使用。另见 get_default_clear_color


RID shader_create ( )

创建空的着色器并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 shader_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价资源为 Shader


String shader_get_code ( RID shader ) const

以字符串形式返回着色器的源代码。


RID shader_get_default_texture_parameter ( RID shader, StringName name, int index=0 ) const

返回着色器中的默认纹理,根据名称搜索。

注意:如果使用了采样器数组,请使用 index 访问指定的纹理。


Variant shader_get_parameter_default ( RID shader, StringName name ) const

返回指定着色器 Uniform 的默认值。通常是着色器源代码中编写的值。


void shader_set_code ( RID shader, String code )

设置着色器的源代码(更改后会出发重新编译)。


void shader_set_default_texture_parameter ( RID shader, StringName name, RID texture, int index=0 )

设置着色器的默认纹理。覆盖给定名称的纹理。

注意:使用采样器数组时,使用 index 访问指定的纹理。


void shader_set_path_hint ( RID shader, String path )

设置指定着色器路径提示。一般应该与 Shader 资源的 Resource.resource_path 相匹配。


void skeleton_allocate_data ( RID skeleton, int bones, bool is_2d_skeleton=false )

目前没有这个方法的描述。请帮我们贡献一个


Transform3D skeleton_bone_get_transform ( RID skeleton, int bone ) const

返回该骨架中指定骨骼的 Transform3D


Transform2D skeleton_bone_get_transform_2d ( RID skeleton, int bone ) const

返回该骨架中指定骨骼的 Transform2D


void skeleton_bone_set_transform ( RID skeleton, int bone, Transform3D transform )

设置该骨架中指定骨骼的 Transform3D


void skeleton_bone_set_transform_2d ( RID skeleton, int bone, Transform2D transform )

设置该骨架中指定骨骼的 Transform2D


RID skeleton_create ( )

创建骨架并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 skeleton_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。


int skeleton_get_bone_count ( RID skeleton ) const

返回分配给这个骨架的骨骼数量。


void skeleton_set_base_transform_2d ( RID skeleton, Transform2D base_transform )

目前没有这个方法的描述。请帮我们贡献一个


Image sky_bake_panorama ( RID sky, float energy, bool bake_irradiance, Vector2i size )

生成并返回包含指定 sky RID 的辐射度贴图的 Image。这样就能支持内置天空材质和自定义天空着色器。如果 bake_irradiancetrue,则会保存辐照度贴图,不保存辐射度贴图。辐射度贴图用于渲染反射光,而辐照度贴图用于渲染环境光。另见 environment_bake_panorama

注意:图片保存时使用线性色彩空间,未进行色调映射,因此在图像编辑器中直接查看会感觉太暗。将 energy 设为大于 1.0 能够将得到的图像变亮。

注意:对于生成的全景图,size 应该是 2:1 的比例,才能够得到正方形的像素。对于辐射度贴图,将高度设为大于 Sky.radiance_size 的值没有意义,因为不会增加细节。辐照度贴图仅包含低频数据,因此保存辐照度贴图时通常大小超过 128×64 像素没有意义。


RID sky_create ( )

创建空的天空并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 sky_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。


void sky_set_material ( RID sky, RID material )

设置天空用于渲染背景和反射贴图的材质。


void sky_set_mode ( RID sky, SkyMode mode )

设置 RID 为 sky 的天空的处理模式 mode。等价于 Sky.process_mode


void sky_set_radiance_size ( RID sky, int radiance_size )

设置 RID 为 sky 的天空的辐照大小 radiance_size(单位为像素)。等价于 Sky.radiance_size


RID spot_light_create ( )

创建聚光灯并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在大多数 light_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

如果要将这个聚光灯放置到场景中,请使用返回的 RID 调用 instance_set_base,将其附加至某个实例上。


void sub_surface_scattering_set_quality ( SubSurfaceScatteringQuality quality )

设置渲染启用了次表面散射的材质时使用的 ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality


void sub_surface_scattering_set_scale ( float scale, float depth_scale )

设置渲染启用了次表面散射的材质时使用的 ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scaleProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale


RID texture_2d_create ( Image image )

创建二维纹理并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 texture_2d_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价资源为 Texture2D

注意:请勿与 RenderingDevice.texture_create 混淆,后者创建的是图形 API 自己的纹理类型,并非 Godot 专属的 Texture2D 资源。


Image texture_2d_get ( RID texture ) const

从给定的纹理 RID texture 返回 Image 实例。

get_test_texture 获取测试纹理并将其应用至 Sprite2D 节点的示例:

  1. var texture_rid = RenderingServer.get_test_texture()
  2. var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid))
  3. $Sprite2D.texture = texture

Image texture_2d_layer_get ( RID texture, int layer ) const

返回给定 texture RIDlayer 中的 Image 实例。


RID texture_2d_layered_create ( Image[] layers, TextureLayeredType layered_type )

创建二维多层纹理并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 texture_2d_layered_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价资源为 TextureLayered


RID texture_2d_layered_placeholder_create ( TextureLayeredType layered_type )

创建二维多层纹理的占位符并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 texture_2d_layered_* RenderingServer 函数中使用,但使用时什么都不会发生。另见 texture_2d_placeholder_create

注意:等价资源为 PlaceholderTextureLayered


RID texture_2d_placeholder_create ( )

创建二维多层纹理的占位符并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 texture_2d_layered_* RenderingServer 函数中使用,但使用时什么都不会发生。另见 texture_2d_layered_placeholder_create

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价资源为 PlaceholderTexture2D


void texture_2d_update ( RID texture, Image image, int layer )

使用 image 中的数据更新由纹理 RID texture 指定的纹理。layer 也必须指定,更新单层纹理(Texture2D)时应为 0

注意:image 的宽度、高度、格式都必须和当前 texture 的数据相同。否则会输出错误,不会修改原始纹理。如果你需要使用不同的宽度、高度或格式,请改用 texture_replace


RID texture_3d_create ( Format format, int width, int height, int depth, bool mipmaps, Image[] data )

注意:等价的资源是 Texture3D


Image[] texture_3d_get ( RID texture ) const

Image 数组的形式返回指定纹理 RID 的 3D 纹理数据。


RID texture_3d_placeholder_create ( )

创建三维纹理的占位符并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 texture_3d_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价资源为 PlaceholderTexture3D


void texture_3d_update ( RID texture, Image[] data )

使用 data 中的数据更新由纹理 RID texture 指定的纹理。必须同时更新所有纹理层。

注意:texture 的宽度、高度、格式都必须和当前纹理数据相同。否则会输出错误,不会修改原始纹理。如果你需要使用不同的宽度、高度或格式,请改用 texture_replace


Format texture_get_format ( RID texture ) const

返回该纹理的 Format


int texture_get_native_handle ( RID texture, bool srgb=false ) const

返回该纹理对象的内部图形句柄。主要用于 GDExtension 与第三方 API 通讯。

注意:这个函数返回的是 uint64_t,内部映射到 GLuint(OpenGL)或 VkImage(Vulkan)。


String texture_get_path ( RID texture ) const

目前没有这个方法的描述。请帮我们贡献一个


RID texture_get_rd_texture ( RID texture, bool srgb=false ) const

返回可用于 RenderingDevice 的纹理 RID


RID texture_proxy_create ( RID base )

_已废弃。_ProxyTexture 已在 Godot 4 中移除,所以调用这个方法什么都不会发生,始终返回空 RID


void texture_proxy_update ( RID texture, RID proxy_to )

_已废弃。_ProxyTexture 已在 Godot 4 中移除,所以这个方法无法再使用。


RID texture_rd_create ( RID rd_texture, TextureLayeredType layer_type=0 )

基于直接在 RenderingDevice 上创建的纹理创建新的纹理对象。如果该纹理包含图层,则 layer_type 被用于定义图层类型。


void texture_replace ( RID texture, RID by_texture )

texture 的纹理数据替换为由纹理 RID by_texture 指定的纹理,不会改变 texture 的 RID。


void texture_set_force_redraw_if_visible ( RID texture, bool enable )

目前没有这个方法的描述。请帮我们贡献一个


void texture_set_path ( RID texture, String path )

目前没有这个方法的描述。请帮我们贡献一个


void texture_set_size_override ( RID texture, int width, int height )

目前没有这个方法的描述。请帮我们贡献一个


void viewport_attach_camera ( RID viewport, RID camera )

设置视图的相机。


void viewport_attach_canvas ( RID viewport, RID canvas )

设置视口的画布。


void viewport_attach_to_screen ( RID viewport, Rect2 rect=Rect2(0, 0, 0, 0), int screen=0 )

将该视口复制到 rect 指定的屏幕区域。如果 viewport_set_render_direct_to_screentrue,则视口不使用帧缓冲区,视口的内容将直接渲染到屏幕。但是,请注意根视口是最后绘制的,因此它会覆盖屏幕。相应地,必须将根视口的区域设置为不覆盖附加该视口的区域。

例如,可以使用以下代码将根视口设置为完全不渲染:

FIXME:该方法似乎不存在。

GDScript

  1. func _ready():
  2. get_viewport().set_attach_to_screen_rect(Rect2())
  3. $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600))

使用它可以带来显著的优化,尤其是在低端设备上。但是,这是以必须手动管理视口为代价的。进一步优化请参见 viewport_set_render_direct_to_screen


RID viewport_create ( )

创建空的视口并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 viewport_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价节点为 Viewport


float viewport_get_measured_render_time_cpu ( RID viewport ) const

返回渲染上一帧所消耗的 CPU 时间,单位为毫秒。只包含渲染相关操作所消耗的时间;读数中不含脚本的 _process 函数及其他引擎子系统。要获取渲染场景所消耗 CPU 时间的完整读数,请将每帧绘制的所有视口的渲染时间以及 get_frame_setup_time_cpu 相加。与 Engine.get_frames_per_second 不同,即便帧率受到垂直同步或 Engine.max_fps 的限制,这个方法也会精确反映 CPU 利用率。另见 viewport_get_measured_render_time_gpu

注意:需要使用 viewport_set_measure_render_time 启用 viewport 的测量。否则这个方法会返回 0.0


float viewport_get_measured_render_time_gpu ( RID viewport ) const

返回渲染上一帧所消耗的 GPU 时间,单位为毫秒。要获取渲染场景所消耗 GPU 时间的完整读数,请将每帧绘制的所有视口的渲染时间相加。与 Engine.get_frames_per_second 不同,即便帧率受到垂直同步或 Engine.max_fps 的限制,这个方法也会精确反映 GPU 利用率。另见 viewport_get_measured_render_time_gpu

注意:需要使用 viewport_set_measure_render_time 启用 viewport 的测量。否则这个方法会返回 0.0

注意:GPU 的利用率在一段时间内低到一定程度时,GPU 会降低电源状态(导致内核与内存时钟速度的降低)。这会导致 GPU 在某个帧率下保持较低利用率时,汇报的 GPU 时间增大(相对于 GPU 的最高电源状态而言)。请在使用 viewport_get_measured_render_time_gpu 进行性能测试时牢记这一点。可以在显卡驱动的设置中改变这种行为,但代价是耗电量增大。


int viewport_get_render_info ( RID viewport, ViewportRenderInfoType type, ViewportRenderInfo info )

返回关于渲染引擎的统计信息,能够用于性能分析。会区分不同的渲染阶段类型 type,每种类型都有相同的可查询信息 info(不同的阶段会返回不同的值)。渲染阶段类型列表见 ViewportRenderInfoType,能够查询的信息列表见 ViewportRenderInfo

另见 get_rendering_info,返回的是所有视口的全局信息。

注意:引擎渲染至少 2 帧后渲染信息才可用。渲染信息不可用时 viewport_get_render_info 返回 0。要在 _ready() 中成功输出渲染信息,请使用如下代码:

  1. func _ready():
  2. for _i in 2:
  3. await get_tree().process_frame
  4. print(
  5. RenderingServer.viewport_get_render_info(get_viewport().get_viewport_rid(),
  6. RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE,
  7. RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME)
  8. )

RID viewport_get_render_target ( RID viewport ) const

返回该视口的渲染目标。


RID viewport_get_texture ( RID viewport ) const

返回视口的最后渲染帧。


void viewport_remove_canvas ( RID viewport, RID canvas )

从画布分离视口,反之亦然。


void viewport_set_active ( RID viewport, bool active )

如果为 true,则将视口设置为活动状态,否则将其设置为非活动状态。


void viewport_set_canvas_cull_mask ( RID viewport, int canvas_cull_mask )

设置与此 Viewport 关联的渲染掩码。渲染可见层与之匹配的 CanvasItem 节点才会被此 Viewport 渲染。


void viewport_set_canvas_stacking ( RID viewport, RID canvas, int layer, int sublayer )

设置视口画布的堆叠顺序。

layer 是实际的画布层,而 sublayer 指定的是该画布在同一层中的堆叠顺序。


void viewport_set_canvas_transform ( RID viewport, RID canvas, Transform2D offset )

设置视口画布的变换。


void viewport_set_clear_mode ( RID viewport, ViewportClearMode clear_mode )

设置视口的清除模式。可选项见 ViewportClearMode


void viewport_set_debug_draw ( RID viewport, ViewportDebugDraw draw )

设置视口的调试绘图模式。可选项见 ViewportDebugDraw


void viewport_set_default_canvas_item_texture_filter ( RID viewport, CanvasItemTextureFilter filter )

设置视口的默认纹理过滤模式,视口由 viewport RID 指定。选项见 CanvasItemTextureFilter


void viewport_set_default_canvas_item_texture_repeat ( RID viewport, CanvasItemTextureRepeat repeat )

设置视口的默认纹理重复模式,视口由 viewport RID 指定。选项见 CanvasItemTextureRepeat


void viewport_set_disable_2d ( RID viewport, bool disable )

如果为 true,则不渲染视口的画布(即 2D 和 GUI 元素)。


void viewport_set_disable_3d ( RID viewport, bool disable )

如果为 true,则不渲染视口的 3D 元素。


void viewport_set_environment_mode ( RID viewport, ViewportEnvironmentMode mode )

设置视口的环境模式,该模式允许启用或禁用 2D 画布上的 3D 环境渲染。禁用时,2D 将不受环境影响。启用时,如果环境背景模式为 ENV_BG_CANVAS,则 2D 会受到环境的影响。默认行为是从视口的父级继承设置。如果最顶层的父级也被设置为 VIEWPORT_ENVIRONMENT_INHERIT,则该行为将与设置为 VIEWPORT_ENVIRONMENT_ENABLED 时相同。


void viewport_set_fsr_sharpness ( RID viewport, float sharpness )

决定使用 FSR 放大模式时放大图像的清晰度。每个整数的锐度减半。值从 0.0(最锐利)到 2.0。高于 2.0 的值不会产生明显的差异。


void viewport_set_global_canvas_transform ( RID viewport, Transform2D transform )

设置视口的全局变换矩阵。


void viewport_set_measure_render_time ( RID viewport, bool enable )

为给定的 viewport RID(使用 Viewport.get_viewport_rid 获取)设置是否测量。启用后,使用给定的 viewportviewport_get_measured_render_time_cpuviewport_get_measured_render_time_gpu 进行查询返回的就是大于 0.0 的值。


void viewport_set_msaa_2d ( RID viewport, ViewportMSAA msaa )

设置 RID 为 viewport 的视口的 2D/画布多重采样抗锯齿模式。选项见 ViewportMSAA


void viewport_set_msaa_3d ( RID viewport, ViewportMSAA msaa )

设置 RID 为 viewport 的视口的 3D 多重采样抗锯齿模式。选项见 ViewportMSAA


void viewport_set_occlusion_culling_build_quality ( ViewportOcclusionCullingBuildQuality quality )

设置遮挡剔除的 ProjectSettings.rendering/occlusion_culling/bvh_build_quality。这个参数是全局的,无法针对特定视口设置。


void viewport_set_occlusion_rays_per_thread ( int rays_per_thread )

设置遮挡剔除的 ProjectSettings.rendering/occlusion_culling/occlusion_rays_per_thread。这个参数是全局的,无法针对特定视口设置。


void viewport_set_parent_viewport ( RID viewport, RID parent_viewport )

将该视口的父项设置为 parent_viewport RID 指定的视口。


void viewport_set_positional_shadow_atlas_quadrant_subdivision ( RID viewport, int quadrant, int subdivision )

设置全向灯和聚光灯阴影的指定阴影图集象限 quadrant 的细分次数。另见 Viewport.set_positional_shadow_atlas_quadrant_subdiv


void viewport_set_positional_shadow_atlas_size ( RID viewport, int size, bool use_16_bits=false )

设置阴影图集图像的大小(用于全向灯和聚光灯),大小由 size 指定,生效的视口由 viewport RID 指定。该值将向上舍入到最接近的 2 次幂。如果 use_16_bitstrue,则会使用 16 位的全向灯/聚光灯阴影深度贴图。启用后,阴影的精度会降低,可能造成阴影失真,但能够在部分设备上提升性能。

注意:如果设置为 0,将根本看不到任何阴影。可以通过降低 CPU 和 GPU 负载来显著提升在低端系统上的性能(因为绘制不带阴影的场景需要的绘制调用更少)。


void viewport_set_render_direct_to_screen ( RID viewport, bool enabled )

如果为 true,则将视口的内容直接渲染到屏幕。这允许一个低级别的优化,可以跳过将视口绘制到根视口。虽然这种优化可以显著提高速度(尤其是在旧设备上),但它是以可用性为代价的。启用后,无法从视口或 screen_texture 读取。而且还会失去某些窗口设置的好处,例如各种拉伸模式。另一个需要注意的后果是,在 2D 中,渲染是以窗口坐标进行的,所以如果有一个两倍于窗口大小的视口,并且设置了这个属性,那么只会绘制适合窗口的部分, 无法自动缩放,即使游戏场景明显大于窗口大小。


void viewport_set_scaling_3d_mode ( RID viewport, ViewportScaling3DMode scaling_3d_mode )

设置 3D 分辨率缩放模式。双线性缩放使用不同的分辨率渲染,能够对视口进行欠采样或超采样。FidelityFX 超分辨率 1.0,缩写为 FSR,是一种放大技术,通过使用空间感知放大算法以快速帧速率生成高质量图像。FSR 比双线性的开销略大,但产生的图像质量明显更高。应尽可能使用 FSR。


void viewport_set_scaling_3d_scale ( RID viewport, float scale )

根据视图大小,缩放 3D 渲染缓冲区,使用 ViewportScaling3DMode 中指定的图像过滤器,将输出图像缩放到完整视图大小。低于 1.0 的值,可用于加速 3D 渲染,但会以质量为代价(欠采样)。大于 1.0 的值,仅对双线性模式有效,可用于以较高的性能成本(超级采样),提高 3D 渲染质量。另请参阅 ViewportMSAA 以了解多重采样抗锯齿,这要便宜得多,但只会平滑多边形的边缘。

在使用 FSR 放大时,AMD 建议将以下值,作为预设选项公开给用户:“超质量:0.77”、“质量:0.67”、“平衡:0.59”、“性能:0.5”,而不是公开整个比例。


void viewport_set_scenario ( RID viewport, RID scenario )

设置视口的场景。该场景包含环境、反射图集等信息。


void viewport_set_screen_space_aa ( RID viewport, ViewportScreenSpaceAA mode )

使用视口的屏幕空间抗锯齿模式。


void viewport_set_sdf_oversize_and_scale ( RID viewport, ViewportSDFOversize oversize, ViewportSDFScale scale )

设置视口的 2D 带符号距离场的 ProjectSettings.rendering/2d/sdf/oversizeProjectSettings.rendering/2d/sdf/scale。在 CanvasItem 着色器中对带符号距离场进行采样时会用到,GPUParticles2D 碰撞时也会用到。3D 渲染时的 SDFGI 不会使用。


void viewport_set_size ( RID viewport, int width, int height )

设置视口的宽度和高度,单位为像素。


void viewport_set_snap_2d_transforms_to_pixel ( RID viewport, bool enabled )

如果为 true,则画布项的变换(即原点的位置)会在渲染时吸附到整像素。这样外观看上去就会更锐利,但会影响移动的平滑程度,尤其是在启用了 Camera2D 平滑的情况下。等价于 ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel


void viewport_set_snap_2d_vertices_to_pixel ( RID viewport, bool enabled )

如果为 true,则画布项的顶点(即多边形的点)会在渲染时吸附到整像素。这样外观看上去就会更锐利,但会影响移动的平滑程度,尤其是在启用了 Camera2D 平滑的情况下。等价于 ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel


void viewport_set_texture_mipmap_bias ( RID viewport, float mipmap_bias )

读取较低或较高的 mipmap,影响最终纹理的清晰度(也称为“纹理 LOD 偏置”)。负值会让 mipmap 纹理更锐利,但从较远处观察时颗粒更明显,而正值会让 mipmap 纹理更模糊(即便凑近看也一样)。要在不引入太多颗粒感的情况下,在远处获得更锐利的纹理,请将其设置在 -0.750.0 之间。启用时间抗锯齿(ProjectSettings.rendering/anti_aliasing/quality/use_taa)有助于减少使用负 mipmap 偏置时可见的颗粒度。

注意:当 3D 缩放模式设置为 FSR 1.0 时,会使用该值调整自动 mipmap 偏置,偏置的计算基于缩放系数。其公式为 -log2(1.0 / scale) + mipmap_bias


void viewport_set_transparent_background ( RID viewport, bool enabled )

如果为 true,视口将其背景渲染为透明。


void viewport_set_update_mode ( RID viewport, ViewportUpdateMode update_mode )

设置应更新视口的时间。可选项请参阅 ViewportUpdateMode


void viewport_set_use_debanding ( RID viewport, bool enable )

如果为 true,则在指定的视口上启用去条带。等价于 ProjectSettings.rendering/anti_aliasing/quality/use_debanding


void viewport_set_use_hdr_2d ( RID viewport, bool enabled )

如果为 true,2D 渲染将使用与 3D 帧缓冲区的位深度匹配的高动态范围(HDR)格式帧缓冲区。当使用 Forward+ 渲染器时,这将是一个 RGBA16 帧缓冲区,而当使用 Mobile 渲染器时,它将是一个 RGB10_A2 帧缓冲区。此外,2D 渲染将在线性色彩空间中进行,并在位块传输到屏幕之前(如果视口被连接到屏幕)立即转换为 sRGB 空间。实际上,这意味着视口的最终结果不会被钳制在 0-1 范围内,并且可以在不进行色彩空间调整的情况下被用于 3D 渲染。这使得 2D 渲染能够利用需要高动态范围的效果(例如 2D 辉光),并显著改善需要高度详细渐变的效果的外观。该设置与 Viewport.use_hdr_2d 效果相同。

注意:使用 GL 兼容渲染器时,该设置无效,因为出于性能原因,GL 兼容渲染器始终在低动态范围内渲染。


void viewport_set_use_occlusion_culling ( RID viewport, bool enable )

如果为 true,则在指定的视口上启用遮挡剔除。等价于 ProjectSettings.rendering/occlusion_culling/use_occlusion_culling


void viewport_set_use_taa ( RID viewport, bool enable )

如果为 true,则在指定的视口上启用时间抗锯齿。等价于 ProjectSettings.rendering/anti_aliasing/quality/use_taa


void viewport_set_use_xr ( RID viewport, bool use_xr )

如果为 true,则视口使用增强或虚拟现实技术。参阅 XRInterface


void viewport_set_vrs_mode ( RID viewport, ViewportVRSMode mode )

设置视口的可变速率着色(VRS)模式。如果 GPU 不支持 VRS 则会忽略该属性。等价于 ProjectSettings.rendering/vrs/mode


void viewport_set_vrs_texture ( RID viewport, RID texture )

当 VRS 模式设置为 VIEWPORT_VRS_TEXTURE 时,要使用的纹理。等价于 ProjectSettings.rendering/vrs/texture


RID visibility_notifier_create ( )

新建 3D 可见性通知对象并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 visibility_notifier_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

如果要将这个网格放置到场景中,请使用返回的 RID 调用 instance_set_base,将其附加至某个实例上。

注意:等价节点为 VisibleOnScreenNotifier3D


void visibility_notifier_set_aabb ( RID notifier, AABB aabb )

目前没有这个方法的描述。请帮我们贡献一个


void visibility_notifier_set_callbacks ( RID notifier, Callable enter_callable, Callable exit_callable )

目前没有这个方法的描述。请帮我们贡献一个


void voxel_gi_allocate_data ( RID voxel_gi, Transform3D to_cell_xform, AABB aabb, Vector3i octree_size, PackedByteArray octree_cells, PackedByteArray data_cells, PackedByteArray distance_field, PackedInt32Array level_counts )

目前没有这个方法的描述。请帮我们贡献一个


RID voxel_gi_create ( )

新建基于体素的全局光照对象并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会在所有 voxel_gi_* RenderingServer 函数中使用。

RID 使用结束后,应该使用 RenderingServer 的 free_rid 方法进行释放。

注意:等价节点为 VoxelGI


PackedByteArray voxel_gi_get_data_cells ( RID voxel_gi ) const

目前没有这个方法的描述。请帮我们贡献一个


PackedByteArray voxel_gi_get_distance_field ( RID voxel_gi ) const

目前没有这个方法的描述。请帮我们贡献一个


PackedInt32Array voxel_gi_get_level_counts ( RID voxel_gi ) const

目前没有这个方法的描述。请帮我们贡献一个


PackedByteArray voxel_gi_get_octree_cells ( RID voxel_gi ) const

目前没有这个方法的描述。请帮我们贡献一个


Vector3i voxel_gi_get_octree_size ( RID voxel_gi ) const

目前没有这个方法的描述。请帮我们贡献一个


Transform3D voxel_gi_get_to_cell_xform ( RID voxel_gi ) const

目前没有这个方法的描述。请帮我们贡献一个


void voxel_gi_set_baked_exposure_normalization ( RID voxel_gi, float baked_exposure )

用于通知渲染器烘焙体素 GI 时使用的曝光归一化值。运行时会使用这个值进行调制,确保体素 GI 能够维持恒定的曝光等级,即便场景范围的曝光归一化值在运行时发生改变。更多信息见 camera_attributes_set_exposure


void voxel_gi_set_bias ( RID voxel_gi, float bias )

RIDvoxel_gi 的对象设置 VoxelGIData.bias 值。


void voxel_gi_set_dynamic_range ( RID voxel_gi, float range )

RIDvoxel_gi 的对象设置 VoxelGIData.dynamic_range 值。


void voxel_gi_set_energy ( RID voxel_gi, float energy )

RIDvoxel_gi 的对象设置 VoxelGIData.energy 值。


void voxel_gi_set_interior ( RID voxel_gi, bool enable )

RIDvoxel_gi 的对象设置 VoxelGIData.interior 值。


void voxel_gi_set_normal_bias ( RID voxel_gi, float bias )

RIDvoxel_gi 的对象设置 VoxelGIData.normal_bias 值。


void voxel_gi_set_propagation ( RID voxel_gi, float amount )

RIDvoxel_gi 的对象设置 VoxelGIData.propagation 值。


void voxel_gi_set_quality ( VoxelGIQuality quality )

设置渲染时使用的 ProjectSettings.rendering/global_illumination/voxel_gi/quality 值。这个参数是全局的,无法为单独的 VoxelGI 进行设置。


void voxel_gi_set_use_two_bounces ( RID voxel_gi, bool enable )

RIDvoxel_gi 的对象设置 VoxelGIData.use_two_bounces 值。

Previous Next


© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7.

Built with Sphinx using a theme provided by Read the Docs.