VisualServer

Inherits: Object

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

描述

任何可见对象的服务。VisualServer是所有可见对象的API后端。整个场景系统安装在它上面来显示。

VisualServer是完全不透明的,它的内部结构的完全的具体实现不能被访问。

VisualServer可以用来完全绕过场景系统。

可使用*_create函数创建资源。

所有的对象都被绘制到视窗中。你可以使用附在SceneTree上的Viewport,或者用viewport_create自己创建一个。当使用自定义场景或画布时,需要使用viewport_set_scenarioviewport_attach_canvas将场景或画布附加到视窗上。

在3D中,所有的视觉对象都必须与一个场景相关联。场景是世界的一个视觉表现。如果从一个正在运行的游戏中访问视觉服务,场景可以通过Spatial.get_world从场景树中的任何Spatial节点访问。另外,可以用scenario_create创建一个场景。

相类似地,在2D中,需要一个画布来绘制所有的画布项目。

在3D中,所有可见的对象都是由资源和实例组成。资源可以是网格、粒子系统、光或任何其他3D对象。为了使资源可见,必须使用instance_set_base连接到一个实例。实例也必须使用instance_set_scenario附加到场景中,以便可见。

在2D中,所有可见对象都是某种形式的画布项目。为了可见,一个画布项需要是连接到视窗的画布的子项,或者它需要是最终连接到画布的另一个画布项的子项。

教程

属性

bool

render_loop_enabled

方法

void

black_bars_set_images ( RID left, RID top, RID right, RID bottom )

void

black_bars_set_margins ( int left, int top, int right, int bottom )

RID

camera_create ( )

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, Transform transform )

void

camera_set_use_vertical_aspect ( RID camera, bool enable )

RID

canvas_create ( )

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_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 normal_map )

void

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

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 ), RID normal_map )

void

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

void

canvas_item_add_polygon ( RID item, PoolVector2Array points, PoolColorArray colors, PoolVector2Array uvs=PoolVector2Array( ), RID texture, RID normal_map, bool antialiased=false )

void

canvas_item_add_polyline ( RID item, PoolVector2Array points, PoolColorArray colors, float width=1.0, bool antialiased=false )

void

canvas_item_add_primitive ( RID item, PoolVector2Array points, PoolColorArray colors, PoolVector2Array uvs, RID texture, float width=1.0, RID normal_map )

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, RID normal_map )

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, RID normal_map, bool clip_uv=true )

void

canvas_item_add_triangle_array ( RID item, PoolIntArray indices, PoolVector2Array points, PoolColorArray colors, PoolVector2Array uvs=PoolVector2Array( ), PoolIntArray bones=PoolIntArray( ), PoolRealArray weights=PoolRealArray( ), RID texture, int count=-1, RID normal_map, bool antialiased=false, bool antialiasing_use_indices=false )

void

canvas_item_clear ( RID item )

RID

canvas_item_create ( )

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_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_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_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_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_scale ( RID light, float scale )

void

canvas_light_set_shadow_buffer_size ( RID light, int size )

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_gradient_length ( RID light, float length )

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_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, PoolVector2Array shape, bool closed )

void

canvas_occluder_polygon_set_shape_as_lines ( RID occluder_polygon, PoolVector2Array shape )

void

canvas_set_item_mirroring ( RID canvas, RID item, Vector2 mirroring )

void

canvas_set_modulate ( RID canvas, Color color )

RID

directional_light_create ( )

void

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

RID

environment_create ( )

void

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

void

environment_set_ambient_light ( RID env, Color color, float energy=1.0, float sky_contibution=0.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 energy )

void

environment_set_canvas_max_layer ( RID env, int max_layer )

void

environment_set_dof_blur_far ( RID env, bool enable, float distance, float transition, float far_amount, EnvironmentDOFBlurQuality quality )

void

environment_set_dof_blur_near ( RID env, bool enable, float distance, float transition, float far_amount, EnvironmentDOFBlurQuality quality )

void

environment_set_fog ( RID env, bool enable, Color color, Color sun_color, float sun_amount )

void

environment_set_fog_depth ( RID env, bool enable, float depth_begin, float depth_end, float depth_curve, bool transmit, float transmit_curve )

void

environment_set_fog_height ( RID env, bool enable, float min_height, float max_height, float height_curve )

void

environment_set_glow ( RID env, bool enable, int level_flags, float intensity, float strength, float bloom_threshold, EnvironmentGlowBlendMode blend_mode, float hdr_bleed_threshold, float hdr_bleed_scale, float hdr_luminance_cap, bool bicubic_upscale, bool high_quality )

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 radius2, float intensity2, float bias, float light_affect, float ao_channel_affect, Color color, EnvironmentSSAOQuality quality, EnvironmentSSAOBlur blur, float bilateral_sharpness )

void

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

void

environment_set_tonemap ( RID env, EnvironmentToneMapper tone_mapper, float exposure, float white, bool auto_exposure, float min_luminance, float max_luminance, float auto_exp_speed, float auto_exp_grey )

void

finish ( )

void

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

void

force_sync ( )

void

free_rid ( RID rid )

int

get_render_info ( RenderInfo info )

RID

get_test_cube ( )

RID

get_test_texture ( )

String

get_video_adapter_name ( ) const

String

get_video_adapter_vendor ( ) const

RID

get_white_texture ( )

RID

gi_probe_create ( )

float

gi_probe_get_bias ( RID probe ) const

AABB

gi_probe_get_bounds ( RID probe ) const

float

gi_probe_get_cell_size ( RID probe ) const

PoolIntArray

gi_probe_get_dynamic_data ( RID probe ) const

int

gi_probe_get_dynamic_range ( RID probe ) const

float

gi_probe_get_energy ( RID probe ) const

float

gi_probe_get_normal_bias ( RID probe ) const

float

gi_probe_get_propagation ( RID probe ) const

Transform

gi_probe_get_to_cell_xform ( RID probe ) const

bool

gi_probe_is_compressed ( RID probe ) const

bool

gi_probe_is_interior ( RID probe ) const

void

gi_probe_set_bias ( RID probe, float bias )

void

gi_probe_set_bounds ( RID probe, AABB bounds )

void

gi_probe_set_cell_size ( RID probe, float range )

void

gi_probe_set_compress ( RID probe, bool enable )

void

gi_probe_set_dynamic_data ( RID probe, PoolIntArray data )

void

gi_probe_set_dynamic_range ( RID probe, int range )

void

gi_probe_set_energy ( RID probe, float energy )

void

gi_probe_set_interior ( RID probe, bool enable )

void

gi_probe_set_normal_bias ( RID probe, float bias )

void

gi_probe_set_propagation ( RID probe, float propagation )

void

gi_probe_set_to_cell_xform ( RID probe, Transform xform )

bool

has_changed ( ) const

bool

has_feature ( Features feature ) const

bool

has_os_feature ( String feature ) const

void

immediate_begin ( RID immediate, PrimitiveType primitive, RID texture )

void

immediate_clear ( RID immediate )

void

immediate_color ( RID immediate, Color color )

RID

immediate_create ( )

void

immediate_end ( RID immediate )

RID

immediate_get_material ( RID immediate ) const

void

immediate_normal ( RID immediate, Vector3 normal )

void

immediate_set_material ( RID immediate, RID material )

void

immediate_tangent ( RID immediate, Plane tangent )

void

immediate_uv ( RID immediate, Vector2 tex_uv )

void

immediate_uv2 ( RID immediate, Vector2 tex_uv )

void

immediate_vertex ( RID immediate, Vector3 vertex )

void

immediate_vertex_2d ( RID immediate, Vector2 vertex )

void

init ( )

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 )

void

instance_geometry_set_as_instance_lod ( RID instance, RID as_lod_of_instance )

void

instance_geometry_set_cast_shadows_setting ( RID instance, ShadowCastingSetting shadow_casting_setting )

void

instance_geometry_set_draw_range ( RID instance, float min, float max, float min_margin, float max_margin )

void

instance_geometry_set_flag ( RID instance, InstanceFlags flag, bool enabled )

void

instance_geometry_set_material_overlay ( RID instance, RID material )

void

instance_geometry_set_material_override ( RID instance, RID material )

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_exterior ( RID instance, bool enabled )

void

instance_set_extra_visibility_margin ( RID instance, float margin )

void

instance_set_layer_mask ( RID instance, int mask )

void

instance_set_scenario ( RID instance, RID scenario )

void

instance_set_surface_material ( RID instance, int surface, RID material )

void

instance_set_transform ( RID instance, Transform transform )

void

instance_set_use_lightmap ( RID instance, RID lightmap_instance, RID lightmap, int lightmap_slice=-1, Rect2 lightmap_uv_rect=Rect2( 0, 0, 1, 1 ) )

void

instance_set_visible ( RID instance, bool visible )

Array

instances_cull_aabb ( AABB aabb, RID scenario ) const

Array

instances_cull_convex ( Array convex, RID scenario ) const

Array

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

void

light_directional_set_blend_splits ( RID light, bool enable )

void

light_directional_set_shadow_depth_range_mode ( RID light, LightDirectionalShadowDepthRangeMode range_mode )

void

light_directional_set_shadow_mode ( RID light, LightDirectionalShadowMode mode )

void

light_omni_set_shadow_detail ( RID light, LightOmniShadowDetail detail )

void

light_omni_set_shadow_mode ( RID light, LightOmniShadowMode mode )

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_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 )

void

light_set_shadow_color ( RID light, Color color )

void

light_set_use_gi ( RID light, bool enabled )

RID

lightmap_capture_create ( )

AABB

lightmap_capture_get_bounds ( RID capture ) const

float

lightmap_capture_get_energy ( RID capture ) const

PoolByteArray

lightmap_capture_get_octree ( RID capture ) const

int

lightmap_capture_get_octree_cell_subdiv ( RID capture ) const

Transform

lightmap_capture_get_octree_cell_transform ( RID capture ) const

bool

lightmap_capture_is_interior ( RID capture ) const

void

lightmap_capture_set_bounds ( RID capture, AABB bounds )

void

lightmap_capture_set_energy ( RID capture, float energy )

void

lightmap_capture_set_interior ( RID capture, bool interior )

void

lightmap_capture_set_octree ( RID capture, PoolByteArray octree )

void

lightmap_capture_set_octree_cell_subdiv ( RID capture, int subdiv )

void

lightmap_capture_set_octree_cell_transform ( RID capture, Transform xform )

RID

make_sphere_mesh ( int latitudes, int longitudes, float radius )

RID

material_create ( )

Variant

material_get_param ( RID material, String parameter ) const

Variant

material_get_param_default ( RID material, String parameter ) const

RID

material_get_shader ( RID shader_material ) const

void

material_set_line_width ( RID material, float width )

void

material_set_next_pass ( RID material, RID next_material )

void

material_set_param ( RID material, String 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_from_arrays ( RID mesh, PrimitiveType primitive, Array arrays, Array blend_shapes=[ ], int compress_format=2194432 )

void

mesh_clear ( RID mesh )

RID

mesh_create ( )

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

int

mesh_get_surface_count ( RID mesh ) const

void

mesh_remove_surface ( RID mesh, int index )

void

mesh_set_blend_shape_count ( RID mesh, int amount )

void

mesh_set_blend_shape_mode ( RID mesh, BlendShapeMode mode )

void

mesh_set_custom_aabb ( RID mesh, AABB aabb )

AABB

mesh_surface_get_aabb ( RID mesh, int surface ) const

PoolByteArray

mesh_surface_get_array ( RID mesh, int surface ) const

int

mesh_surface_get_array_index_len ( RID mesh, int surface ) const

int

mesh_surface_get_array_len ( RID mesh, int surface ) const

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 ( RID mesh, int surface ) const

int

mesh_surface_get_format_offset ( int format, int vertex_len, int index_len, int array_index ) const

int

mesh_surface_get_format_stride ( int format, int vertex_len, int index_len, int array_index ) const

PoolByteArray

mesh_surface_get_index_array ( RID mesh, int surface ) const

RID

mesh_surface_get_material ( RID mesh, int surface ) const

PrimitiveType

mesh_surface_get_primitive_type ( RID mesh, int surface ) const

Array

mesh_surface_get_skeleton_aabb ( RID mesh, int surface ) const

void

mesh_surface_set_material ( RID mesh, int surface, RID material )

void

mesh_surface_update_region ( RID mesh, int surface, int offset, PoolByteArray data )

void

multimesh_allocate ( RID multimesh, int instances, MultimeshTransformFormat transform_format, MultimeshColorFormat color_format, MultimeshCustomDataFormat custom_data_format=0 )

RID

multimesh_create ( )

AABB

multimesh_get_aabb ( 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

Transform

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, Transform transform )

void

multimesh_instance_set_transform_2d ( RID multimesh, int index, Transform2D transform )

void

multimesh_set_as_bulk_array ( RID multimesh, PoolRealArray array )

void

multimesh_set_mesh ( RID multimesh, RID mesh )

void

multimesh_set_visible_instances ( RID multimesh, int visible )

RID

omni_light_create ( )

RID

particles_create ( )

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_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, Transform transform )

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_lifetime ( RID particles, float lifetime )

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_use_local_coordinates ( RID particles, bool enable )

RID

reflection_probe_create ( )

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_extents ( RID probe, Vector3 extents )

void

reflection_probe_set_intensity ( RID probe, float intensity )

void

reflection_probe_set_interior_ambient ( RID probe, Color color )

void

reflection_probe_set_interior_ambient_energy ( RID probe, float energy )

void

reflection_probe_set_interior_ambient_probe_contribution ( RID probe, float contrib )

void

reflection_probe_set_max_distance ( RID probe, float distance )

void

reflection_probe_set_origin_offset ( RID probe, Vector3 offset )

void

reflection_probe_set_update_mode ( RID probe, ReflectionProbeUpdateMode mode )

void

request_frame_drawn_callback ( Object where, String method, Variant userdata )

RID

scenario_create ( )

void

scenario_set_debug ( RID scenario, ScenarioDebugMode debug_mode )

void

scenario_set_environment ( RID scenario, RID environment )

void

scenario_set_fallback_environment ( RID scenario, RID environment )

void

scenario_set_reflection_atlas_size ( RID scenario, int size, int subdiv )

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 )

void

set_shader_async_hidden_forbidden ( bool forbidden )

void

set_shader_time_scale ( float scale )

void

set_use_occlusion_culling ( bool enable )

RID

shader_create ( )

String

shader_get_code ( RID shader ) const

RID

shader_get_default_texture_param ( RID shader, String name ) const

Array

shader_get_param_list ( RID shader ) const

void

shader_set_code ( RID shader, String code )

void

shader_set_default_texture_param ( RID shader, String name, RID texture )

void

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

Transform

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, Transform transform )

void

skeleton_bone_set_transform_2d ( RID skeleton, int bone, Transform2D transform )

RID

skeleton_create ( )

int

skeleton_get_bone_count ( RID skeleton ) const

RID

sky_create ( )

void

sky_set_texture ( RID sky, RID cube_map, int radiance_size )

RID

spot_light_create ( )

void

sync ( )

void

texture_allocate ( RID texture, int width, int height, int depth_3d, Format format, TextureType type, int flags=7 )

void

texture_bind ( RID texture, int number )

RID

texture_create ( )

RID

texture_create_from_image ( Image image, int flags=7 )

Array

texture_debug_usage ( )

Image

texture_get_data ( RID texture, int cube_side=0 ) const

int

texture_get_depth ( RID texture ) const

int

texture_get_flags ( RID texture ) const

Format

texture_get_format ( RID texture ) const

int

texture_get_height ( RID texture ) const

String

texture_get_path ( RID texture ) const

int

texture_get_texid ( RID texture ) const

TextureType

texture_get_type ( RID texture ) const

int

texture_get_width ( RID texture ) const

void

texture_set_data ( RID texture, Image image, int layer=0 )

void

texture_set_data_partial ( RID texture, Image image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_mip, int layer=0 )

void

texture_set_flags ( RID texture, int flags )

void

texture_set_path ( RID texture, String path )

void

texture_set_shrink_all_x2_on_set_data ( bool shrink )

void

texture_set_size_override ( RID texture, int width, int height, int depth )

void

textures_keep_original ( bool enable )

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 ( )

void

viewport_detach ( RID viewport )

int

viewport_get_render_info ( RID viewport, ViewportRenderInfo info )

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_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_disable_3d ( RID viewport, bool disabled )

void

viewport_set_disable_environment ( RID viewport, bool disabled )

void

viewport_set_global_canvas_transform ( RID viewport, Transform2D transform )

void

viewport_set_hdr ( RID viewport, bool enabled )

void

viewport_set_hide_canvas ( RID viewport, bool hidden )

void

viewport_set_hide_scenario ( RID viewport, bool hidden )

void

viewport_set_msaa ( RID viewport, ViewportMSAA msaa )

void

viewport_set_parent_viewport ( RID viewport, RID parent_viewport )

void

viewport_set_render_direct_to_screen ( RID viewport, bool enabled )

void

viewport_set_scenario ( RID viewport, RID scenario )

void

viewport_set_shadow_atlas_quadrant_subdivision ( RID viewport, int quadrant, int subdivision )

void

viewport_set_shadow_atlas_size ( RID viewport, int size )

void

viewport_set_sharpen_intensity ( RID viewport, float intensity )

void

viewport_set_size ( RID viewport, int width, int height )

void

viewport_set_transparent_background ( RID viewport, bool enabled )

void

viewport_set_update_mode ( RID viewport, ViewportUpdateMode update_mode )

void

viewport_set_usage ( RID viewport, ViewportUsage usage )

void

viewport_set_use_arvr ( RID viewport, bool use_arvr )

void

viewport_set_use_debanding ( RID viewport, bool debanding )

void

viewport_set_use_fxaa ( RID viewport, bool fxaa )

void

viewport_set_vflip ( RID viewport, bool enabled )

信号

  • frame_post_draw ( )

在VisualServer完成更新所有视窗后,在帧的最后发出。


  • frame_pre_draw ( )

在VisualServer更新所有视窗之前,在帧的开始发出。

枚举

enum CubeMapSide:

  • CUBEMAP_LEFT = 0 —- 标记立方体贴图的左侧。

  • CUBEMAP_RIGHT = 1 —- 标记立方体贴图cubemap的右侧。

  • CUBEMAP_BOTTOM = 2 —- 标记立方体图cubemap的底部。

  • CUBEMAP_TOP = 3 —- 标记cubemap的顶面。

  • CUBEMAP_FRONT = 4 —- 标记立方体贴图的正面。

  • CUBEMAP_BACK = 5 —- 标记立方体贴图的背面。


enum TextureType:

  • TEXTURE_TYPE_2D = 0 —- 具有 2 个维度,宽度和高度的法线纹理。

  • TEXTURE_TYPE_CUBEMAP = 2 —- 由六个面组成的纹理,可以在着色器中使用 vec3 查找。

  • TEXTURE_TYPE_2D_ARRAY = 3 —- 一组二维纹理。

  • TEXTURE_TYPE_3D = 4 —- 具有宽度、高度和深度的 3 维纹理。


enum TextureFlags:

  • TEXTURE_FLAG_MIPMAPS = 1 —- 生成多级渐远纹理,它是同一纹理的较小版本,在放大时使用,保持长宽比。

  • TEXTURE_FLAG_REPEAT = 2 —- 重复纹理,而不是限制在边缘。

  • TEXTURE_FLAG_FILTER = 4 —- 使用放大过滤器,以实现纹理的平滑放大。

  • TEXTURE_FLAG_ANISOTROPIC_FILTER = 8 —- 使用各向异性的多级渐远纹理过滤。生成具有不同长宽比的同一纹理的较小版本。

当从斜角观看时,这会产生更好看的纹理。

  • TEXTURE_FLAG_CONVERT_TO_LINEAR = 16 —- 将纹理转换为 sRGB 颜色空间。

  • TEXTURE_FLAG_MIRRORED_REPEAT = 32 —- 使用镜像的交替部分重复纹理。

  • TEXTURE_FLAG_USED_FOR_STREAMING = 2048 —- 纹理是视频表面。

  • TEXTURE_FLAGS_DEFAULT = 7 —- 默认标志。启用 TEXTURE_FLAG_MIPMAPSTEXTURE_FLAG_REPEATTEXTURE_FLAG_FILTER


enum ShaderMode:

  • SHADER_SPATIAL = 0 —- 着色器是一个 3D 着色器。

  • SHADER_CANVAS_ITEM = 1 —- 着色器是一个 2D 着色器。

  • SHADER_PARTICLES = 2 —- 着色器是一个粒子着色器。

  • SHADER_MAX = 3 —- 代表ShaderMode枚举的大小。


enum ArrayType:

  • ARRAY_VERTEX = 0 —- 数组是一个顶点数组。

  • ARRAY_NORMAL = 1 —- 数组是普通数组。

  • ARRAY_TANGENT = 2 —- 数组是一个切线数组。

  • ARRAY_COLOR = 3 —- 数组是一个颜色数组。

  • ARRAY_TEX_UV = 4 —- 数组是一个 UV 坐标数组。

  • ARRAY_TEX_UV2 = 5 —- 数组是第二个 UV 坐标的 UV 坐标数组。

  • ARRAY_BONES = 6 —- 数组包含骨骼信息。

  • ARRAY_WEIGHTS = 7 —- 数组是重量信息。

  • ARRAY_INDEX = 8 —- 数组是索引数组。

  • ARRAY_MAX = 9 —- 表示ArrayType枚举的大小。


enum ArrayFormat:

  • ARRAY_FORMAT_VERTEX = 1 —- 用于标记顶点数组的标志。

  • ARRAY_FORMAT_NORMAL = 2 —- 用于标记正常数组的标志。

  • ARRAY_FORMAT_TANGENT = 4 —- 用于标记切线数组的标志。

  • ARRAY_FORMAT_COLOR = 8 —- 用于标记颜色数组的标记。

  • ARRAY_FORMAT_TEX_UV = 16 —- 用于标记 UV 坐标数组的标志。

  • ARRAY_FORMAT_TEX_UV2 = 32 —- 用于标记第二个UV坐标的UV坐标数组的标志。

  • ARRAY_FORMAT_BONES = 64 —- 用来标记骨骼信息数组的标志。

  • ARRAY_FORMAT_WEIGHTS = 128 —- 用于标记重量数组的标记。

  • ARRAY_FORMAT_INDEX = 256 —- 用于标记索引数组的标志。

  • ARRAY_COMPRESS_VERTEX = 512 —- 用于标记压缩(半精度浮点)顶点数组的标志。

  • ARRAY_COMPRESS_NORMAL = 1024 —- 曾经用于标记压缩(半精度浮点)法向数组的 Flag。

  • ARRAY_COMPRESS_TANGENT = 2048 —- 曾经用于标记压缩(半精度浮点)切向数组的Flag。

  • ARRAY_COMPRESS_COLOR = 4096 —- 曾用于标记压缩(半精度浮点)颜色数组的Flag。

  • ARRAY_COMPRESS_TEX_UV = 8192 —- 曾用于标记压缩(半精度浮点)UV 坐标数组的 Flag。

  • ARRAY_COMPRESS_TEX_UV2 = 16384 —- 曾用于标记第二套UV坐标的压缩(半精度浮点)UV坐标数组的Flag。

  • ARRAY_COMPRESS_BONES = 32768 —- 用于标记压缩骨骼数组的标志。

  • ARRAY_COMPRESS_WEIGHTS = 65536 —- 用于标记压缩(半精度浮点)权重数组的标志。

  • ARRAY_COMPRESS_INDEX = 131072 —- 曾用于标记压缩索引数组的Flag。

  • ARRAY_FLAG_USE_2D_VERTICES = 262144 —- 曾用于标记包含2D顶点的数组的Flag。

  • ARRAY_FLAG_USE_16_BIT_BONES = 524288 —- 用于标记数组使用16位骨骼而不是8位的标志。

  • ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION = 2097152 —- 标志用于标记数组使用法线和切线向量的八面表示法,而不是笛卡尔式。

  • ARRAY_COMPRESS_DEFAULT = 2194432 —- 用于快速设置标志ARRAY_COMPRESS_NORMALARRAY_COMPRESS_TANGENTARRAY_COMPRESS_COLORARRAY_COMPRESS_TEX_UVARRAY_COMPRESS_TEX_UV2ARRAY_COMPRESS_WEIGHTSARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION


enum PrimitiveType:

  • PRIMITIVE_POINTS = 0 —- 基本网格绘制由点组成。

  • PRIMITIVE_LINES = 1 —- 基本网格绘制由线条组成。

  • PRIMITIVE_LINE_STRIP = 2 —- 基本网格的绘制由一条首尾闭合的线条组成。

  • PRIMITIVE_LINE_LOOP = 3 —- 绘制的图元包括一个线环,即在最后一个和第一个顶点之间有一条线的线条。

  • PRIMITIVE_TRIANGLES = 4 —- 基本网格的绘制由三角形组成。

  • PRIMITIVE_TRIANGLE_STRIP = 5 —- 基本网格绘制由一个三角形条组成(最后3个顶点总是组合成一个三角形)。

  • PRIMITIVE_TRIANGLE_FAN = 6 —- 图元绘制由三角形条组成,最后3个顶点总是组合成一个三角形。

  • PRIMITIVE_MAX = 7 —- 表示 PrimitiveType 枚举的大小。


enum BlendShapeMode:

  • BLEND_SHAPE_MODE_NORMALIZED = 0 —- 混合形状是被归一化了的。

  • BLEND_SHAPE_MODE_RELATIVE = 1 —- 混合形状相对于基础的权重。


enum LightType:

  • LIGHT_DIRECTIONAL = 0 —- 是定向(日光)灯。

  • LIGHT_OMNI = 1 —- 是泛光灯。

  • LIGHT_SPOT = 2 —- 是聚光灯。


enum LightParam:

  • LIGHT_PARAM_ENERGY = 0 —- 灯光的能量。

  • LIGHT_PARAM_INDIRECT_ENERGY = 1 —- 与间接光(光反射)一起使用的二次倍增器。

  • LIGHT_PARAM_SIZE = 2 —- 灯光的大小,目前仅用于烘焙光照贴图中的柔和阴影。

  • LIGHT_PARAM_SPECULAR = 3 —- 灯光对镜面反射的影响。

  • LIGHT_PARAM_RANGE = 4 —- 灯光的范围。

  • LIGHT_PARAM_ATTENUATION = 5 —- 光线的衰减。

  • LIGHT_PARAM_SPOT_ANGLE = 6 —- 聚光灯的角度。

  • LIGHT_PARAM_SPOT_ATTENUATION = 7 —- 聚光灯的衰减。

  • LIGHT_PARAM_CONTACT_SHADOW_SIZE = 8 —- 缩放阴影的颜色。

  • LIGHT_PARAM_SHADOW_MAX_DISTANCE = 9 —- 阴影被渲染的最大距离。

  • LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET = 10 —- 第一次拆分所占据的阴影图集的比例。

  • LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET = 11 —- 第二次拆分所占用的阴影图集的比例。

  • LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET = 12 —- 第三次拆分所占用的阴影图集的比例。第四个拆分占据了其余部分。

  • LIGHT_PARAM_SHADOW_NORMAL_BIAS = 13 —- 法线偏移,用于抵消物体法线的阴影查找。可以用来修复自阴影的伪影。

  • LIGHT_PARAM_SHADOW_BIAS = 14 —- 对阴影查找进行偏移,以修复自我阴影的假象。

  • LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE = 15 —- 增加对进一步分割的偏差,以修复仅在远离相机的地方发生的自身阴影。

  • LIGHT_PARAM_MAX = 16 —- 代表LightParam枚举的大小。


enum LightBakeMode:

  • LIGHT_BAKE_DISABLED = 0

  • LIGHT_BAKE_INDIRECT = 1

  • LIGHT_BAKE_ALL = 2


enum LightOmniShadowMode:

  • LIGHT_OMNI_SHADOW_DUAL_PARABOLOID = 0 —- 对泛光灯使用双抛物面阴影贴图。

  • LIGHT_OMNI_SHADOW_CUBE = 1 —- 对泛光灯使用立方体贴图阴影贴图。比双抛物面更慢但质量更好。


enum LightOmniShadowDetail:

  • LIGHT_OMNI_SHADOW_DETAIL_VERTICAL = 0 —- 在计算阴影贴图时,在垂直方向上使用更多的细节。

  • LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL = 1 —- 在计算阴影贴图时,在水平方向上使用更多的细节。


enum LightDirectionalShadowMode:

  • LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL = 0 —- 对平行光使用正交阴影投影。

  • LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS = 1 —- 使用平行光时,使用 2 个分割进行阴影投影。

  • LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS = 2 —- 使用平行光时,使用 4 个分割进行阴影投影。


enum LightDirectionalShadowDepthRangeMode:

  • LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE = 0 —- 当相机移动时,保持阴影稳定,但有效分辨率较低。

  • LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED = 1 —- 优化阴影贴图的使用,提高有效分辨率。但可能会导致阴影轻微移动或闪烁。


enum ViewportUpdateMode:

  • VIEWPORT_UPDATE_DISABLED = 0 —- 不要更新视窗。

  • VIEWPORT_UPDATE_ONCE = 1 —- 更新一次视窗,然后设置为禁用。

  • VIEWPORT_UPDATE_WHEN_VISIBLE = 2 —- 只要视窗是可见的,就更新视窗。

  • VIEWPORT_UPDATE_ALWAYS = 3 —- 始终更新视窗。


enum ViewportClearMode:

  • VIEWPORT_CLEAR_ALWAYS = 0 —- 在绘图之前,视窗总是被清空。

  • VIEWPORT_CLEAR_NEVER = 1 —- 在绘图之前,视窗永远不会被清空。

  • VIEWPORT_CLEAR_ONLY_NEXT_FRAME = 2 —- 视窗被清除一次,然后清除模式设置为 VIEWPORT_CLEAR_NEVER


enum ViewportMSAA:

  • VIEWPORT_MSAA_DISABLED = 0 —- 多重采样抗锯齿被禁用。

  • VIEWPORT_MSAA_2X = 1 —- 多重采样抗锯齿设置为 2×。

  • VIEWPORT_MSAA_4X = 2 —- 多重采样抗锯齿设置为 4×。

  • VIEWPORT_MSAA_8X = 3 —- 多重采样抗锯齿设置为 8×。

  • VIEWPORT_MSAA_16X = 4 —- 多采样抗锯齿设置为16×。

  • VIEWPORT_MSAA_EXT_2X = 5 —- 多重采样抗锯齿设置为外部纹理的2倍。为GLES2 Android VR(Oculus Quest和Go)提供的特殊模式。

  • VIEWPORT_MSAA_EXT_4X = 6 —- 多重采样抗锯齿在外部纹理上被设置为4倍。为GLES2 Android VR(Oculus Quest和Go)提供的特殊模式。


enum ViewportUsage:

  • VIEWPORT_USAGE_2D = 0 —- 视窗并不渲染3D,而是渲染采样。

  • VIEWPORT_USAGE_2D_NO_SAMPLING = 1 —- 视窗并不渲染3D,也不进行采样。

  • VIEWPORT_USAGE_3D = 2 —- 视窗渲染 3D 效果。

  • VIEWPORT_USAGE_3D_NO_EFFECTS = 3 —- 视窗渲染的是3D,但没有效果。


enum ViewportRenderInfo:

  • VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME = 0 —- 在单帧中绘制的对象的数量。

  • VIEWPORT_RENDER_INFO_VERTICES_IN_FRAME = 1 —- 在单个帧中绘制的顶点数。

  • VIEWPORT_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME = 2 —- 此帧期间材质更改的数量。

  • VIEWPORT_RENDER_INFO_SHADER_CHANGES_IN_FRAME = 3 —- 这一帧中着色器变化的数量。

  • VIEWPORT_RENDER_INFO_SURFACE_CHANGES_IN_FRAME = 4 —- 这一帧中表面变化的数量。

  • VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME = 5 —- 此帧期间的绘制调用数。

  • VIEWPORT_RENDER_INFO_2D_ITEMS_IN_FRAME = 6 —- 此帧所绘制的2d项的数量。

  • VIEWPORT_RENDER_INFO_2D_DRAW_CALLS_IN_FRAME = 7 —- 在这一帧中,2d绘制所调用的数量。

  • VIEWPORT_RENDER_INFO_MAX = 8 —- 代表ViewportRenderInfo枚举的大小。


enum ViewportDebugDraw:

  • VIEWPORT_DEBUG_DRAW_DISABLED = 0 —- 调试绘制被禁用。默认设置。

  • VIEWPORT_DEBUG_DRAW_UNSHADED = 1 —- 调试绘制将对象设置为无阴影。

  • VIEWPORT_DEBUG_DRAW_OVERDRAW = 2 —- 将清除颜色覆盖为(0,0,0,0)

  • VIEWPORT_DEBUG_DRAW_WIREFRAME = 3 —- 调试绘制 在线框中绘制对象。


enum ScenarioDebugMode:

  • SCENARIO_DEBUG_DISABLED = 0 —- 不要使用调试模式。

  • SCENARIO_DEBUG_WIREFRAME = 1 —- 以线框模型绘制所有对象。

  • SCENARIO_DEBUG_OVERDRAW = 2 —- 以显示有多少过度绘制的方式绘制对象。当一个像素部分被绘制和着色,然后另一个物体将其覆盖时,就会发生过度绘制。为了优化一个场景,你应该减少过度绘制。

  • SCENARIO_DEBUG_SHADELESS = 3 —- 绘制没有阴影的所有物体。相当于将所有物体的着色器设置为unshaded


enum InstanceType:

  • INSTANCE_NONE = 0 —- 实例没有类型。

  • INSTANCE_MESH = 1 —- 该实例是一个网格。

  • INSTANCE_MULTIMESH = 2 —- 该实例是一个多网格。

  • INSTANCE_IMMEDIATE = 3 —- 该实例是一个即时几何图形。

  • INSTANCE_PARTICLES = 4 —- 该实例是一个粒子发射器。

  • INSTANCE_LIGHT = 5 —- 该实例是一个灯。

  • INSTANCE_REFLECTION_PROBE = 6 —- 该实例是一个反射探针。

  • INSTANCE_GI_PROBE = 7 —- 该实例是一个GI探针。

  • INSTANCE_LIGHTMAP_CAPTURE = 8 —- 该实例是一个光照贴图捕获。

  • INSTANCE_MAX = 9 —- 代表InstanceType枚举的大小。

  • INSTANCE_GEOMETRY_MASK = 30 —- 几何体实例(网格、多网格、即时和粒子)的标志的组合。


enum InstanceFlags:

  • INSTANCE_FLAG_USE_BAKED_LIGHT = 0 —- 允许在烘焙照明中使用实例。

  • INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = 1 —- 当设置时,手动请求在下一帧绘制几何图形。

  • INSTANCE_FLAG_MAX = 2 —- 代表InstanceFlags枚举的大小。


enum ShadowCastingSetting:

  • SHADOW_CASTING_SETTING_OFF = 0 —- 禁用这个实例的阴影。

  • SHADOW_CASTING_SETTING_ON = 1 —- 从此实例投下阴影。

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

  • SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3 —- 仅渲染对象的阴影。对象本身不会被绘制。


enum NinePatchAxisMode:

  • NINE_PATCH_STRETCH = 0 —- 九宫格在需要的地方被拉伸。

  • NINE_PATCH_TILE = 1 —- 九宫格在需要的地方填充瓷砖。

  • NINE_PATCH_TILE_FIT = 2 —- 九宫格在需要的地方填充瓷砖,并在需要时将它们拉伸一点。


enum CanvasLightMode:

  • CANVAS_LIGHT_MODE_ADD = 0 —- 向画布添加浅色。

  • CANVAS_LIGHT_MODE_SUB = 1 —- 从画布中减去浅色。

  • CANVAS_LIGHT_MODE_MIX = 2 —- 灯光根据透明度增加颜色。

  • CANVAS_LIGHT_MODE_MASK = 3 —- 灯光根据遮罩增加颜色。


enum CanvasLightShadowFilter:

  • CANVAS_LIGHT_FILTER_NONE = 0 —- 不要对画布上的光影应用滤镜。

  • CANVAS_LIGHT_FILTER_PCF3 = 1 —- 使用PCF3过滤法来过滤画布的光影。

  • CANVAS_LIGHT_FILTER_PCF5 = 2 —- 使用PCF5过滤法来过滤画布的光影。

  • CANVAS_LIGHT_FILTER_PCF7 = 3 —- 使用PCF7过滤法来过滤画布的光影。

  • CANVAS_LIGHT_FILTER_PCF9 = 4 —- 使用PCF9过滤法来过滤画布的光影。

  • CANVAS_LIGHT_FILTER_PCF13 = 5 —- 使用PCF13过滤法来过滤画布的光影。


enum CanvasOccluderPolygonCullMode:

  • CANVAS_OCCLUDER_POLYGON_CULL_DISABLED = 0 —- 禁用画布遮挡物的剔除。

  • CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE = 1 —- 画布遮挡器的剔除是顺时针的。

  • CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE = 2 —- 画布遮挡物的剔除是逆时针的。


enum RenderInfo:

  • INFO_OBJECTS_IN_FRAME = 0 —- 框架中的对象数量。

  • INFO_VERTICES_IN_FRAME = 1 —- 框架中顶点的数量。

  • INFO_MATERIAL_CHANGES_IN_FRAME = 2 —- 框架中修改材质的数量。

  • INFO_SHADER_CHANGES_IN_FRAME = 3 —- 帧中重新绑定的着色器数量。

  • INFO_SURFACE_CHANGES_IN_FRAME = 4 —- 帧中的表面更改量。

  • INFO_DRAW_CALLS_IN_FRAME = 5 —- 帧中绘制调用的数量。

  • INFO_2D_ITEMS_IN_FRAME = 6 —- 帧中2d项的数量。

  • INFO_2D_DRAW_CALLS_IN_FRAME = 7 —- 帧中2d绘制调用数量。

  • INFO_USAGE_VIDEO_MEM_TOTAL = 8 —- 在 GLES2 和 GLES3 渲染后端中未实现,始终返回 0。

  • INFO_VIDEO_MEM_USED = 9 —- 使用的视频内存的数量,即纹理和顶点内存的总和。

  • INFO_TEXTURE_MEM_USED = 10 —- 使用的纹理内存的数量。

  • INFO_VERTEX_MEM_USED = 11 —- 使用的顶点内存数量。


enum Features:

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

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


enum MultimeshTransformFormat:

  • MULTIMESH_TRANSFORM_2D = 0 —- 使用 Transform2D 存储 MultiMesh 变换。

  • MULTIMESH_TRANSFORM_3D = 1 —- 使用 Transform 存储 MultiMesh 变换。


enum MultimeshColorFormat:

  • MULTIMESH_COLOR_NONE = 0 —- MultiMesh不使用每个实例的颜色。

  • MULTIMESH_COLOR_8BIT = 1 —- 多网格颜色使用每个组件 8 位。这将颜色打包成一个浮点数。

  • MULTIMESH_COLOR_FLOAT = 2 —- 多网格颜色使用每个通道的浮点数。


enum MultimeshCustomDataFormat:

  • MULTIMESH_CUSTOM_DATA_NONE = 0 —- MultiMesh不使用自定义数据。

  • MULTIMESH_CUSTOM_DATA_8BIT = 1 —- 多网格自定义数据每个组件使用 8 位。这将 4 个组件的自定义数据打包到一个浮点数中。

  • MULTIMESH_CUSTOM_DATA_FLOAT = 2 —- 多网格自定义数据使用每个组件的浮点数。


enum ReflectionProbeUpdateMode:

  • REFLECTION_PROBE_UPDATE_ONCE = 0 —- 反射探针将更新一次反射,然后停止。

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


enum ParticlesDrawOrder:

  • PARTICLES_DRAW_ORDER_INDEX = 0 —- 按照粒子数组中出现的顺序绘制粒子。

  • PARTICLES_DRAW_ORDER_LIFETIME = 1 —- 根据粒子的寿命对其进行分类。

  • PARTICLES_DRAW_ORDER_VIEW_DEPTH = 2 —- 根据粒子与相机的距离对其进行排序。


enum EnvironmentBG:

  • ENV_BG_CLEAR_COLOR = 0 —- 用透明的颜色作为背景。

  • ENV_BG_COLOR = 1 —- 使用指定的颜色作为背景。

  • ENV_BG_SKY = 2 —- 使用天空资源作为背景。

  • ENV_BG_COLOR_SKY = 3 —- 使用自定义颜色作为背景,但使用天空作为阴影和反射。

  • ENV_BG_CANVAS = 4 —- 使用一个指定的画布层作为背景。这对在三维世界中实例化一个二维场景很有用。

  • ENV_BG_KEEP = 5 —- 不要清除背景,使用上一帧渲染的东西作为背景。

  • ENV_BG_MAX = 7 —- 代表EnvironmentBG枚举的大小。


enum EnvironmentDOFBlurQuality:

  • ENV_DOF_BLUR_QUALITY_LOW = 0 —- 使用最低的模糊质量。最快,但可能看起来不好。

  • ENV_DOF_BLUR_QUALITY_MEDIUM = 1 —- 使用中等模糊质量。

  • ENV_DOF_BLUR_QUALITY_HIGH = 2 —- 使用最高的模糊质量。看起来最好,但速度最慢。


enum EnvironmentGlowBlendMode:

  • GLOW_BLEND_MODE_ADDITIVE = 0 —- 在场景的顶部添加辉光的效果。

  • GLOW_BLEND_MODE_SCREEN = 1 —- 将辉光效果与屏幕相融合。不像添加物那样明亮。

  • GLOW_BLEND_MODE_SOFTLIGHT = 2 —- 在物体周围产生微妙的颜色扰动。

  • GLOW_BLEND_MODE_REPLACE = 3 —- 在没有底层场景的情况下,单独显示辉光效果。


enum EnvironmentToneMapper:

  • ENV_TONE_MAPPER_LINEAR = 0 —- 颜色怎么进来就怎么输出。

  • ENV_TONE_MAPPER_REINHARD = 1 —- 使用 Reinhard 色调映射器。

  • ENV_TONE_MAPPER_FILMIC = 2 —- 使用电影色调映射器。

  • ENV_TONE_MAPPER_ACES = 3 —- 使用 ACES 色调映射器。

  • ENV_TONE_MAPPER_ACES_FITTED = 4 —- 使用ACES的拟合色调图。


enum EnvironmentSSAOQuality:

  • ENV_SSAO_QUALITY_LOW = 0 —- 最低的屏幕空间环境遮挡质量。

  • ENV_SSAO_QUALITY_MEDIUM = 1 —- 中等质量的屏幕空间环境遮挡。

  • ENV_SSAO_QUALITY_HIGH = 2 —- 最高质量的屏幕空间环境遮挡。


enum EnvironmentSSAOBlur:

  • ENV_SSAO_BLUR_DISABLED = 0 —- 禁用 SSAO 的模糊设置。会使 SSAO 看起来噪点更多。

  • ENV_SSAO_BLUR_1x1 = 1 —- 对 SSAO 输出执行 1x1 模糊。

  • ENV_SSAO_BLUR_2x2 = 2 —- 对 SSAO 输出执行 2x2 模糊。

  • ENV_SSAO_BLUR_3x3 = 3 —- 对SSAO输出执行3x3模糊。使用它可以获得最平滑的SSAO。

常量

  • 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 —- 在Godot 3.x中未使用的枚举。

  • MATERIAL_RENDER_PRIORITY_MIN = -128 —- 所有材质的最小渲染优先级。

  • MATERIAL_RENDER_PRIORITY_MAX = 127 —- 所有材质的最大渲染优先级。

属性说明

  • bool render_loop_enabled

Setter

set_render_loop_enabled(value)

Getter

is_render_loop_enabled()

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

方法说明

  • void black_bars_set_images ( RID left, RID top, RID right, RID bottom )

设置在窗口边缘渲染的图像。


  • void black_bars_set_margins ( int left, int top, int right, int bottom )

设置边距大小,其中呈现黑条(或图像,如果使用 black_bars_set_images)。


  • RID camera_create ( )

创建一个相机并将其添加到VisualServer中。它可以通过返回的RID进行访问。这个RID将用于所有camera_* VisualServer函数。

一旦完成了对RID的处理,你将需要使用VisualServer的free_rid静态方法释放RID。


  • void camera_set_cull_mask ( RID camera, int layers )

设置与此相机相关的剔除遮罩。剔除遮罩描述了此相机渲染的 3D 层。相当于Camera.cull_mask


  • void camera_set_environment ( RID camera, RID env )

设置此相机所使用的环境。等同于Camera.environment


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


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


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

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


  • void camera_set_transform ( RID camera, Transform transform )

设置相机的Transform


  • void camera_set_use_vertical_aspect ( RID camera, bool enable )

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


  • RID canvas_create ( )

创建一个画布并返回指定的RID。可以用返回的RID来访问它。这个RID可在所有canvas_*VisualServer函数中使用。

你一旦完成了RID处理,可使用VisualServer的free_rid静态方法释放RID。


CanvasItem 的绘制命令中添加圆形指令。


  • void canvas_item_add_clip_ignore ( RID item, bool ignore )

如果ignore是true,VisualServer将不会执行剪裁。


CanvasItem 的绘图命令中添加一条直线指令。


  • 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 normal_map )

CanvasItem 的绘图指令中加入网格指令。


  • void canvas_item_add_multimesh ( RID item, RID mesh, RID texture, RID normal_map )

CanvasItem的绘制指令中添加一个MultiMesh。目前只影响其aabb。


CanvasItem 的绘制指令中添加九宫格图像。

请参阅 NinePatchRect


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

CanvasItem的绘制指令添加粒子系统。


CanvasItem 的绘图指令中添加多边形。


CanvasItem 的绘制指令中添加多线段,多线段是指由多个点组成的具有一定宽度的线。


CanvasItem 的绘图指令添加一个基本网格。


CanvasItem 的绘图指令中添加矩形。


  • void canvas_item_add_set_transform ( RID item, Transform2D transform )

CanvasItem的绘图指令中添加Transform2D指令。

这在执行时设置extra_matrix uniform 。这会影响到画布项的后续指令。


  • 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, RID normal_map )

CanvasItem 的绘图指令中添加纹理矩形。


  • 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, RID normal_map, bool clip_uv=true )

CanvasItem的绘制命令中添加带有区域设置的纹理矩形。


CanvasItem 的绘图命令添加三角形组。


  • void canvas_item_clear ( RID item )

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


  • RID canvas_item_create ( )

创建新的 CanvasItem 并返回其 RID。可以用返回的RID来访问它。这个RID可用于所有canvas_item_* VisualServer函数。

一旦完成了你的RID处理,可使用VisualServer的free_rid静态方法释放RID。


  • void canvas_item_set_clip ( RID item, bool clip )

CanvasItem设置剪裁。


  • 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 ) )

CanvasItem 定义一个自定义的绘图矩形。


  • void canvas_item_set_distance_field_mode ( RID item, bool enabled )

为正在渲染基于距离字段的字体的GUI元素,启用距离字段。


  • void canvas_item_set_draw_behind_parent ( RID item, bool enabled )

CanvasItem 设置为在其父项后面绘制。


  • void canvas_item_set_draw_index ( RID item, int index )

设置 CanvasItem 的索引。


  • void canvas_item_set_light_mask ( RID item, int mask )

光线遮罩。关于其更多信息,请参阅LightOccluder2D


  • void canvas_item_set_material ( RID item, RID material )

CanvasItem 设置新材质。


  • void canvas_item_set_modulate ( RID item, Color color )

设置调制 CanvasItem 及其子代的颜色。


  • void canvas_item_set_parent ( RID item, RID parent )

设置CanvasItem的父级。父级可以是另一个画布项目,也可以是连接到视窗的根画布。


  • void canvas_item_set_self_modulate ( RID item, Color color )

设置在没有子代的情况下调制 CanvasItem 的颜色。


  • void canvas_item_set_sort_children_by_y ( RID item, bool enabled )

设置 CanvasItem 的子代是否应按 y 坐标排序。


设置 CanvasItemTransform2D


  • void canvas_item_set_use_parent_material ( RID item, bool enabled )

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


  • void canvas_item_set_visible ( RID item, bool visible )

设置画布项是否可见,包括其子代。


  • 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 ( )

创建画布灯并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 canvas_light_* VisualServer 函数。

完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。


  • void canvas_light_occluder_attach_to_canvas ( RID occluder, RID canvas )

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


  • RID canvas_light_occluder_create ( )

创建灯光遮挡器并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有canvas_light_ocluder_* VisualServer函数。

一旦完成了RID处理,可使用VisualServer的free_rid静态方法释放RID。


  • 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_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 )

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


光的模式,详见CanvasLightMode


  • void canvas_light_set_scale ( RID light, float scale )

设置灯光的纹理比例因子。相当于 Light2D.texture_scale


  • void canvas_light_set_shadow_buffer_size ( RID light, int size )

设置阴影缓冲区的宽度,大小为2的n次幂。


  • void canvas_light_set_shadow_color ( RID light, Color color )

设置画布灯的阴影颜色。


  • void canvas_light_set_shadow_enabled ( RID light, bool enabled )

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


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


  • void canvas_light_set_shadow_gradient_length ( RID light, float length )

设置阴影渐变的长度。


  • void canvas_light_set_shadow_smooth ( RID light, float smooth )

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


  • void canvas_light_set_texture ( RID light, RID texture )

设置灯光使用的纹理。等同于Light2D.texture


  • void canvas_light_set_texture_offset ( RID light, Vector2 offset )

设置灯光纹理的偏移量。等同于Light2D.offset


设置画布灯的 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 ( )

创建新的光遮蔽器多边形并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有canvas_occluder_polygon_* VisualServer函数。

一旦完成了RID处理,可使用VisualServer的free_rid静态方法释放RID。


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


设置遮挡多边形的形状。


  • void canvas_occluder_polygon_set_shape_as_lines ( RID occluder_polygon, PoolVector2Array shape )

将遮挡多边形的形状设置为线。


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

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


  • void canvas_set_modulate ( RID canvas, Color color )

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


  • RID directional_light_create ( )

创建定向灯并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于大多数light_* VisualServer函数。

一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。

要在场景中放置,使用返回的RID,用instance_set_base将这个定向灯附加到一个实例上。


  • void draw ( bool swap_buffers=true, float frame_step=0.0 )

绘制一帧。此方法已被废弃,请使用force_draw代替。


  • RID environment_create ( )

创建一个环境并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可在所有environment_*VisualServer函数中使用。

一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。


设置用于 “调整 “后处理效果的数值。参阅Environment以了解更多细节。


  • void environment_set_ambient_light ( RID env, Color color, float energy=1.0, float sky_contibution=0.0 )

设置环境光参数。详情请参阅 Environment


设置环境的BGMode。相当于Environment.background_mode


  • void environment_set_bg_color ( RID env, Color color )

场景中空白区域的颜色显示(如果使用自定义颜色或颜色+天空背景模式)。


  • void environment_set_bg_energy ( RID env, float energy )

设置背景颜色的强度。


  • void environment_set_canvas_max_layer ( RID env, int max_layer )

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


设置用于 “DoF Far Blur” 后期处理效果的数值。参阅Environment


设置用于 “DoF Near Blur” 后处理效果的数值。参阅Environment


设置用于场景雾化的变量。更多细节见Environment


设置用于雾化深度效果的变量。参阅Environment以了解更多细节。


  • void environment_set_fog_height ( RID env, bool enable, float min_height, float max_height, float height_curve )

设置用于雾化高度效果的变量。参阅Environment以了解更多细节。


设置用于 “glow” 后处理效果的变量。参阅Environment


  • void environment_set_sky ( RID env, RID sky )

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


  • void environment_set_sky_custom_fov ( RID env, float scale )

为背景 Sky 设置自定义字段。相当于 Environment.background_sky_custom_fov


  • void environment_set_sky_orientation ( RID env, Basis orientation )

设置背景Sky的旋转,以Basis表示。相当于Environment.background_sky_orientation


设置用于 “屏幕空间环境遮蔽(SSAO)”后处理效果的变量。参阅Environment


设置用于 “屏幕空间反射 “后处理效果的变量。更多细节见Environment


设置用于 “tonemap “后处理效果的变量。参阅Environment以了解更多细节。


  • void finish ( )

删除缓冲区并清除测试立方体。


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

当函数被调用时,强制绘制一个框架。绘制一个框架会更新所有被设置为要更新的Viewport。使用时要特别小心。


  • void force_sync ( )

同步线程。


  • void free_rid ( RID rid )

尝试释放 VisualServer 中的对象。


返回特定信息,请参阅 RenderInfo


  • RID get_test_cube ( )

返回测试立方体的ID。如果不存在,则创建一个。


  • RID get_test_texture ( )

返回测试纹理的id。如果不存在,则创建一个。


  • String get_video_adapter_name ( ) const

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

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


  • String get_video_adapter_vendor ( ) const

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

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


  • RID get_white_texture ( )

返回白色纹理的id。如果不存在,则创建一个。


  • RID gi_probe_create ( )

创建 GI 探针并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 gi_probe_* VisualServer 函数。

完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。

要放置在场景中,请使用返回的 RID, 使用 instance_set_base 将此 GI 探针附加到实例。


  • float gi_probe_get_bias ( RID probe ) const

返回GI探针的偏置值。偏置是用来避免自我遮挡的。相当于GIProbeData.bias


  • AABB gi_probe_get_bounds ( RID probe ) const

返回覆盖GI探针全部范围的轴对齐的边界框。


  • float gi_probe_get_cell_size ( RID probe ) const

返回由gi_probe_set_cell_size设置的单元大小。


返回GI探针所使用的数据。


  • int gi_probe_get_dynamic_range ( RID probe ) const

返回该GI探针的动态范围设置。相当于GIProbe.dynamic_range


  • float gi_probe_get_energy ( RID probe ) const

返回这个GI探针的能量乘数。相当于GIProbe.energy


  • float gi_probe_get_normal_bias ( RID probe ) const

返回该GI探针的法线偏置。相当于GIProbe.normal_bias


  • float gi_probe_get_propagation ( RID probe ) const

返回这个GI探针的传播值。相当于GIProbe.propagation


返回由gi_probe_set_to_cell_xform设置的变换。


  • bool gi_probe_is_compressed ( RID probe ) const

如果与此GI探针相关的数据被压缩,返回true。相当于GIProbe.compress


  • bool gi_probe_is_interior ( RID probe ) const

如果 GI 探针设置为内部,则返回 true,这意味着它不考虑天空光。相当于GIProbe.interior


  • void gi_probe_set_bias ( RID probe, float bias )

设置偏置值以避免自遮挡。相当于GIProbe.bias


  • void gi_probe_set_bounds ( RID probe, AABB bounds )

设置覆盖 GI 探针范围的轴对齐边界框。


  • void gi_probe_set_cell_size ( RID probe, float range )

设置 GI 探针内单个单元的大小。


  • void gi_probe_set_compress ( RID probe, bool enable )

设置GI探针数据的压缩设置。压缩后的数据将占用更少的空间,但可能看起来更糟糕。相当于GIProbe.compress


设置用于照明计算的GI探针的数据。通常这是在GIProbe节点内部创建和调用的。你不应该尝试自己设置。


  • void gi_probe_set_dynamic_range ( RID probe, int range )

设定GI探针的动态范围。动态范围设定了灯光的亮度限制。较小的范围可以捕捉到更多的细节,但是限制了灯光的亮度。相当于GIProbe.dynamic_range


  • void gi_probe_set_energy ( RID probe, float energy )

设置该GI探针的能量乘数。较高的能量使GI探针的间接光更亮。相当于GIProbe.energy


  • void gi_probe_set_interior ( RID probe, bool enable )

设置该 GI 探针的内部值。设置为内部的 GI 探针在计算照明时不包括天空。相当于 GIProbe.interior


  • void gi_probe_set_normal_bias ( RID probe, float bias )

设置该GI探针的法线偏置。法线偏置的行为类似于其他形式的偏置,可有助于减少自我遮挡。相当于GIProbe.normal_bias


  • void gi_probe_set_propagation ( RID probe, float propagation )

设置光在这个GI探针中的传播。相当于GIProbe.propagation


  • void gi_probe_set_to_cell_xform ( RID probe, Transform xform )

为这个GI探针设置单元Transform


  • bool has_changed ( ) const

如果VisualServer的数据被更改,则返回true。如果发生这种情况,通常会调用draw


还没有实现。总是返回false


如果操作系统支持某项功能,则返回true。特性可能是s3tc, etc, etc2, pvrtcskinning_fallback

当使用GLES2渲染时,在硬件不支持默认的GPU蒙皮过程的情况下,返回trueskinning_fallback


设置ImmediateGeometry的内部结构,为绘图做准备。相当于ImmediateGeometry.begin


  • void immediate_clear ( RID immediate )

清除在 immediate_beginimmediate_end 之间设置的所有内容。等效于 ImmediateGeometry.clear


  • void immediate_color ( RID immediate, Color color )

设置用于下一个顶点的颜色。相当于ImmediateGeometry.set_color


  • RID immediate_create ( )

创建直接几何图形并将其添加到VisualServer中。它可以通过返回的RID进行访问。这个RID可在所有immediate_*VisualServer函数中使用。

一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。

要在场景中放置,使用返回的RID用instance_set_base将这个直接几何体附加到一个实例上。


  • void immediate_end ( RID immediate )

结束绘制ImmediateGeometry并显示它。相当于ImmediateGeometry.end


  • RID immediate_get_material ( RID immediate ) const

返回分配给ImmediateGeometry的材质。


  • void immediate_normal ( RID immediate, Vector3 normal )

设置用于下一个顶点的法线。相当于ImmediateGeometry.set_normal


  • void immediate_set_material ( RID immediate, RID material )

设置用于绘制ImmediateGeometry的材质。


  • void immediate_tangent ( RID immediate, Plane tangent )

设置用于下一个顶点的切线。相当于ImmediateGeometry.set_tangent


  • void immediate_uv ( RID immediate, Vector2 tex_uv )

设置用于下一个顶点的UV。相当于ImmediateGeometry.set_uv


  • void immediate_uv2 ( RID immediate, Vector2 tex_uv )

设置用于下一个顶点的UV2。相当于ImmediateGeometry.set_uv2


  • void immediate_vertex ( RID immediate, Vector3 vertex )

使用预先提供的信息添加下一个顶点。相当于ImmediateGeometry.add_vertex


  • void immediate_vertex_2d ( RID immediate, Vector2 vertex )

使用预先提供的信息添加下一个顶点。这是一个辅助类,它在后台调用immediate_vertex。相当于ImmediateGeometry.add_vertex


  • void init ( )

初始化visual server.。这个函数是在引擎初始化过程中由依赖平台的代码内部调用。如果从一个正在运行的游戏中调用,它将不会做任何事情。


  • 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 ( )

创建一个可视化实例并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可在所有instance_*VisualServer函数中使用。

一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。

实例是在场景中放置 3D 对象的一种方式。粒子、网格和反射探针等对象需要与使用 instance_set_base 的实例关联才能在场景中可见。


  • RID instance_create2 ( RID base, RID scenario )

创建一个可视化实例,将其添加到VisualServer中,并设置基本和效果。可以用返回的RID来访问它。这个RID可在所有instance_*VisualServer函数中使用。

一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。


  • void instance_geometry_set_as_instance_lod ( RID instance, RID as_lod_of_instance )

在Godot 3.x中没有实现。


将阴影投射设置为ShadowCastingSetting中的一个。相当于GeometryInstance.cast_shadow


在Godot 3.x中没有实现。


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


  • void instance_geometry_set_material_overlay ( RID instance, RID material )

Sets a material that will be rendered for all surfaces on top of active materials for the mesh associated with this instance. Equivalent to GeometryInstance.material_overlay.


  • void instance_geometry_set_material_override ( RID instance, RID material )

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


  • void instance_set_base ( RID instance, RID base )

设置实例的基类。基类可以是VisualServer中创建的任何可以显示的3D对象。例如,光照类型、网格、多网格、基本几何、粒子系统、反射探针、光照图捕捉和GI探针等类型都可以被设置为实例的基类,以便在场景中显示。


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

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


  • void instance_set_custom_aabb ( RID instance, AABB aabb )

设置自定义的AABB,当从视图中剔除对象时使用。相当于GeometryInstance.set_custom_aabb


  • void instance_set_exterior ( RID instance, bool enabled )

在Godot 3.x中没有实现的功能。


  • void instance_set_extra_visibility_margin ( RID instance, float margin )

设置边距,在剔除视域范围内的对象时增加AABB的大小。这可以让你避免剔除落在视域范围外的物体。相当于GeometryInstance.extra_cull_margin


  • void instance_set_layer_mask ( RID instance, int mask )

设置该实例将被绘制的渲染层。相当于VisualInstance.layers


  • void instance_set_scenario ( RID instance, RID scenario )

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


  • void instance_set_surface_material ( RID instance, int surface, RID material )

设置特定表面的材质。相当于MeshInstance.set_surface_material


  • void instance_set_transform ( RID instance, Transform transform )

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


  • void instance_set_use_lightmap ( RID instance, RID lightmap_instance, RID lightmap, int lightmap_slice=-1, Rect2 lightmap_uv_rect=Rect2( 0, 0, 1, 1 ) )

设置该实例使用的光照图。


  • void instance_set_visible ( RID instance, bool visible )

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


  • Array instances_cull_aabb ( AABB aabb, RID scenario ) const

返回一个与所提供的AABB相交的物体ID数组。只考虑可视化的3D节点,例如MeshInstanceDirectionalLight。使用@GDScript.instance_from_id来获取实际节点。这必须提供一个场景的RID,该RID在你想查询的World中是可用的。这将强制更新所有排队等待更新的资源。

警告: 这个函数主要用于编辑器使用。对于游戏中的使用情况,最好是物理碰撞。


  • Array instances_cull_convex ( Array convex, RID scenario ) const

返回一个与所提供的凸形相交的物体ID数组。只考虑可视化的3D节点,如MeshInstanceDirectionalLight。使用@GDScript.instance_from_id来获取实际节点。必须提供一个场景的RID,这个RID在你想查询的World中是可用的。这将强制更新所有排队等待更新的资源。

警告: 这个函数主要用于编辑器使用。对于游戏中的使用情况,最好是物理碰撞。


返回一个与所提供的3D射线相交的物体ID数组。只考虑可视化的3D节点,例如MeshInstanceDirectionalLight。使用@GDScript.instance_from_id来获取实际节点。必须提供一个场景的RID,这个RID在你想查询的World中是可用的。这将强制更新所有排队等待更新的资源。

警告: 这个函数主要用于编辑器的使用。对于游戏中的使用情况,最好是物理碰撞。


  • void light_directional_set_blend_splits ( RID light, bool enable )

如果true,这个平行光会在阴影贴图分割之间混合,以使它们之间的过渡更加平滑。相当于DirectionalLight.directional_shadow_blend_splits


设置这个平行光源的阴影深度范围模式。相当于DirectionalLight.directional_shadow_depth_range。参阅LightDirectionalShadowDepthRangeMode的选项。


设置此平行光源的阴影模式。相当于DirectionalLight.directional_shadow_mode。参阅LightDirectionalShadowMode的选项。


设置是否为此泛光灯使用垂直或水平细节。这可用于减轻阴影贴图中的伪影。相当于 OmniLight.omni_shadow_detail


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


设置此灯的烘焙模式,参阅 LightBakeMode 的选项。烘焙模式会影响灯光在 BakedLightmapGIProbe 中的烘焙方式。


  • void light_set_color ( RID light, Color color )

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


  • void light_set_cull_mask ( RID light, int mask )

设置此灯光的剔除遮罩。灯光仅影响选定图层中的对象。相当于Light.light_cull_mask


  • void light_set_negative ( RID light, bool enable )

如果true,光将减去光而不是增加光。相当于Light.light_negative


设置指定的灯光参数。参阅LightParam的选项。相当于Light.set_param


  • void light_set_projector ( RID light, RID texture )

在Godot 3.x中没有实现。


  • void light_set_reverse_cull_face_mode ( RID light, bool enabled )

如果true,反转网格的背面剔除。当你有一个平面网格后面有灯光时,这可能很有用。如果你需要在网格的两面都投下阴影,可以用instance_geometry_set_cast_shadows_setting将网格设置为使用双面阴影。相当于Light.shadow_reverse_cull_face


  • void light_set_shadow ( RID light, bool enabled )

如果true,光线会投射阴影。相当于Light.shadow_enabled


  • void light_set_shadow_color ( RID light, Color color )

设置灯光投射阴影的颜色。相当于Light.shadow_color


  • void light_set_use_gi ( RID light, bool enabled )

设置GI探针是否从这个灯中捕捉光线信息。废弃的方法。使用light_set_bake_mode代替。这个方法只是出于兼容性考虑而被保留,它在内部调用light_set_bake_mode,根据给定的参数将烘烤模式设置为LIGHT_BAKE_DISABLEDLIGHT_BAKE_INDIRECT


  • RID lightmap_capture_create ( )

创建一个光照贴图捕获并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有lightmap_capture_* VisualServer函数。

一旦完成了RID处理,可使用VisualServer的free_rid静态方法释放RID。

要在场景中放置,使用返回的RID,用instance_set_base将这个lightmap capture附加到一个实例上。


  • AABB lightmap_capture_get_bounds ( RID capture ) const

返回光照贴图捕获区域的大小。


  • float lightmap_capture_get_energy ( RID capture ) const

返回光照贴图捕获使用的能量乘数。


返回光照贴图捕获使用的八叉树。


  • int lightmap_capture_get_octree_cell_subdiv ( RID capture ) const

返回此光照贴图捕获的八叉树使用的单元细分量。


  • Transform lightmap_capture_get_octree_cell_transform ( RID capture ) const

返回此光照贴图捕获的八叉树的单元变换。


  • bool lightmap_capture_is_interior ( RID capture ) const

如果捕获处于”interior”内部模式,则返回 true


  • void lightmap_capture_set_bounds ( RID capture, AABB bounds )

设置光照贴图捕获所覆盖区域的大小。相当于 BakedLightmapData.bounds


  • void lightmap_capture_set_energy ( RID capture, float energy )

设置此光照贴图捕获的能量乘数。相当于BakedLightmapData.energy


  • void lightmap_capture_set_interior ( RID capture, bool interior )

设置此光照贴图捕获的 “interior”内部模式。相当于 BakedLightmapData.interior


设置此光照贴图捕获要使用的八叉树。该函数通常由 BakedLightmap 节点使用。相当于BakedLightmapData.octree


  • void lightmap_capture_set_octree_cell_subdiv ( RID capture, int subdiv )

设置此光照贴图捕获八叉树的细分级别。相当于BakedLightmapData.cell_subdiv


  • void lightmap_capture_set_octree_cell_transform ( RID capture, Transform xform )

设置此光照贴图捕获的八叉树的八叉树单元变换。相当于BakedLightmapData.cell_space_transform


返回具有给定水平和垂直细分的球体网格。


  • RID material_create ( )

创建一个空材质并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 material_* VisualServer 函数。

完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。


返回特定材质的参数值。


如果可用,返回参数的默认值。否则返回一个空的 Variant


  • RID material_get_shader ( RID shader_material ) const

返回某个材质着色的着色器。如果材质没有着色器,则返回一个空的 RID。


  • void material_set_line_width ( RID material, float width )

设置材质的线宽。


  • void material_set_next_pass ( RID material, RID next_material )

设置对象的下一个材质。


设置材质的参数。


  • void material_set_render_priority ( RID material, int priority )

设置材质的渲染优先级。


  • void material_set_shader ( RID shader_material, RID shader )

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


将从Arrays数组生成的表面添加到网格。有关类型,请参阅 PrimitiveType 常量。


  • void mesh_clear ( RID mesh )

移除网格中的所有表面。


  • RID mesh_create ( )

创建一个新网格并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 mesh_* VisualServer 函数。

完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。

要放置在场景中,请使用返回的 RID 使用 instance_set_base 将此网格附加到实例。


  • int mesh_get_blend_shape_count ( RID mesh ) const

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


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


  • AABB mesh_get_custom_aabb ( RID mesh ) const

返回网格的自定义 AABB。


  • int mesh_get_surface_count ( RID mesh ) const

返回网格的面数。


  • void mesh_remove_surface ( RID mesh, int index )

移除网格的表面。


  • void mesh_set_blend_shape_count ( RID mesh, int amount )

设置网格的混合形状计数。


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


  • void mesh_set_custom_aabb ( RID mesh, AABB aabb )

设置网格的自定义 AABB。


  • AABB mesh_surface_get_aabb ( RID mesh, int surface ) const

返回网格表面的 aabb。


返回网格表面的顶点缓冲区。


  • int mesh_surface_get_array_index_len ( RID mesh, int surface ) const

返回网格的表面的索引数量。


  • int mesh_surface_get_array_len ( RID mesh, int surface ) const

返回网格表面的顶点数量。


  • 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 ( RID mesh, int surface ) const

返回网格表面的格式。


  • int mesh_surface_get_format_offset ( int format, int vertex_len, int index_len, int array_index ) const

这个函数在 Godot 3.x 中未使用。


  • int mesh_surface_get_format_stride ( int format, int vertex_len, int index_len, int array_index ) const

返回网格表面的索引缓冲区。


  • RID mesh_surface_get_material ( RID mesh, int surface ) const

返回网格表面的材质。


返回网格表面的基本网格类型。


  • Array mesh_surface_get_skeleton_aabb ( RID mesh, int surface ) const

返回网格表面骨架的 aabb。


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

设置网格表面的材质。


更新指定曲面的顶点缓冲区的一个特定区域。警告:这个函数直接改变了顶点缓冲区,没有安全机制,你很容易破坏你的网格。


为多网格数据分配空间。格式参数决定了 OpenGL 如何存储数据。有关用法,请参阅 MultimeshTransformFormatMultimeshColorFormatMultimeshCustomDataFormat。相当于 MultiMesh.instance_count


  • RID multimesh_create ( )

在 VisualServer 上创建一个新的多网格并返回一个 RID 句柄。此 RID 可用于所有 multimesh_* VisualServer 函数。

完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。

要放置在场景中,请使用返回的 RID 使用 instance_set_base 将此多网格附加到实例。


  • AABB multimesh_get_aabb ( RID multimesh ) const

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


  • 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

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


  • Transform multimesh_instance_get_transform ( RID multimesh, int index ) const

返回指定实例的Transform


返回指定实例的 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, Transform transform )

设置此实例的 Transform。相当于MultiMesh.set_instance_transform


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

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


一次性设置所有与实例相关的数据。这在从磁盘加载数据或从GDNative准备数据时特别有用。

所有的数据都被打包在一个大型浮点数组中。一个数组可能看起来像这样: 实例1的变换,实例1的颜色数据,实例1的自定义数据,实例2的变换,实例2的颜色数据,等等。

Transform存储为12个浮点数,Transform2D存储为8个浮点数,COLOR_8BIT / CUSTOM_DATA_8BIT存储为1个浮点数(按4字节),COLOR_FLOAT / CUSTOM_DATA_FLOAT 存储为4个浮点数。


  • 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 omni_light_create ( )

创建一个新的泛光灯并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于大多数 light_* VisualServer 函数。

完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。

要放置在场景中,请使用返回的 RID 使用 instance_set_base 将此泛光灯附加到实例。


  • RID particles_create ( )

创建一个粒子系统并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 particles_* VisualServer 函数。

完成 RID 后,可使用 VisualServer 的 free_rid 静态方法释放 RID。

要放置在场景中,请使用返回的 RID 使用 instance_set_base 将这些粒子附加到实例。


  • AABB particles_get_current_aabb ( RID particles )

计算并返回包含所有粒子的轴对齐边界框。相当于Particles.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 )

在下次更新时重置粒子。相当于Particles.restart


  • void particles_set_amount ( RID particles, int amount )

设置要绘制的粒子的数量,并为其分配内存。相当于Particles.amount


  • void particles_set_custom_aabb ( RID particles, AABB aabb )

为粒子系统设置自定义轴对齐边界框。相当于 Particles.visibility_aabb


将粒子的绘制顺序设置为 ParticlesDrawOrder 中的枚举之一。有关选项,请参阅 ParticlesDrawOrder。相当于 Particles.draw_order


  • void particles_set_draw_pass_mesh ( RID particles, int pass, RID mesh )

设置用于指定绘制通道的网格。相当于 Particles.draw_pass_1Particles.draw_pass_2Particles.draw_pass_3Particles.draw_pass_4


  • void particles_set_draw_passes ( RID particles, int count )

设置要使用的绘制通道数。相当于 Particles.draw_passes


  • void particles_set_emission_transform ( RID particles, Transform transform )

设置粒子首次发射时将使用的 Transform


  • void particles_set_emitting ( RID particles, bool emitting )

如果true,粒子会随着时间的推移而发射出来。设置为false不会重置粒子,而只是停止其发射。相当于Particles.emitting


  • void particles_set_explosiveness_ratio ( RID particles, float ratio )

设置爆炸率。相当于Particles.explosiveness


  • void particles_set_fixed_fps ( RID particles, int fps )

设置粒子系统渲染的固定帧率。相当于Particles.fixed_fps


  • void particles_set_fractional_delta ( RID particles, bool enable )

如果 true,则使用分数增量来平滑粒子的运动。相当于 Particles.fract_delta


  • void particles_set_lifetime ( RID particles, float lifetime )

设置系统中每个粒子的寿命。相当于 Particles.lifetime


  • void particles_set_one_shot ( RID particles, bool one_shot )

如果 true,粒子将发射一次然后停止。相当于 Particles.one_shot


  • void particles_set_pre_process_time ( RID particles, float time )

设置粒子动画的预处理时间。这使您可以延迟启动动画,直到粒子开始发射。相当于Particles.preprocess


  • void particles_set_process_material ( RID particles, RID material )

设置用于处理粒子的材质。

注意: 这不是用于绘制材质的材质。相当于Particles.process_material


  • void particles_set_randomness_ratio ( RID particles, float ratio )

设置发射随机率。这将随机化粒子在其相位内的发射。相当于 Particles.randomness


  • void particles_set_speed_scale ( RID particles, float scale )

设置粒子系统的速度缩放。相当于 Particles.speed_scale


  • void particles_set_use_local_coordinates ( RID particles, bool enable )

如果 true,粒子使用局部坐标。如果 false 其使用全局坐标。相当于 Particles.local_coords


  • RID reflection_probe_create ( )

创建一个反射探针并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有reflection_probe_* VisualServer函数。

一旦完成了RID处理,可使用VisualServer的free_rid静态方法释放RID。

要在场景中放置,使用返回的RID,用instance_set_base将这个反射探针附加到一个实例上。


  • void reflection_probe_set_as_interior ( RID probe, bool enable )

如果 true,反射将忽略天空的贡献。相当于 ReflectionProbe.interior_enable


  • 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_extents ( RID probe, Vector3 extents )

设置反射探针将捕获的区域的大小。等效于 ReflectionProbe.extents


  • void reflection_probe_set_intensity ( RID probe, float intensity )

设置反射探针的强度。强度调节反射的强度。等效于 ReflectionProbe.intensity


  • void reflection_probe_set_interior_ambient ( RID probe, Color color )

设置为内部模式时,为此反射探针设置环境光颜色。相当于ReflectionProbe.interior_ambient_color


  • void reflection_probe_set_interior_ambient_energy ( RID probe, float energy )

当设置为内部模式时,设置此反射探针环境光贡献的能量乘数。相当于ReflectionProbe.interior_ambient_energy


  • void reflection_probe_set_interior_ambient_probe_contribution ( RID probe, float contrib )

设置贡献值,即当设置为内部模式时,反射对该反射探针的环境光的影响程度。这样可以使环境光与房间的颜色一致。相当于 ReflectionProbe.interior_ambient_contrib


  • void reflection_probe_set_max_distance ( RID probe, float distance )

设置物体在被删除前与探针的最大距离。等同于ReflectionProbe.max_distance


  • void reflection_probe_set_origin_offset ( RID probe, Vector3 offset )

设置当此反射探针处于框项目模式时要使用的源偏移。相当于ReflectionProbe.origin_offset


设置反射探针的更新频率。可以是一次,也可以是每一帧。参阅ReflectionProbeUpdateMode选项。


在画完一帧后,在where上安排一个回调给相应的命名的method

回调方法必须只使用1个参数,它将与userdata一起被调用。


  • RID scenario_create ( )

创建一个场景并将其添加到VisualServer中。它可以通过返回的RID进行访问。这个RID可在所有scenario_*VisualServer函数中使用。

一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。

场景是所有视觉实例所存在的三维世界。


设置该场景的ScenarioDebugMode


  • void scenario_set_environment ( RID scenario, RID environment )

设置将用于此场景的环境。


  • void scenario_set_fallback_environment ( RID scenario, RID environment )

设置此方案所使用的后备环境。如果没有设置环境,则使用后备环境。这被编辑器用来提供一个默认环境。


  • void scenario_set_reflection_atlas_size ( RID scenario, int size, int subdiv )

设置此场景中所有反射探针共享的反射图集的大小。


设置一个启动图像。颜色定义了背景颜色。如果scaletrue,图像将被缩放以适应屏幕尺寸。如果use_filtertrue,图像将以线性插值进行缩放。如果use_filterfalse,图像将以近邻插值的方式缩放。


  • void set_debug_generate_wireframes ( bool generate )

如果 true,引擎将生成用于线框调试模式的线框。


  • void set_default_clear_color ( Color color )

设置未选择特定透明色时使用的默认透明色。


  • void set_shader_async_hidden_forbidden ( bool forbidden )

If asynchronous shader compilation is enabled, this controls whether SpatialMaterial.ASYNC_MODE_HIDDEN is obeyed.

For instance, you may want to enable this temporarily before taking a screenshot. This ensures everything is visible even if shaders with async mode hidden are not ready yet.

Reflection probes use this internally to ensure they capture everything regardless the shaders are ready or not.


  • void set_shader_time_scale ( float scale )

设置应用于着色器 TIME 内置时间流逝的比例。

默认值是1.0,表示TIME会随着时间的推移计算实时时间,不会缩小或拉伸它。


  • void set_use_occlusion_culling ( bool enable )

启用或禁用遮挡剔除。


  • RID shader_create ( )

创建一个空的着色器并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 shader_* VisualServer 函数。

完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。


返回着色器的代码。


  • RID shader_get_default_texture_param ( RID shader, String name ) const

从按名称搜索的着色器中返回一个默认纹理。


  • Array shader_get_param_list ( RID shader ) const

返回着色器的参数。


  • void shader_set_code ( RID shader, String code )

设置着色器的代码。


  • void shader_set_default_texture_param ( RID shader, String name, RID texture )

设置着色器的默认纹理。覆盖以名字命名的纹理。


  • void skeleton_allocate ( RID skeleton, int bones, bool is_2d_skeleton=false )

为这个骨架分配 GPU 缓冲区。


返回这个骨架的特定骨骼的Transform集合。


返回此骨架的特定骨骼的Transform2D集合。


  • void skeleton_bone_set_transform ( RID skeleton, int bone, Transform transform )

设置此骨架特定骨骼的 Transform集合。


  • void skeleton_bone_set_transform_2d ( RID skeleton, int bone, Transform2D transform )

设置此骨架特定骨骼的 Transform2D集合。


  • RID skeleton_create ( )

创建一个骨架并将其添加到VisualServer中。它可以通过返回的RID进行访问。这个RID可用于所有skeleton_* VisualServer函数。

一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。


  • int skeleton_get_bone_count ( RID skeleton ) const

返回分配给这个骨架的骨骼数量。


  • RID sky_create ( )

创建一个空的天空并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有sky_* VisualServer函数。

一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。


  • void sky_set_texture ( RID sky, RID cube_map, int radiance_size )

设置天空的纹理。


  • RID spot_light_create ( )

创建一个聚光灯并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于大多数light_* VisualServer函数。

一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。

要在场景中放置,请使用返回的RID,用instance_set_base将该聚光灯附加到一个实例上。


  • void sync ( )

在Godot 3.x中没有实现。


为纹理分配GPU内存。


  • void texture_bind ( RID texture, int number )

将纹理绑定到纹理槽。


  • RID texture_create ( )

创建一个空纹理并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有texture_* VisualServer函数中。

一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。


  • RID texture_create_from_image ( Image image, int flags=7 )

创建纹理,为图像分配空间,并填充图像。


  • Array texture_debug_usage ( )

返回所有纹理及其信息的列表。


  • Image texture_get_data ( RID texture, int cube_side=0 ) const

返回纹理图像的副本,除非它是 CubeMap,在这种情况下,它返回立方体一侧的图像的 RID


  • int texture_get_depth ( RID texture ) const

返回纹理的深度。


  • int texture_get_flags ( RID texture ) const

返回一个纹理的标志flags。


  • Format texture_get_format ( RID texture ) const

返回纹理的图像格式。


  • int texture_get_height ( RID texture ) const

返回纹理的高度。


  • String texture_get_path ( RID texture ) const

返回纹理的路径。


  • int texture_get_texid ( RID texture ) const

返回纹理图像的opengl id。


返回纹理的类型,可以是TextureType中的任何一种。


  • int texture_get_width ( RID texture ) const

返回纹理的宽度。


  • void texture_set_data ( RID texture, Image image, int layer=0 )

设置纹理的图像数据。如果是CubeMap,它将设置立方体边上的图像数据。


设置一个纹理的部分数据。警告:这个函数直接调用底层图形API,如果使用不当可能会破坏你的纹理。


  • void texture_set_flags ( RID texture, int flags )

设置纹理的标志flags。选项见TextureFlags


  • void texture_set_path ( RID texture, String path )

设置纹理的路径。


  • void texture_set_shrink_all_x2_on_set_data ( bool shrink )

如果为true,设置内部进程,将所有图像数据缩小到一半大小。


  • void texture_set_size_override ( RID texture, int width, int height, int depth )

将纹理的大小调整为指定的尺寸。


  • void textures_keep_original ( bool enable )

如果为true,如果被覆盖,图像将存储在纹理的图像数组中。


  • 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.render_direct_to_screentrue,那么视窗就不会使用帧缓冲器,视窗的内容会直接渲染到屏幕上。然而,请注意,根视窗是最后绘制的,因此它将在屏幕上绘制。因此,你必须将根视窗设置为一个不覆盖你所附加的这个视窗的区域。

例如,你可以用以下代码将根视窗设置为完全不渲染。

  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 ( )

创建一个空视窗并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID将用于所有viewport_* 的VisualServer函数。

一旦你用完了RID,你要使用VisualServer的free_rid静态方法释放RID。


  • void viewport_detach ( RID viewport )

将视窗从屏幕上分离。


返回视窗的渲染信息。有关选项,请参阅 ViewportRenderInfo 常量。


  • 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_stacking ( RID viewport, RID canvas, int layer, int sublayer )

设置视窗画布的堆叠顺序。

layer是实际的画布层,而sublayer则指定画布在同一层中的堆叠顺序。


设置视窗画布的变换。


设置视窗的清除模式。详见ViewportClearMode


设置视窗的调试绘图模式。详见ViewportDebugDraw


  • void viewport_set_disable_3d ( RID viewport, bool disabled )

如果为 true,则视窗的 3D 渲染将禁用。


  • void viewport_set_disable_environment ( RID viewport, bool disabled )

如果 true,则禁用视窗环境的渲染。


  • void viewport_set_global_canvas_transform ( RID viewport, Transform2D transform )

设置视窗的全局变换矩阵。


  • void viewport_set_hdr ( RID viewport, bool enabled )

如果 true,视窗将呈现为 hdr。


  • void viewport_set_hide_canvas ( RID viewport, bool hidden )

如果 true,则不渲染视窗的画布。


  • void viewport_set_hide_scenario ( RID viewport, bool hidden )

目前在 Godot 3.x 中未实现。


设置抗锯齿模式。详见ViewportMSAA


  • void viewport_set_parent_viewport ( RID viewport, RID parent_viewport )

设置视窗的父视窗到另一个视窗。


  • void viewport_set_render_direct_to_screen ( RID viewport, bool enabled )

如果true,直接将视窗的内容渲染到屏幕上。这允许一个低级别的优化,你可以跳过绘制视窗到根视窗。虽然这种优化可以显著提高速度(特别是在旧设备上),但它是以牺牲可用性为代价的。当启用这个功能时,你不能从视窗或SCREEN_TEXTURE中读取。你也会失去某些窗口设置的好处,比如各种拉伸模式。另一个需要注意的后果是,在2D中,渲染是以窗口坐标进行的,所以如果你有一个两倍于窗口大小的视窗,并且你设置了这个,那么只有适合窗口的部分才会被绘制,没有自动缩放的可能,即使你的游戏场景明显大于窗口大小。


  • void viewport_set_scenario ( RID viewport, RID scenario )

设置一个视窗的场景。

场景包含ScenarioDebugMode的信息、环境信息、反射图集等。


  • void viewport_set_shadow_atlas_quadrant_subdivision ( RID viewport, int quadrant, int subdivision )

设置阴影图集象限的细分。


  • void viewport_set_shadow_atlas_size ( RID viewport, int size )

设置阴影图集的图像大小(用于泛光灯和聚光灯)。该值将被四舍五入到最接近的2的n次方。


  • void viewport_set_sharpen_intensity ( RID viewport, float intensity )

为视窗viewport设定锐化强度intensity。如果设置为大于0.0的值,对比度适应性锐化将被应用到3D视窗中。这具有较低的性能成本,可以用来恢复使用FXAA时损失的一些锐度。一般来说,0.5左右的值可以得到最好的效果。参阅viewport_set_use_fxaa


  • void viewport_set_size ( RID viewport, int width, int height )

设置视窗的宽度和高度。


  • void viewport_set_transparent_background ( RID viewport, bool enabled )

如果 true,视窗将其背景渲染为透明。


设置应更新视窗的时间。请参阅 ViewportUpdateMode


设置视窗的2D/3D模式。选项见ViewportUsage视窗使用常数。


  • void viewport_set_use_arvr ( RID viewport, bool use_arvr )

如果 true,则视窗使用增强或虚拟现实技术。参阅 ARVRInterface


  • void viewport_set_use_debanding ( RID viewport, bool debanding )

如果为 true,则使用一个快速的后处理滤波器,使带状现象明显减少。在某些情况下,去带可能会引入一个稍微明显的抖动模式。建议只有在实际需要时才启用去带,因为抖动模式会使无损压缩的屏幕截图变大。

注意:仅在 GLES3 后端可用。Viewport.hdr 也必须是 true 才能使 debanding 生效。


  • void viewport_set_use_fxaa ( RID viewport, bool fxaa )

启用该视窗的快速近似抗锯齿。FXAA是一种流行的屏幕空间抗锯齿方法,它速度快,但会使图像看起来很模糊,特别是在低分辨率下。在大的分辨率下,如1440p和4K,它仍然可以工作得比较好。一些损失的锐度可以通过启用对比度适应性锐化来恢复(见viewport_set_sharpen_intensity)。


  • void viewport_set_vflip ( RID viewport, bool enabled )

如果 true,则视窗的渲染垂直翻转。