跳转至

VisualServer

继承

Object

简要描述

服务器可见的任何东西。

描述

服务器可见的任何东西。可视服务器是所有可见内容的API后端。整个场景系统安装在其上进行显示。

可视服务器是完全不透明的,内部结构完全是特定于实现的,无法访问。

可视服务器可用于完全绕开场景系统。

资源是使用* _ create函数创建的。

所有对象均绘制到视口。您可以使用SceneTree附带的Viewport,也可以使用viewport_create自己创建一个。使用自定义方案或画布时,需要使用viewport_set_scenarioviewport_attach_canvas将方案或画布附加到视口。

在3D中,所有视觉对象必须与场景相关联。该场景是世界的视觉表示。如果从正在运行的游戏访问视觉服务器,则可以使用[方法Spatial.get_world]从任何Spatial节点的场景树中访问场景。否则,可以使用methodcens_create创建方案。

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

在3D中,所有可见对象均由资源和实例组成。资源可以是网格,粒子系统,光源或任何其他3D对象。为了使资源可见,必须使用instance_set_base将资源附加到实例。为了使实例可见,还必须使用instance_set_scenario将实例附加到方案。

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

方法

返回值类型 方法名称
void black_bars_set_images(left: RID, top: RID, right: RID, bottom: RID)
void black_bars_set_margins(left: int, top: int, right: int, bottom: int)
RID camera_create()
void camera_set_cull_mask(camera: RID, layers: int)
void camera_set_environment(camera: RID, env: RID)
void camera_set_frustum(camera: RID, size: float, offset: Vector2, z_near: float, z_far: float)
void camera_set_orthogonal(camera: RID, size: float, z_near: float, z_far: float)
void camera_set_perspective(camera: RID, fovy_degrees: float, z_near: float, z_far: float)
void camera_set_transform(camera: RID, transform: Transform)
void camera_set_use_vertical_aspect(camera: RID, enable: bool)
RID canvas_create()
void canvas_item_add_circle(item: RID, pos: Vector2, radius: float, color: Color)
void canvas_item_add_clip_ignore(item: RID, ignore: bool)
void canvas_item_add_line(item: RID, from: Vector2, to: Vector2, color: Color, width: float = 1.0, antialiased: bool = false)
void canvas_item_add_mesh(item: RID, mesh: RID, transform: Transform2D = Transform2D( 1, 0, 0, 1, 0, 0 ), modulate: Color = Color( 1, 1, 1, 1 ), texture: RID, normal_map: RID)
void canvas_item_add_multimesh(item: RID, mesh: RID, texture: RID, normal_map: RID)
void canvas_item_add_nine_patch(item: RID, rect: Rect2, source: Rect2, texture: RID, topleft: Vector2, bottomright: Vector2, x_axis_mode: int = 0, y_axis_mode: int = 0, draw_center: bool = true, modulate: Color = Color( 1, 1, 1, 1 ), normal_map: RID)
void canvas_item_add_particles(item: RID, particles: RID, texture: RID, normal_map: RID)
void canvas_item_add_polygon(item: RID, points: PoolVector2Array, colors: PoolColorArray, uvs: PoolVector2Array = PoolVector2Array( ), texture: RID, normal_map: RID, antialiased: bool = false)
void canvas_item_add_polyline(item: RID, points: PoolVector2Array, colors: PoolColorArray, width: float = 1.0, antialiased: bool = false)
void canvas_item_add_primitive(item: RID, points: PoolVector2Array, colors: PoolColorArray, uvs: PoolVector2Array, texture: RID, width: float = 1.0, normal_map: RID)
void canvas_item_add_rect(item: RID, rect: Rect2, color: Color)
void canvas_item_add_set_transform(item: RID, transform: Transform2D)
void canvas_item_add_texture_rect(item: RID, rect: Rect2, texture: RID, tile: bool = false, modulate: Color = Color( 1, 1, 1, 1 ), transpose: bool = false, normal_map: RID)
void canvas_item_add_texture_rect_region(item: RID, rect: Rect2, texture: RID, src_rect: Rect2, modulate: Color = Color( 1, 1, 1, 1 ), transpose: bool = false, normal_map: RID, clip_uv: bool = true)
void canvas_item_add_triangle_array(item: RID, indices: PoolIntArray, points: PoolVector2Array, colors: PoolColorArray, uvs: PoolVector2Array = PoolVector2Array( ), bones: PoolIntArray = PoolIntArray( ), weights: PoolRealArray = PoolRealArray( ), texture: RID, count: int = -1, normal_map: RID, antialiased: bool = false, antialiasing_use_indices: bool = false)
void canvas_item_clear(item: RID)
RID canvas_item_create()
void canvas_item_set_clip(item: RID, clip: bool)
void canvas_item_set_copy_to_backbuffer(item: RID, enabled: bool, rect: Rect2)
void canvas_item_set_custom_rect(item: RID, use_custom_rect: bool, rect: Rect2 = Rect2( 0, 0, 0, 0 ))
void canvas_item_set_distance_field_mode(item: RID, enabled: bool)
void canvas_item_set_draw_behind_parent(item: RID, enabled: bool)
void canvas_item_set_draw_index(item: RID, index: int)
void canvas_item_set_light_mask(item: RID, mask: int)
void canvas_item_set_material(item: RID, material: RID)
void canvas_item_set_modulate(item: RID, color: Color)
void canvas_item_set_parent(item: RID, parent: RID)
void canvas_item_set_self_modulate(item: RID, color: Color)
void canvas_item_set_sort_children_by_y(item: RID, enabled: bool)
void canvas_item_set_transform(item: RID, transform: Transform2D)
void canvas_item_set_use_parent_material(item: RID, enabled: bool)
void canvas_item_set_visible(item: RID, visible: bool)
void canvas_item_set_z_as_relative_to_parent(item: RID, enabled: bool)
void canvas_item_set_z_index(item: RID, z_index: int)
void canvas_light_attach_to_canvas(light: RID, canvas: RID)
RID canvas_light_create()
void canvas_light_occluder_attach_to_canvas(occluder: RID, canvas: RID)
RID canvas_light_occluder_create()
void canvas_light_occluder_set_enabled(occluder: RID, enabled: bool)
void canvas_light_occluder_set_light_mask(occluder: RID, mask: int)
void canvas_light_occluder_set_polygon(occluder: RID, polygon: RID)
void canvas_light_occluder_set_transform(occluder: RID, transform: Transform2D)
void canvas_light_set_color(light: RID, color: Color)
void canvas_light_set_enabled(light: RID, enabled: bool)
void canvas_light_set_energy(light: RID, energy: float)
void canvas_light_set_height(light: RID, height: float)
void canvas_light_set_item_cull_mask(light: RID, mask: int)
void canvas_light_set_item_shadow_cull_mask(light: RID, mask: int)
void canvas_light_set_layer_range(light: RID, min_layer: int, max_layer: int)
void canvas_light_set_mode(light: RID, mode: int)
void canvas_light_set_scale(light: RID, scale: float)
void canvas_light_set_shadow_buffer_size(light: RID, size: int)
void canvas_light_set_shadow_color(light: RID, color: Color)
void canvas_light_set_shadow_enabled(light: RID, enabled: bool)
void canvas_light_set_shadow_filter(light: RID, filter: int)
void canvas_light_set_shadow_gradient_length(light: RID, length: float)
void canvas_light_set_shadow_smooth(light: RID, smooth: float)
void canvas_light_set_texture(light: RID, texture: RID)
void canvas_light_set_texture_offset(light: RID, offset: Vector2)
void canvas_light_set_transform(light: RID, transform: Transform2D)
void canvas_light_set_z_range(light: RID, min_z: int, max_z: int)
RID canvas_occluder_polygon_create()
void canvas_occluder_polygon_set_cull_mode(occluder_polygon: RID, mode: int)
void canvas_occluder_polygon_set_shape(occluder_polygon: RID, shape: PoolVector2Array, closed: bool)
void canvas_occluder_polygon_set_shape_as_lines(occluder_polygon: RID, shape: PoolVector2Array)
void canvas_set_item_mirroring(canvas: RID, item: RID, mirroring: Vector2)
void canvas_set_modulate(canvas: RID, color: Color)
RID directional_light_create()
void draw(swap_buffers: bool = true, frame_step: float = 0.0)
RID environment_create()
void environment_set_adjustment(env: RID, enable: bool, brightness: float, contrast: float, saturation: float, ramp: RID)
void environment_set_ambient_light(env: RID, color: Color, energy: float = 1.0, sky_contibution: float = 0.0)
void environment_set_background(env: RID, bg: int)
void environment_set_bg_color(env: RID, color: Color)
void environment_set_bg_energy(env: RID, energy: float)
void environment_set_canvas_max_layer(env: RID, max_layer: int)
void environment_set_dof_blur_far(env: RID, enable: bool, distance: float, transition: float, far_amount: float, quality: int)
void environment_set_dof_blur_near(env: RID, enable: bool, distance: float, transition: float, far_amount: float, quality: int)
void environment_set_fog(env: RID, enable: bool, color: Color, sun_color: Color, sun_amount: float)
void environment_set_fog_depth(env: RID, enable: bool, depth_begin: float, depth_end: float, depth_curve: float, transmit: bool, transmit_curve: float)
void environment_set_fog_height(env: RID, enable: bool, min_height: float, max_height: float, height_curve: float)
void environment_set_glow(env: RID, enable: bool, level_flags: int, intensity: float, strength: float, bloom_threshold: float, blend_mode: int, hdr_bleed_threshold: float, hdr_bleed_scale: float, hdr_luminance_cap: float, bicubic_upscale: bool)
void environment_set_sky(env: RID, sky: RID)
void environment_set_sky_custom_fov(env: RID, scale: float)
void environment_set_sky_orientation(env: RID, orientation: Basis)
void environment_set_ssao(env: RID, enable: bool, radius: float, intensity: float, radius2: float, intensity2: float, bias: float, light_affect: float, ao_channel_affect: float, color: Color, quality: int, blur: int, bilateral_sharpness: float)
void environment_set_ssr(env: RID, enable: bool, max_steps: int, fade_in: float, fade_out: float, depth_tolerance: float, roughness: bool)
void environment_set_tonemap(env: RID, tone_mapper: int, exposure: float, white: float, auto_exposure: bool, min_luminance: float, max_luminance: float, auto_exp_speed: float, auto_exp_grey: float)
void finish()
void force_draw(swap_buffers: bool = true, frame_step: float = 0.0)
void force_sync()
void free_rid(rid: RID)
int get_render_info(info: int)
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(probe: RID) const
AABB gi_probe_get_bounds(probe: RID) const
float gi_probe_get_cell_size(probe: RID) const
PoolIntArray gi_probe_get_dynamic_data(probe: RID) const
int gi_probe_get_dynamic_range(probe: RID) const
float gi_probe_get_energy(probe: RID) const
float gi_probe_get_normal_bias(probe: RID) const
float gi_probe_get_propagation(probe: RID) const
Transform gi_probe_get_to_cell_xform(probe: RID) const
bool gi_probe_is_compressed(probe: RID) const
bool gi_probe_is_interior(probe: RID) const
void gi_probe_set_bias(probe: RID, bias: float)
void gi_probe_set_bounds(probe: RID, bounds: AABB)
void gi_probe_set_cell_size(probe: RID, range: float)
void gi_probe_set_compress(probe: RID, enable: bool)
void gi_probe_set_dynamic_data(probe: RID, data: PoolIntArray)
void gi_probe_set_dynamic_range(probe: RID, range: int)
void gi_probe_set_energy(probe: RID, energy: float)
void gi_probe_set_interior(probe: RID, enable: bool)
void gi_probe_set_normal_bias(probe: RID, bias: float)
void gi_probe_set_propagation(probe: RID, propagation: float)
void gi_probe_set_to_cell_xform(probe: RID, xform: Transform)
bool has_changed() const
bool has_feature(feature: int) const
bool has_os_feature(feature: String) const
void immediate_begin(immediate: RID, primitive: int, texture: RID)
void immediate_clear(immediate: RID)
void immediate_color(immediate: RID, color: Color)
RID immediate_create()
void immediate_end(immediate: RID)
RID immediate_get_material(immediate: RID) const
void immediate_normal(immediate: RID, normal: Vector3)
void immediate_set_material(immediate: RID, material: RID)
void immediate_tangent(immediate: RID, tangent: Plane)
void immediate_uv(immediate: RID, tex_uv: Vector2)
void immediate_uv2(immediate: RID, tex_uv: Vector2)
void immediate_vertex(immediate: RID, vertex: Vector3)
void immediate_vertex_2d(immediate: RID, vertex: Vector2)
void init()
void instance_attach_object_instance_id(instance: RID, id: int)
void instance_attach_skeleton(instance: RID, skeleton: RID)
RID instance_create()
RID instance_create2(base: RID, scenario: RID)
void instance_geometry_set_as_instance_lod(instance: RID, as_lod_of_instance: RID)
void instance_geometry_set_cast_shadows_setting(instance: RID, shadow_casting_setting: int)
void instance_geometry_set_draw_range(instance: RID, min: float, max: float, min_margin: float, max_margin: float)
void instance_geometry_set_flag(instance: RID, flag: int, enabled: bool)
void instance_geometry_set_material_override(instance: RID, material: RID)
void instance_set_base(instance: RID, base: RID)
void instance_set_blend_shape_weight(instance: RID, shape: int, weight: float)
void instance_set_custom_aabb(instance: RID, aabb: AABB)
void instance_set_exterior(instance: RID, enabled: bool)
void instance_set_extra_visibility_margin(instance: RID, margin: float)
void instance_set_layer_mask(instance: RID, mask: int)
void instance_set_scenario(instance: RID, scenario: RID)
void instance_set_surface_material(instance: RID, surface: int, material: RID)
void instance_set_transform(instance: RID, transform: Transform)
void instance_set_use_lightmap(instance: RID, lightmap_instance: RID, lightmap: RID)
void instance_set_visible(instance: RID, visible: bool)
Array instances_cull_aabb(aabb: AABB, scenario: RID) const
Array instances_cull_convex(convex: Array, scenario: RID) const
Array instances_cull_ray(from: Vector3, to: Vector3, scenario: RID) const
void light_directional_set_blend_splits(light: RID, enable: bool)
void light_directional_set_shadow_depth_range_mode(light: RID, range_mode: int)
void light_directional_set_shadow_mode(light: RID, mode: int)
void light_omni_set_shadow_detail(light: RID, detail: int)
void light_omni_set_shadow_mode(light: RID, mode: int)
void light_set_color(light: RID, color: Color)
void light_set_cull_mask(light: RID, mask: int)
void light_set_negative(light: RID, enable: bool)
void light_set_param(light: RID, param: int, value: float)
void light_set_projector(light: RID, texture: RID)
void light_set_reverse_cull_face_mode(light: RID, enabled: bool)
void light_set_shadow(light: RID, enabled: bool)
void light_set_shadow_color(light: RID, color: Color)
void light_set_use_gi(light: RID, enabled: bool)
RID lightmap_capture_create()
AABB lightmap_capture_get_bounds(capture: RID) const
float lightmap_capture_get_energy(capture: RID) const
PoolByteArray lightmap_capture_get_octree(capture: RID) const
int lightmap_capture_get_octree_cell_subdiv(capture: RID) const
Transform lightmap_capture_get_octree_cell_transform(capture: RID) const
void lightmap_capture_set_bounds(capture: RID, bounds: AABB)
void lightmap_capture_set_energy(capture: RID, energy: float)
void lightmap_capture_set_octree(capture: RID, octree: PoolByteArray)
void lightmap_capture_set_octree_cell_subdiv(capture: RID, subdiv: int)
void lightmap_capture_set_octree_cell_transform(capture: RID, xform: Transform)
RID make_sphere_mesh(latitudes: int, longitudes: int, radius: float)
RID material_create()
Variant material_get_param(material: RID, parameter: String) const
Variant material_get_param_default(material: RID, parameter: String) const
RID material_get_shader(shader_material: RID) const
void material_set_line_width(material: RID, width: float)
void material_set_next_pass(material: RID, next_material: RID)
void material_set_param(material: RID, parameter: String, value: Variant)
void material_set_render_priority(material: RID, priority: int)
void material_set_shader(shader_material: RID, shader: RID)
void mesh_add_surface_from_arrays(mesh: RID, primitive: int, arrays: Array, blend_shapes: Array = [], compress_format: int = 97280)
void mesh_clear(mesh: RID)
RID mesh_create()
int mesh_get_blend_shape_count(mesh: RID) const
int mesh_get_blend_shape_mode(mesh: RID) const
AABB mesh_get_custom_aabb(mesh: RID) const
int mesh_get_surface_count(mesh: RID) const
void mesh_remove_surface(mesh: RID, index: int)
void mesh_set_blend_shape_count(mesh: RID, amount: int)
void mesh_set_blend_shape_mode(mesh: RID, mode: int)
void mesh_set_custom_aabb(mesh: RID, aabb: AABB)
AABB mesh_surface_get_aabb(mesh: RID, surface: int) const
PoolByteArray mesh_surface_get_array(mesh: RID, surface: int) const
int mesh_surface_get_array_index_len(mesh: RID, surface: int) const
int mesh_surface_get_array_len(mesh: RID, surface: int) const
Array mesh_surface_get_arrays(mesh: RID, surface: int) const
Array mesh_surface_get_blend_shape_arrays(mesh: RID, surface: int) const
int mesh_surface_get_format(mesh: RID, surface: int) const
int mesh_surface_get_format_offset(format: int, vertex_len: int, index_len: int, array_index: int) const
int mesh_surface_get_format_stride(format: int, vertex_len: int, index_len: int) const
PoolByteArray mesh_surface_get_index_array(mesh: RID, surface: int) const
RID mesh_surface_get_material(mesh: RID, surface: int) const
int mesh_surface_get_primitive_type(mesh: RID, surface: int) const
Array mesh_surface_get_skeleton_aabb(mesh: RID, surface: int) const
void mesh_surface_set_material(mesh: RID, surface: int, material: RID)
void mesh_surface_update_region(mesh: RID, surface: int, offset: int, data: PoolByteArray)
void multimesh_allocate(multimesh: RID, instances: int, transform_format: int, color_format: int, custom_data_format: int = 0)
RID multimesh_create()
AABB multimesh_get_aabb(multimesh: RID) const
int multimesh_get_instance_count(multimesh: RID) const
RID multimesh_get_mesh(multimesh: RID) const
int multimesh_get_visible_instances(multimesh: RID) const
Color multimesh_instance_get_color(multimesh: RID, index: int) const
Color multimesh_instance_get_custom_data(multimesh: RID, index: int) const
Transform multimesh_instance_get_transform(multimesh: RID, index: int) const
Transform2D multimesh_instance_get_transform_2d(multimesh: RID, index: int) const
void multimesh_instance_set_color(multimesh: RID, index: int, color: Color)
void multimesh_instance_set_custom_data(multimesh: RID, index: int, custom_data: Color)
void multimesh_instance_set_transform(multimesh: RID, index: int, transform: Transform)
void multimesh_instance_set_transform_2d(multimesh: RID, index: int, transform: Transform2D)
void multimesh_set_as_bulk_array(multimesh: RID, array: PoolRealArray)
void multimesh_set_mesh(multimesh: RID, mesh: RID)
void multimesh_set_visible_instances(multimesh: RID, visible: int)
RID omni_light_create()
RID particles_create()
AABB particles_get_current_aabb(particles: RID)
bool particles_get_emitting(particles: RID)
bool particles_is_inactive(particles: RID)
void particles_request_process(particles: RID)
void particles_restart(particles: RID)
void particles_set_amount(particles: RID, amount: int)
void particles_set_custom_aabb(particles: RID, aabb: AABB)
void particles_set_draw_order(particles: RID, order: int)
void particles_set_draw_pass_mesh(particles: RID, pass: int, mesh: RID)
void particles_set_draw_passes(particles: RID, count: int)
void particles_set_emission_transform(particles: RID, transform: Transform)
void particles_set_emitting(particles: RID, emitting: bool)
void particles_set_explosiveness_ratio(particles: RID, ratio: float)
void particles_set_fixed_fps(particles: RID, fps: int)
void particles_set_fractional_delta(particles: RID, enable: bool)
void particles_set_lifetime(particles: RID, lifetime: float)
void particles_set_one_shot(particles: RID, one_shot: bool)
void particles_set_pre_process_time(particles: RID, time: float)
void particles_set_process_material(particles: RID, material: RID)
void particles_set_randomness_ratio(particles: RID, ratio: float)
void particles_set_speed_scale(particles: RID, scale: float)
void particles_set_use_local_coordinates(particles: RID, enable: bool)
RID reflection_probe_create()
void reflection_probe_set_as_interior(probe: RID, enable: bool)
void reflection_probe_set_cull_mask(probe: RID, layers: int)
void reflection_probe_set_enable_box_projection(probe: RID, enable: bool)
void reflection_probe_set_enable_shadows(probe: RID, enable: bool)
void reflection_probe_set_extents(probe: RID, extents: Vector3)
void reflection_probe_set_intensity(probe: RID, intensity: float)
void reflection_probe_set_interior_ambient(probe: RID, color: Color)
void reflection_probe_set_interior_ambient_energy(probe: RID, energy: float)
void reflection_probe_set_interior_ambient_probe_contribution(probe: RID, contrib: float)
void reflection_probe_set_max_distance(probe: RID, distance: float)
void reflection_probe_set_origin_offset(probe: RID, offset: Vector3)
void reflection_probe_set_update_mode(probe: RID, mode: int)
void request_frame_drawn_callback(where: Object, method: String, userdata: Variant)
RID scenario_create()
void scenario_set_debug(scenario: RID, debug_mode: int)
void scenario_set_environment(scenario: RID, environment: RID)
void scenario_set_fallback_environment(scenario: RID, environment: RID)
void scenario_set_reflection_atlas_size(scenario: RID, size: int, subdiv: int)
void set_boot_image(image: Image, color: Color, scale: bool, use_filter: bool = true)
void set_debug_generate_wireframes(generate: bool)
void set_default_clear_color(color: Color)
RID shader_create()
String shader_get_code(shader: RID) const
RID shader_get_default_texture_param(shader: RID, name: String) const
Array shader_get_param_list(shader: RID) const
void shader_set_code(shader: RID, code: String)
void shader_set_default_texture_param(shader: RID, name: String, texture: RID)
void skeleton_allocate(skeleton: RID, bones: int, is_2d_skeleton: bool = false)
Transform skeleton_bone_get_transform(skeleton: RID, bone: int) const
Transform2D skeleton_bone_get_transform_2d(skeleton: RID, bone: int) const
void skeleton_bone_set_transform(skeleton: RID, bone: int, transform: Transform)
void skeleton_bone_set_transform_2d(skeleton: RID, bone: int, transform: Transform2D)
RID skeleton_create()
int skeleton_get_bone_count(skeleton: RID) const
RID sky_create()
void sky_set_texture(sky: RID, cube_map: RID, radiance_size: int)
RID spot_light_create()
void sync()
void texture_allocate(texture: RID, width: int, height: int, depth_3d: int, format: int, type: int, flags: int = 7)
void texture_bind(texture: RID, number: int)
RID texture_create()
RID texture_create_from_image(image: Image, flags: int = 7)
Array texture_debug_usage()
Image texture_get_data(texture: RID, cube_side: int = 0) const
int texture_get_depth(texture: RID) const
int texture_get_flags(texture: RID) const
int texture_get_format(texture: RID) const
int texture_get_height(texture: RID) const
String texture_get_path(texture: RID) const
int texture_get_texid(texture: RID) const
int texture_get_type(texture: RID) const
int texture_get_width(texture: RID) const
void texture_set_data(texture: RID, image: Image, layer: int = 0)
void texture_set_data_partial(texture: RID, image: Image, src_x: int, src_y: int, src_w: int, src_h: int, dst_x: int, dst_y: int, dst_mip: int, layer: int = 0)
void texture_set_flags(texture: RID, flags: int)
void texture_set_path(texture: RID, path: String)
void texture_set_shrink_all_x2_on_set_data(shrink: bool)
void texture_set_size_override(texture: RID, width: int, height: int, depth: int)
void textures_keep_original(enable: bool)
void viewport_attach_camera(viewport: RID, camera: RID)
void viewport_attach_canvas(viewport: RID, canvas: RID)
void viewport_attach_to_screen(viewport: RID, rect: Rect2 = Rect2( 0, 0, 0, 0 ), screen: int = 0)
RID viewport_create()
void viewport_detach(viewport: RID)
int viewport_get_render_info(viewport: RID, info: int)
RID viewport_get_texture(viewport: RID) const
void viewport_remove_canvas(viewport: RID, canvas: RID)
void viewport_set_active(viewport: RID, active: bool)
void viewport_set_canvas_stacking(viewport: RID, canvas: RID, layer: int, sublayer: int)
void viewport_set_canvas_transform(viewport: RID, canvas: RID, offset: Transform2D)
void viewport_set_clear_mode(viewport: RID, clear_mode: int)
void viewport_set_debug_draw(viewport: RID, draw: int)
void viewport_set_disable_3d(viewport: RID, disabled: bool)
void viewport_set_disable_environment(viewport: RID, disabled: bool)
void viewport_set_global_canvas_transform(viewport: RID, transform: Transform2D)
void viewport_set_hdr(viewport: RID, enabled: bool)
void viewport_set_hide_canvas(viewport: RID, hidden: bool)
void viewport_set_hide_scenario(viewport: RID, hidden: bool)
void viewport_set_msaa(viewport: RID, msaa: int)
void viewport_set_parent_viewport(viewport: RID, parent_viewport: RID)
void viewport_set_render_direct_to_screen(viewport: RID, enabled: bool)
void viewport_set_scenario(viewport: RID, scenario: RID)
void viewport_set_shadow_atlas_quadrant_subdivision(viewport: RID, quadrant: int, subdivision: int)
void viewport_set_shadow_atlas_size(viewport: RID, size: int)
void viewport_set_size(viewport: RID, width: int, height: int)
void viewport_set_transparent_background(viewport: RID, enabled: bool)
void viewport_set_update_mode(viewport: RID, update_mode: int)
void viewport_set_usage(viewport: RID, usage: int)
void viewport_set_use_arvr(viewport: RID, use_arvr: bool)
void viewport_set_vflip(viewport: RID, enabled: bool)

信号

  • frame_post_draw

在VisualServer完成更新所有视口之后,在帧末尾发出。


  • frame_pre_draw

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


枚举

enum CubeMapSide: - CUBEMAP_LEFT = 0

标记立方体贴图的左侧。

  • CUBEMAP_RIGHT = 1

标记立方体贴图的右侧。

  • CUBEMAP_BOTTOM = 2

标记立方体贴图的底部。

  • CUBEMAP_TOP = 3

标记立方体贴图的顶部。

  • CUBEMAP_FRONT = 4

标记立方体贴图的正面。

  • CUBEMAP_BACK = 5

标记立方体贴图的背面。


enum TextureType: - TEXTURE_TYPE_2D = 0

具有2个维度,宽度和高度的普通纹理。

  • TEXTURE_TYPE_CUBEMAP = 1

由六个面组成的纹理可以在着色器中使用vec3查找。

  • TEXTURE_TYPE_2D_ARRAY = 2

二维纹理的数组。

  • TEXTURE_TYPE_3D = 3

具有宽度,高度和深度的3维纹理。


enum TextureFlags: - TEXTURE_FLAG_MIPMAPS = 1

生成mipmap,该mipmap是缩小时使用的相同纹理的较小版本,并保持宽高比。

  • TEXTURE_FLAG_REPEAT = 2

重复纹理(而不是钳夹到边缘)。

  • TEXTURE_FLAG_FILTER = 4

使用放大滤镜以使纹理平滑放大。

  • TEXTURE_FLAG_ANISOTROPIC_FILTER = 8

使用各向异性的Mipmap过滤。 生成具有不同纵横比的相同纹理的较小版本。

从倾斜角度观看时,这会导致外观更好看。

  • 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

用于标记压缩(半浮点)常规数组的标志。

  • ARRAY_COMPRESS_TANGENT = 2048

用于标记压缩(半浮点)切线数组的标志。

  • ARRAY_COMPRESS_COLOR = 4096

用于标记压缩(半浮点)颜色数组的标志。

  • ARRAY_COMPRESS_TEX_UV = 8192

用于标记压缩(半浮点)UV坐标数组的标志。

  • ARRAY_COMPRESS_TEX_UV2 = 16384

用于将压缩的(半浮点)UV坐标数组标记为第二个UV坐标的标志。

  • ARRAY_COMPRESS_BONES = 32768

用于标记压缩的骨骼阵列的标志。

  • ARRAY_COMPRESS_WEIGHTS = 65536

用于标记压缩(半浮点)权重数组的标志。

  • ARRAY_COMPRESS_INDEX = 131072

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

  • ARRAY_FLAG_USE_2D_VERTICES = 262144

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

  • ARRAY_FLAG_USE_16_BIT_BONES = 524288

用于标记数组使用16位骨骼而不是8位骨骼的标志。

  • ARRAY_COMPRESS_DEFAULT = 97280

用于设置标志[常数ARRAY_COMPRESS_VERTEX],[常数ARRAY_COMPRESS_NORMAL],[常数ARRAY_COMPRESS_TANGENT],[常数ARRAY_COMPRESS_COLOR],[常数ARRAY_COMPRESS_TEX_UV],[常数ARRAY_COMPRESS_TEX_UV2]和[常数ARRAY_COMPRESS_WEPRESS。


enum PrimitiveType: - PRIMITIVE_POINTS = 0

绘制的基元由点组成。

  • PRIMITIVE_LINES = 1

绘制的图元由线条组成。

  • PRIMITIVE_LINE_STRIP = 2

绘制的基元由一条从头到尾的线带组成。

  • PRIMITIVE_LINE_LOOP = 3

绘制的图元由线环(在最后一个顶点和第一个顶点之间有一条线的线带)组成。

  • PRIMITIVE_TRIANGLES = 4

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

  • PRIMITIVE_TRIANGLE_STRIP = 5

绘制的图元由一个三角形条组成(最后三个顶点总是组合成一个三角形)。

  • PRIMITIVE_TRIANGLE_FAN = 6

绘制的图元由三角形带组成(最后两个顶点始终与第一个顶点组合成一个三角形)。

  • 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_SPECULAR = 2

光线对镜面反射的影响。

  • LIGHT_PARAM_RANGE = 3

灯光范围。

  • LIGHT_PARAM_ATTENUATION = 4

光线的衰减。

  • LIGHT_PARAM_SPOT_ANGLE = 5

聚光灯的角度。

  • LIGHT_PARAM_SPOT_ATTENUATION = 6

聚光灯的衰减。

  • LIGHT_PARAM_CONTACT_SHADOW_SIZE = 7

缩放阴影颜色。

  • LIGHT_PARAM_SHADOW_MAX_DISTANCE = 8

阴影将被渲染的最大距离。

  • LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET = 9

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

  • LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET = 10

阴影图集被第二个分割占据的比例。

  • LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET = 11

第三分裂占据的阴影图集的比例。 第四部分占据其余部分。

  • LIGHT_PARAM_SHADOW_NORMAL_BIAS = 12

法向偏差用于通过对象法线来偏移阴影查找。 可用于修复自阴影伪像。

  • LIGHT_PARAM_SHADOW_BIAS = 13

偏移阴影查找以修复自阴影伪像。

  • LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE = 14

增加对进一步分割的偏见,以修复仅在距离相机很远的地方出现的自阴影。

  • LIGHT_PARAM_MAX = 15

表示LightParam枚举的大小。


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

多重采样抗锯齿设置为2x。

  • VIEWPORT_MSAA_4X = 2

多重采样抗锯齿设置为4x。

  • VIEWPORT_MSAA_8X = 3

多重采样抗锯齿设置为8x。

  • VIEWPORT_MSAA_16X = 4

多重采样抗锯齿设置为16倍。

  • VIEWPORT_MSAA_EXT_2X = 5

多重采样抗锯齿在外部纹理上设置为2x。

  • VIEWPORT_MSAA_EXT_4X = 6

多重采样抗锯齿在外部纹理上设置为4倍。


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_MAX = 6

表示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_USAGE_VIDEO_MEM_TOTAL = 6

在GLES2和GLES3呈现后端中未实现,始终返回0。

  • INFO_VIDEO_MEM_USED = 7

所使用的视频内存量,即纹理和顶点内存的总和。

  • INFO_TEXTURE_MEM_USED = 8

使用的纹理内存量。

  • INFO_VERTEX_MEM_USED = 9

使用的顶点内存量。


enum Features: - FEATURE_SHADERS = 0

硬件支持着色器。

  • FEATURE_MULTITHREADED = 1

硬件支持多线程。


enum MultimeshTransformFormat: - MULTIMESH_TRANSFORM_2D = 0

使用Transform2D(#method-free_rid)(./Particles.md#method-visibility_aabb)(#method-instance_cull_ray)(#method-instance_set_base)(./Transform2D.md)存储MultiMesh变换。

  • MULTIMESH_TRANSFORM_3D = 1

使用Transform(#method-instance_set_base)(./Particles.md#method-amount)(#method-instance_cull_aabb)(#method-free_rid)(./Transform.md)存储MultiMesh变换。


enum MultimeshColorFormat: - MULTIMESH_COLOR_NONE = 0

MultiMesh不使用每个实例的颜色。

  • MULTIMESH_COLOR_8BIT = 1

MultiMesh颜色每个组件使用8位。

  • MULTIMESH_COLOR_FLOAT = 2

MultiMesh颜色在每个通道上使用浮点数。


enum MultimeshCustomDataFormat: - MULTIMESH_CUSTOM_DATA_NONE = 0

MultiMesh不使用自定义数据。

  • MULTIMESH_CUSTOM_DATA_8BIT = 1

MultiMesh自定义数据每个组件使用8位。

  • MULTIMESH_CUSTOM_DATA_FLOAT = 2

MultiMesh自定义数据对每个组件使用浮点数。


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

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

  • 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 tonemapper。


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。


方法说明

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

设置要在窗口边缘显示的图像。


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

设置页边距大小,在此处渲染黑条(或图像,如果使用black_bars_set_images)。


  • camera_create camera_create()

创建一个摄像机并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有camera _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


  • camera_set_cull_mask camera_set_cull_mask(camera: RID, layers: int)

设置与此摄像机关联的剔除蒙版。 剔除蒙版描述了此摄像机渲染的3D图层。 等效于[成员Camera.cull_mask]。


  • camera_set_environment camera_set_environment(camera: RID, env: RID)

设置此相机使用的环境。 等效于[Camera.environment成员]。


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

将相机设置为使用视锥投影。


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

将相机设置为使用正交投影,也称为正交投影。


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

将相机设置为使用透视投影。


  • camera_set_transform camera_set_transform(camera: RID, transform: Transform)

设置相机的[变换]。


  • camera_set_use_vertical_aspect camera_set_use_vertical_aspect(camera: RID, enable: bool)

如果true,则保留等于Camera.KEEP_WIDTH的水平纵横比。 如果false,则保留等于Camera.KEEP_HEIGHT的垂直长宽比。


  • canvas_create canvas_create()

创建画布并返回分配的RID(./RID.md)。 可以使用返回的RID对其进行访问。 此RID将在所有canvas _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


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

CanvasItem的draw命令中添加一个circle命令。


  • canvas_item_add_clip_ignore canvas_item_add_clip_ignore(item: RID, ignore: bool)

如果ignore为true,则VisualServer不会执行剪辑。


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

将行命令添加到CanvasItem的绘制命令中。


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

将网格命令添加到CanvasItem的绘制命令中。


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

MultiMesh添加到CanvasItem的绘制命令中。 目前仅影响其aabb。


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

CanvasItem的绘制命令中添加九个补丁图像。

有关更多说明,请参见NinePatchRect


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

CanvasItem的绘制命令中添加一个粒子系统。


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

CanvasItem的绘制命令中添加一个多边形。


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

CanvasItem的绘制命令中添加一条折线,该折线是从多个点开始的一条具有一定宽度的线。


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

CanvasItem的绘制命令中添加基本体。


  • canvas_item_add_rect canvas_item_add_rect(item: RID, rect: Rect2, color: Color)

CanvasItem的绘制命令中添加一个矩形。


  • canvas_item_add_set_transform canvas_item_add_set_transform(item: RID, transform: Transform2D)

CanvasItem的绘制命令中添加Transform2D(#method-free_rid)(./Particles.md#method-visibility_aabb)(#method-instance_cull_ray)(#method-instance_set_base)(./Transform2D.md)命令。

这将在执行时设置extra_matrix统一。 这会影响画布项目的后续命令。


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

将纹理化的矩形添加到CanvasItem的绘制命令中。


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

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


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

CanvasItem的绘制命令中添加一个三角形数组。


  • canvas_item_clear canvas_item_clear(item: RID)

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


  • canvas_item_create canvas_item_create()

创建一个新的CanvasItem并返回其RID(./RID.md)。 可以使用返回的RID对其进行访问。 此RID将在所有canvas_item _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


  • canvas_item_set_clip canvas_item_set_clip(item: RID, clip: bool)

设置CanvasItem的裁剪。


  • canvas_item_set_copy_to_backbuffer canvas_item_set_copy_to_backbuffer(item: RID, enabled: bool, rect: Rect2)

设置CanvasItem将rect复制到后缓冲区。


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

CanvasItem定义自定义绘图矩形。


  • canvas_item_set_distance_field_mode canvas_item_set_distance_field_mode(item: RID, enabled: bool)

为显示基于距离字段的字体的GUI元素启用距离字段的使用。


  • canvas_item_set_draw_behind_parent canvas_item_set_draw_behind_parent(item: RID, enabled: bool)

设置CanvasItem在其父级后面绘制。


  • canvas_item_set_draw_index canvas_item_set_draw_index(item: RID, index: int)

设置CanvasItem的索引。


  • canvas_item_set_light_mask canvas_item_set_light_mask(item: RID, mask: int)

遮光罩。


  • canvas_item_set_material canvas_item_set_material(item: RID, material: RID)

将新材质设置为CanvasItem


  • canvas_item_set_modulate canvas_item_set_modulate(item: RID, color: Color)

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


  • canvas_item_set_parent canvas_item_set_parent(item: RID, parent: RID)

设置CanvasItem的父级。 父级可以是另一个画布项目,也可以是附加到视口的根画布。


  • canvas_item_set_self_modulate canvas_item_set_self_modulate(item: RID, color: Color)

设置调制CanvasItem的颜色,不带子级。


  • canvas_item_set_sort_children_by_y canvas_item_set_sort_children_by_y(item: RID, enabled: bool)

设置CanvasItem的子项是否应按y位置排序。


  • canvas_item_set_transform canvas_item_set_transform(item: RID, transform: Transform2D)

设置CanvasItemTransform2D(#method-free_rid)(./Particles.md#method-visibility_aabb)(#method-instance_cull_ray)(#method-instance_set_base)(./Transform2D.md)。


  • canvas_item_set_use_parent_material canvas_item_set_use_parent_material(item: RID, enabled: bool)

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


  • canvas_item_set_visible canvas_item_set_visible(item: RID, visible: bool)

设置画布项目(包括其子项)是否可见。


  • canvas_item_set_z_as_relative_to_parent canvas_item_set_z_as_relative_to_parent(item: RID, enabled: bool)

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


  • canvas_item_set_z_index canvas_item_set_z_index(item: RID, z_index: int)

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


  • canvas_light_attach_to_canvas canvas_light_attach_to_canvas(light: RID, canvas: RID)

将画布灯附加到画布上。 将其从其先前的画布中删除。


  • canvas_light_create canvas_light_create()

创建一个画布灯,并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有canvas_light _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


  • canvas_light_occluder_attach_to_canvas canvas_light_occluder_attach_to_canvas(occluder: RID, canvas: RID)

在画布上附加遮光器。


  • canvas_light_occluder_create canvas_light_occluder_create()

创建一个光遮挡器,并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有canvas_light_ocluder _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


  • canvas_light_occluder_set_enabled canvas_light_occluder_set_enabled(occluder: RID, enabled: bool)

启用或禁用光遮挡物。


  • canvas_light_occluder_set_light_mask canvas_light_occluder_set_light_mask(occluder: RID, mask: int)

遮光罩。 有关光罩的更多信息,请参见[Occluder]。


  • canvas_light_occluder_set_polygon canvas_light_occluder_set_polygon(occluder: RID, polygon: RID)

设置光遮挡物的多边形。


  • canvas_light_occluder_set_transform canvas_light_occluder_set_transform(occluder: RID, transform: Transform2D)

设置遮光器的Transform2D(#method-free_rid)(./Particles.md#method-visibility_aabb)(#method-instance_cull_ray)(#method-instance_set_base)(./Transform2D.md)。


  • canvas_light_set_color canvas_light_set_color(light: RID, color: Color)

设置灯光的颜色。


  • canvas_light_set_enabled canvas_light_set_enabled(light: RID, enabled: bool)

启用或禁用画布灯。


  • canvas_light_set_energy canvas_light_set_energy(light: RID, energy: float)

设置画布灯的能量。


  • canvas_light_set_height canvas_light_set_height(light: RID, height: float)

设置画布灯的高度。


  • canvas_light_set_item_cull_mask canvas_light_set_item_cull_mask(light: RID, mask: int)

遮光罩。


  • canvas_light_set_item_shadow_cull_mask canvas_light_set_item_shadow_cull_mask(light: RID, mask: int)

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


  • canvas_light_set_layer_range canvas_light_set_layer_range(light: RID, min_layer: int, max_layer: int)

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


  • canvas_light_set_mode canvas_light_set_mode(light: RID, mode: int)

灯光的模式,请参见CanvasLightMode常量。


  • canvas_light_set_scale canvas_light_set_scale(light: RID, scale: float)

设置灯光的纹理比例因子。 等效于[成员Light2D.texture_scale]。


  • canvas_light_set_shadow_buffer_size canvas_light_set_shadow_buffer_size(light: RID, size: int)

设置阴影缓冲区的宽度,为此将大小缩放为下一个2的幂。


  • canvas_light_set_shadow_color canvas_light_set_shadow_color(light: RID, color: Color)

设置画布灯光阴影的颜色。


  • canvas_light_set_shadow_enabled canvas_light_set_shadow_enabled(light: RID, enabled: bool)

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


  • canvas_light_set_shadow_filter canvas_light_set_shadow_filter(light: RID, filter: int)

设置画布灯光的阴影的滤镜,请参见CanvasLightShadowFilter常量。


  • canvas_light_set_shadow_gradient_length canvas_light_set_shadow_gradient_length(light: RID, length: float)

设置阴影渐变的长度。


  • canvas_light_set_shadow_smooth canvas_light_set_shadow_smooth(light: RID, smooth: float)

平滑阴影。


  • canvas_light_set_texture canvas_light_set_texture(light: RID, texture: RID)

设置灯光使用的纹理。


  • canvas_light_set_texture_offset canvas_light_set_texture_offset(light: RID, offset: Vector2)

设置灯光纹理的偏移量。


  • canvas_light_set_transform canvas_light_set_transform(light: RID, transform: Transform2D)

设置画布灯的Transform2D(#method-free_rid)(./Particles.md#method-visibility_aabb)(#method-instance_cull_ray)(#method-instance_set_base)(./Transform2D.md)。


  • canvas_light_set_z_range canvas_light_set_z_range(light: RID, min_z: int, max_z: int)

设置将受此灯光影响的对象的Z范围。 等效于[成员Light2D.range_z_min]和[成员Light2D.range_z_max]。


  • canvas_occluder_polygon_create canvas_occluder_polygon_create()

创建一个新的光遮挡物多边形并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有canvas_occluder_polygon _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


  • canvas_occluder_polygon_set_cull_mode canvas_occluder_polygon_set_cull_mode(occluder_polygon: RID, mode: int)

设置遮挡物多边形剔除模式。


  • canvas_occluder_polygon_set_shape canvas_occluder_polygon_set_shape(occluder_polygon: RID, shape: PoolVector2Array, closed: bool)

设置遮挡物多边形的形状。


  • canvas_occluder_polygon_set_shape_as_lines canvas_occluder_polygon_set_shape_as_lines(occluder_polygon: RID, shape: PoolVector2Array)

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


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

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


  • canvas_set_modulate canvas_set_modulate(canvas: RID, color: Color)

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


  • directional_light_create directional_light_create()

创建一个定向光并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID可以在大多数light _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。

要放置在场景中,请使用instance_set_base(使用返回的RID)将此定向光源附加到实例。


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

画一个框架。


  • environment_create environment_create()

Creates an environment and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all environment_* VisualServer functions.

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


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

设置要与“调整”后处理效果一起使用的值。


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

设置环境光参数。 有关更多详细信息,请参见[环境]。


  • environment_set_background environment_set_background(env: RID, bg: int)

设置环境的* BGMode *。 等效于[成员Environment.background_mode]。


  • environment_set_bg_color environment_set_bg_color(env: RID, color: Color)

为场景的清晰区域显示的颜色(如果使用“自定义颜色”或“彩色天空”背景模式)。


  • environment_set_bg_energy environment_set_bg_energy(env: RID, energy: float)

设置背景颜色的强度。


  • environment_set_canvas_max_layer environment_set_canvas_max_layer(env: RID, max_layer: int)

设置使用“画布”背景模式时要使用的最大图层。


  • environment_set_dof_blur_far environment_set_dof_blur_far(env: RID, enable: bool, distance: float, transition: float, far_amount: float, quality: int)

设置要与“ DoF远距模糊”后期处理效果一起使用的值。 有关更多详细信息,请参见[环境]。


  • environment_set_dof_blur_near environment_set_dof_blur_near(env: RID, enable: bool, distance: float, transition: float, far_amount: float, quality: int)

设置要与“ DoF Near Blur”后期处理效果一起使用的值。 有关更多详细信息,请参见[环境]。


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

设置要与场景雾一起使用的变量。 有关更多详细信息,请参见[环境]。


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

设置要与雾深效果一起使用的变量。有关更多详细信息,请参见[环境]。


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

设置要与雾高效果一起使用的变量。有关更多详细信息,请参见[环境]。


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

设置要与“发光”后处理效果一起使用的变量。有关更多详细信息,请参见[环境]。


  • environment_set_sky environment_set_sky(env: RID, sky: RID)

设置使用* BGMode *天空时,将[天空]用作环境的背景。 等效于[成员Environment.background_sky]。


  • environment_set_sky_custom_fov environment_set_sky_custom_fov(env: RID, scale: float)

设置背景[天空]的自定义视野。 等效于[成员Environment.background_sky_custom_fov]。


  • environment_set_sky_orientation environment_set_sky_orientation(env: RID, orientation: Basis)

设置背景[天空]的旋转,以[基础]表示。 等效于[成员Environment.background_sky_orientation]。


  • environment_set_ssao environment_set_ssao(env: RID, enable: bool, radius: float, intensity: float, radius2: float, intensity2: float, bias: float, light_affect: float, ao_channel_affect: float, color: Color, quality: int, blur: int, bilateral_sharpness: float)

设置要与“屏幕空间环境光遮挡(SSAO)”后处理效果一起使用的变量。 有关更多详细信息,请参见[环境]。


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

设置要与“屏幕空间反射”后处理效果一起使用的变量。 有关更多详细信息,请参见[环境]。


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

设置要与“ tonemap”后期处理效果一起使用的变量。 有关更多详细信息,请参见[环境]。


  • finish finish()

除去缓冲液并清除睾丸。


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

调用函数时强制绘制框架。 绘制框架会更新所有设置为要更新的[视口]。 使用时要格外小心。


  • force_sync force_sync()

同步线程。


  • free_rid free_rid(rid: RID)

尝试释放VisualServer中的对象。


  • get_render_info get_render_info(info: int)

返回特定信息,有关选项,请参见RenderInfo


  • get_test_cube get_test_cube()

返回测试多维数据集的ID。 如果不存在,则创建一个。


  • get_test_texture get_test_texture()

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


  • get_video_adapter_name get_video_adapter_name() const

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

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


  • get_video_adapter_vendor get_video_adapter_vendor() const

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

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


  • get_white_texture get_white_texture()

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


  • gi_probe_create gi_probe_create()

创建一个GI探针并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有gi_probe _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。

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


  • gi_probe_get_bias gi_probe_get_bias(probe: RID) const

返回GI探针的偏差值。 偏差用于避免自我遮挡。 等效于[成员GIProbeData.bias]。


  • gi_probe_get_bounds gi_probe_get_bounds(probe: RID) const

返回覆盖GI探针整个范围的与轴对齐的边界框。


  • gi_probe_get_cell_size gi_probe_get_cell_size(probe: RID) const

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


  • gi_probe_get_dynamic_data gi_probe_get_dynamic_data(probe: RID) const

返回GI探针使用的数据。


  • gi_probe_get_dynamic_range gi_probe_get_dynamic_range(probe: RID) const

返回为此GI探针设置的动态范围。


  • gi_probe_get_energy gi_probe_get_energy(probe: RID) const

返回此GI探针的能量乘数。 等效于[GIProbe.energy成员]。


  • gi_probe_get_normal_bias gi_probe_get_normal_bias(probe: RID) const

返回此GI探针的正常偏差。


  • gi_probe_get_propagation gi_probe_get_propagation(probe: RID) const

返回此GI探针的传播值。 等效于[成员GIProbe.propagation]。


  • gi_probe_get_to_cell_xform gi_probe_get_to_cell_xform(probe: RID) const

返回[方法gi_probe_set_to_cell_xform]设置的变换。


  • gi_probe_is_compressed gi_probe_is_compressed(probe: RID) const

如果与该GI探针关联的GI探针数据已压缩,则返回true。 等效于[成员GIProbe.compress]。


  • gi_probe_is_interior gi_probe_is_interior(probe: RID) const

如果GI探针设置为内部,则返回true,这意味着它不考虑天光。 等效于[GIProbe.interior成员]。


  • gi_probe_set_bias gi_probe_set_bias(probe: RID, bias: float)

设置偏差值以避免自闭塞。 等效于[GIProbe.bias成员]。


  • gi_probe_set_bounds gi_probe_set_bounds(probe: RID, bounds: AABB)

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


  • gi_probe_set_cell_size gi_probe_set_cell_size(probe: RID, range: float)

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


  • gi_probe_set_compress gi_probe_set_compress(probe: RID, enable: bool)

设置GI探针数据的压缩设置。 压缩的数据将占用较少的空间,但看起来可能更糟。 等效于[成员GIProbe.compress]。


  • gi_probe_set_dynamic_data gi_probe_set_dynamic_data(probe: RID, data: PoolIntArray)

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


  • gi_probe_set_dynamic_range gi_probe_set_dynamic_range(probe: RID, range: int)

设置GI探头的动态范围。 动态范围设置了明亮度的限制。 较小的范围可以捕获更多细节,但会限制明亮的灯光。 等效于[成员GIProbe.dynamic_range]。


  • gi_probe_set_energy gi_probe_set_energy(probe: RID, energy: float)

设置此GI探头的能量倍增器。 较高的能量会使来自GI探头的间接光更亮。 等效于[GIProbe.energy成员]。


  • gi_probe_set_interior gi_probe_set_interior(probe: RID, enable: bool)

设置此GI探头的内部值。 计算照明时,设置为内部的GI探头不包括天空。 等效于[GIProbe.interior成员]。


  • gi_probe_set_normal_bias gi_probe_set_normal_bias(probe: RID, bias: float)

设置此GI探头的正常偏置。 正常偏见的行为类似于其他形式的偏见,并且可以帮助减少自我遮挡。 等效于[成员GIProbe.normal_bias]。


  • gi_probe_set_propagation gi_probe_set_propagation(probe: RID, propagation: float)

设置此GI探头内的光传播。 等效于[成员GIProbe.propagation]。


  • gi_probe_set_to_cell_xform gi_probe_set_to_cell_xform(probe: RID, xform: Transform)

将此GI探针设置为“转换”单元格。


  • has_changed has_changed() const

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


  • has_feature has_feature(feature: int) const

尚未实现。 始终返回false


  • has_os_feature has_os_feature(feature: String) const

如果操作系统支持某个功能,则返回true。 功能可能是s3tcetcetc2pvrtc


  • immediate_begin immediate_begin(immediate: RID, primitive: int, texture: RID)

设置ImmediateGeometry(#method-instance_cull_convex)(#method-Instant_vertex)(./ImmediateGeometry.md)内部构件以准备绘制。 等效于InstantGeometry.begin


  • immediate_clear immediate_clear(immediate: RID)

清除Instant_beginInstant_end之间设置的所有内容。 等效于InstantGeometry.clear


  • immediate_color immediate_color(immediate: RID, color: Color)

设置下一个顶点要使用的颜色。 等效于[InstantGeometry.set_color]。


  • immediate_create immediate_create()

创建立即几何并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有immediate _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。

要放置在场景中,请使用instance_set_base(使用返回的RID)将此立即几何附加到实例。


  • immediate_end immediate_end(immediate: RID)

结束绘制ImmediateGeometry(#method-instance_cull_convex)(#method-Instant_vertex)(./ImmediateGeometry.md)并显示它。 等效于InstantGeometry.end


  • immediate_get_material immediate_get_material(immediate: RID) const

返回分配给ImmediateGeometry(#method-instance_cull_convex)(#method-Instant_vertex)(./ImmediateGeometry.md)的材质。


  • immediate_normal immediate_normal(immediate: RID, normal: Vector3)

设置下一个顶点要使用的法线。 等效于InstantGeometry.set_normal


  • immediate_set_material immediate_set_material(immediate: RID, material: RID)

设置用于绘制ImmediateGeometry(#method-instance_cull_convex)(#method-Instant_vertex)(./ImmediateGeometry.md)的材质。


  • immediate_tangent immediate_tangent(immediate: RID, tangent: Plane)

设置要与下一个顶点一起使用的切线。 等效于InstantGeometry.set_tangent


  • immediate_uv immediate_uv(immediate: RID, tex_uv: Vector2)

设置要用于下一个顶点的UV。 等效于InstantGeometry.set_uv


  • immediate_uv2 immediate_uv2(immediate: RID, tex_uv: Vector2)

设置要用于下一个顶点的UV2。 等效于InstantGeometry.set_uv2


  • immediate_vertex immediate_vertex(immediate: RID, vertex: Vector3)

使用预先提供的信息添加下一个顶点。 等效于InstantGeometry.add_vertex


  • immediate_vertex_2d immediate_vertex_2d(immediate: RID, vertex: Vector2)

使用预先提供的信息添加下一个顶点。 这是一个帮助程序类,它在后台调用[Instant_vertex]方法。 等效于InstantGeometry.add_vertex


  • init init()

初始化可视服务器。 在引擎初始化期间,此功能由平台相关的代码在内部调用。 如果从正在运行的游戏中调用,它将不会执行任何操作。


  • instance_attach_object_instance_id instance_attach_object_instance_id(instance: RID, id: int)

将唯一的对象ID附加到实例。 必须将对象ID附加到实例,以便使用instance_cull_aabbinstance_cull_convex和[instance_cull_ray]进行适当的剔除。


  • instance_attach_skeleton instance_attach_skeleton(instance: RID, skeleton: RID)

将骨架附加到实例。 从实例中删除先前的骨架。


  • instance_create instance_create()

创建一个视觉实例并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有instance _ * VisualServer函数中使用。

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

实例是在场景中放置3D对象的一种方式。 需要使用instance_set_base将诸如粒子,网格和反射探针之类的对象与实例相关联,以使其在场景中可见。


  • instance_create2 instance_create2(base: RID, scenario: RID)

创建一个视觉实例,将其添加到VisualServer,并设置基础实例和方案。 可以使用返回的RID对其进行访问。 此RID将在所有instance _ * VisualServer函数中使用。

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


  • instance_geometry_set_as_instance_lod instance_geometry_set_as_instance_lod(instance: RID, as_lod_of_instance: RID)

在IdeaVR 3.x中未实现。


  • instance_geometry_set_cast_shadows_setting instance_geometry_set_cast_shadows_setting(instance: RID, shadow_casting_setting: int)

将阴影投射设置设置为ShadowCastingSetting之一。


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

在IdeaVR 3.x中未实现。


  • instance_geometry_set_flag instance_geometry_set_flag(instance: RID, flag: int, enabled: bool)

设置给定InstanceFlags的标志。 有关更多详细信息,请参见[枚举InstanceFlags]。


  • instance_geometry_set_material_override instance_geometry_set_material_override(instance: RID, material: RID)

设置一个材质,该材质将覆盖与此实例关联的网格上所有曲面的材质。 等效于[GeometryInstance.material_override]。


  • instance_set_base instance_set_base(instance: RID, base: RID)

设置实例的基础。 基础可以是可以显示的VisualServer中创建的任何3D对象。 例如,任何灯光类型,网格,多网格,即时几何体,粒子系统,反射探针,光照贴图捕获和GI探针都是可以设置为实例基础以便在场景中显示的所有类型。 。


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

设置与此实例关联的给定混合形状的权重。


  • instance_set_custom_aabb instance_set_custom_aabb(instance: RID, aabb: AABB)

设置从视锥中剔除对象时要使用的自定义AABB。 等效于[GeometryInstance.set_custom_aabb]。


  • instance_set_exterior instance_set_exterior(instance: RID, enabled: bool)

在IdeaVR 3.x中未实现的功能。


  • instance_set_extra_visibility_margin instance_set_extra_visibility_margin(instance: RID, margin: float)

设置边距以从视锥中剔除对象时增加AABB的大小。 这样可以避免剔除掉在视锥范围内的对象。 等效于[GeometryInstance.extra_cull_margin]。


  • instance_set_layer_mask instance_set_layer_mask(instance: RID, mask: int)

设置此实例将被绘制到的渲染层。 等效于[成员VisualInstance.layers]。


  • instance_set_scenario instance_set_scenario(instance: RID, scenario: RID)

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


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

设置特定表面的材料。 等效于[MeshInstance.set_surface_material]。


  • instance_set_transform instance_set_transform(instance: RID, transform: Transform)

设置实例的世界空间变换。 等效于[成员Spatial.transform]。


  • instance_set_use_lightmap instance_set_use_lightmap(instance: RID, lightmap_instance: RID, lightmap: RID)

设置要用于此实例的光照贴图。


  • instance_set_visible instance_set_visible(instance: RID, visible: bool)

设置是否绘制实例。 等效于[成员Spatial.visible]。


  • instances_cull_aabb instances_cull_aabb(aabb: AABB, scenario: RID) const

返回与提供的AABB相交的对象ID的数组。 仅考虑视觉3D节点,例如[MeshInstance]或DirectionalLight(#enum-LightDirectionalShadowDepthRangeMode)。 使用[@]获取实际的节点。 必须提供方案RID,该ID在您要查询的世界(#enum-LightDirectionalShadowMode)中可用。 这将强制所有排队更新的资源进行更新。

**警告:**此功能主要供编辑使用。 对于游戏中的用例,更喜欢物理碰撞。


  • instances_cull_convex instances_cull_convex(convex: Array, scenario: RID) const

返回与提供的凸形形状相交的对象ID的数组。 仅考虑视觉3D节点,例如[MeshInstance]或DirectionalLight(#enum-LightDirectionalShadowDepthRangeMode)。 使用[@]获取实际的节点。 必须提供方案RID,该ID在您要查询的世界(#enum-LightDirectionalShadowMode)中可用。 这将强制所有排队更新的资源进行更新。

**警告:**此功能主要供编辑使用。 对于游戏中的用例,更喜欢物理碰撞。


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

返回与提供的3D射线相交的对象ID的数组。 仅考虑视觉3D节点,例如[MeshInstance]或DirectionalLight(#enum-LightDirectionalShadowDepthRangeMode)。 使用[@]获取实际的节点。 必须提供方案RID,该ID在您要查询的世界(#enum-LightDirectionalShadowMode)中可用。 这将强制所有排队更新的资源进行更新。

**警告:**此功能主要供编辑使用。 对于游戏中的用例,更喜欢物理碰撞。


  • light_directional_set_blend_splits light_directional_set_blend_splits(light: RID, enable: bool)

如果true,此定向光将在阴影贴图分割之间混合,从而使它们之间的过渡更加平滑。 等效于[成员DirectionalLight.direction_shadow_blend_splits]。


  • light_directional_set_shadow_depth_range_mode light_directional_set_shadow_depth_range_mode(light: RID, range_mode: int)

设置此定向光的阴影深度范围模式。 等效于[成员DirectionalLight.direction_shadow_depth_range]。 有关选项,请参见[LightDirectionalShadowDepthRangeMode]。


  • light_directional_set_shadow_mode light_directional_set_shadow_mode(light: RID, mode: int)

设置此定向光的阴影模式。 等效于成员DirectionalLight.directional_shadow_mode。 有关选项,请参见LightDirectionalShadowMode


  • light_omni_set_shadow_detail light_omni_set_shadow_detail(light: RID, detail: int)

设置是否对该多功能灯使用垂直或水平细节。 这可用于减轻阴影贴图中的伪影。 等效于[成员OmniLight.omni_shadow_detail]。


  • light_omni_set_shadow_mode light_omni_set_shadow_mode(light: RID, mode: int)

设置对阴影贴图使用双抛物面还是立方体贴图。 双抛物面速度更快,但可能会出现伪影。 等效于[成员OmniLight.omni_shadow_mode]。


  • light_set_color light_set_color(light: RID, color: Color)

设置灯光的颜色。 等效于成员Light.light_color


  • light_set_cull_mask light_set_cull_mask(light: RID, mask: int)

设置此光的剔除蒙版。 灯光仅影响选定图层中的对象。 等效于[成员Light.light_cull_mask]。


  • light_set_negative light_set_negative(light: RID, enable: bool)

如果true,则光将减去光而不是增加光。 等效于[成员Light.light_negative]。


  • light_set_param light_set_param(light: RID, param: int, value: float)

设置指定的灯光参数。 有关选项,请参见LightParam。 等效于Light.set_param


  • light_set_projector light_set_projector(light: RID, texture: RID)

在IdeaVR 3.x中未实现。


  • light_set_reverse_cull_face_mode light_set_reverse_cull_face_mode(light: RID, enabled: bool)

如果true,则反转网格的背面剔除。 当您的平面网格后面有灯光时,这很有用。 如果需要在网格的两侧投射阴影,请将网格设置为使用instance_geometry_set_cast_shadows_setting的双面阴影。 等效于[成员Light.shadow_reverse_cull_face]。


  • light_set_shadow light_set_shadow(light: RID, enabled: bool)

如果true,则光线会投射阴影。 等效于成员Light.shadow_enabled


  • light_set_shadow_color light_set_shadow_color(light: RID, color: Color)

设置灯光投射的阴影的颜色。 等效于成员Light.shadow_color


  • light_set_use_gi light_set_use_gi(light: RID, enabled: bool)

设置GI探针是否从该光中捕获光信息。


  • lightmap_capture_create lightmap_capture_create()

创建一个光照贴图捕获并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有lightmap_capture _ * VisualServer函数中使用。

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

要放置在场景中,请使用instance_set_base(使用返回的RID)将此光照贴图捕获附加到实例。


  • lightmap_capture_get_bounds lightmap_capture_get_bounds(capture: RID) const

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


  • lightmap_capture_get_energy lightmap_capture_get_energy(capture: RID) const

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


  • lightmap_capture_get_octree lightmap_capture_get_octree(capture: RID) const

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


  • lightmap_capture_get_octree_cell_subdiv lightmap_capture_get_octree_cell_subdiv(capture: RID) const

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


  • lightmap_capture_get_octree_cell_transform lightmap_capture_get_octree_cell_transform(capture: RID) const

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


  • lightmap_capture_set_bounds lightmap_capture_set_bounds(capture: RID, bounds: AABB)

设置光照贴图捕获覆盖的区域的大小。 等效于成员BakedLightmapData.bounds


  • lightmap_capture_set_energy lightmap_capture_set_energy(capture: RID, energy: float)

设置此光照贴图捕获的能量倍增器。 等效于BakedLightmapData.energy成员


  • lightmap_capture_set_octree lightmap_capture_set_octree(capture: RID, octree: PoolByteArray)

设置此光照贴图捕获要使用的八叉树。 [BakedLightmap]节点通常使用此功能。 等效于[BakedLightmapData.octree成员]。


  • lightmap_capture_set_octree_cell_subdiv lightmap_capture_set_octree_cell_subdiv(capture: RID, subdiv: int)

设置此光照贴图捕获的八叉树的细分级别。 等效于BakedLightmapData.cell_subdiv成员


  • lightmap_capture_set_octree_cell_transform lightmap_capture_set_octree_cell_transform(capture: RID, xform: Transform)

设置此光照贴图捕获的八叉树的八叉树单元格变换。 等效于成员BakedLightmapData.cell_space_transform


  • make_sphere_mesh make_sphere_mesh(latitudes: int, longitudes: int, radius: float)

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


  • material_create material_create()

创建一个空的材质并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有material _ * VisualServer函数中使用。

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


  • material_get_param material_get_param(material: RID, parameter: String) const

返回某种材料参数的值。


  • material_get_param_default material_get_param_default(material: RID, parameter: String) const

返回参数的默认值(如果有)。 否则返回一个空的[Variant]。


  • material_get_shader material_get_shader(shader_material: RID) const

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


  • material_set_line_width material_set_line_width(material: RID, width: float)

设置材料的线宽。


  • material_set_next_pass material_set_next_pass(material: RID, next_material: RID)

设置对象的下一个材质。


  • material_set_param material_set_param(material: RID, parameter: String, value: Variant)

设置材料的参数。


  • material_set_render_priority material_set_render_priority(material: RID, priority: int)

设置材质的渲染优先级。


  • material_set_shader material_set_shader(shader_material: RID, shader: RID)

设置材质球材质的材质球。


  • mesh_add_surface_from_arrays mesh_add_surface_from_arrays(mesh: RID, primitive: int, arrays: Array, blend_shapes: Array = [], compress_format: int = 97280)

将从“阵列”生成的曲面添加到网格中。 有关类型,请参见PrimitiveType常量。


  • mesh_clear mesh_clear(mesh: RID)

从网格中删除所有曲面。


  • mesh_create mesh_create()

创建一个新的网格并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有mesh _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。

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


  • mesh_get_blend_shape_count mesh_get_blend_shape_count(mesh: RID) const

返回网格的混合形状计数。


  • mesh_get_blend_shape_mode mesh_get_blend_shape_mode(mesh: RID) const

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


  • mesh_get_custom_aabb mesh_get_custom_aabb(mesh: RID) const

返回网格的自定义aabb。


  • mesh_get_surface_count mesh_get_surface_count(mesh: RID) const

返回网格的曲面数。


  • mesh_remove_surface mesh_remove_surface(mesh: RID, index: int)

移除网格的表面。


  • mesh_set_blend_shape_count mesh_set_blend_shape_count(mesh: RID, amount: int)

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


  • mesh_set_blend_shape_mode mesh_set_blend_shape_mode(mesh: RID, mode: int)

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


  • mesh_set_custom_aabb mesh_set_custom_aabb(mesh: RID, aabb: AABB)

设置网格的自定义aabb。


  • mesh_surface_get_aabb mesh_surface_get_aabb(mesh: RID, surface: int) const

返回网格物体表面的aabb。


  • mesh_surface_get_array mesh_surface_get_array(mesh: RID, surface: int) const

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


  • mesh_surface_get_array_index_len mesh_surface_get_array_index_len(mesh: RID, surface: int) const

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


  • mesh_surface_get_array_len mesh_surface_get_array_len(mesh: RID, surface: int) const

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


  • mesh_surface_get_arrays mesh_surface_get_arrays(mesh: RID, surface: int) const

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


  • mesh_surface_get_blend_shape_arrays mesh_surface_get_blend_shape_arrays(mesh: RID, surface: int) const

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


  • mesh_surface_get_format mesh_surface_get_format(mesh: RID, surface: int) const

返回网格表面的格式。


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

功能在IdeaVR 3.x中未使用。


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

功能在IdeaVR 3.x中未使用。


  • mesh_surface_get_index_array mesh_surface_get_index_array(mesh: RID, surface: int) const

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


  • mesh_surface_get_material mesh_surface_get_material(mesh: RID, surface: int) const

返回网格表面的材质。


  • mesh_surface_get_primitive_type mesh_surface_get_primitive_type(mesh: RID, surface: int) const

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


  • mesh_surface_get_skeleton_aabb mesh_surface_get_skeleton_aabb(mesh: RID, surface: int) const

返回网格表面骨架的aabb。


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

设置网格物体表面的材质。


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

更新指定表面的顶点缓冲区的特定区域。 警告:此功能无需任何安全机制即可直接更改顶点缓冲区,您很容易破坏网格。


  • multimesh_allocate multimesh_allocate(multimesh: RID, instances: int, transform_format: int, color_format: int, custom_data_format: int = 0)

为多网格数据分配空间。 格式参数确定OpenGL如何存储数据。 有关用法,请参见MultimeshTransformFormat,[MultimeshColorFormat]和MultimeshCustomDataFormat。 等效于[成员MultiMesh.instance_count]。


  • multimesh_create multimesh_create()

在VisualServer上创建一个新的多重网格,并返回一个RID(./RID.md)句柄。 此RID将在所有multimesh _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。

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


  • multimesh_get_aabb multimesh_get_aabb(multimesh: RID) const

计算并返回将所有网格封闭在多网格中的与轴对齐的边界框。


  • multimesh_get_instance_count multimesh_get_instance_count(multimesh: RID) const

返回为此多重网格分配的实例数。


  • multimesh_get_mesh multimesh_get_mesh(multimesh: RID) const

返回将在绘制此多重网格时使用的网格的RID。


  • multimesh_get_visible_instances multimesh_get_visible_instances(multimesh: RID) const

返回此多重网格的可见实例数。


  • multimesh_instance_get_color multimesh_instance_get_color(multimesh: RID, index: int) const

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


  • multimesh_instance_get_custom_data multimesh_instance_get_custom_data(multimesh: RID, index: int) const

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


  • multimesh_instance_get_transform multimesh_instance_get_transform(multimesh: RID, index: int) const

返回指定实例的Transform(#method-instance_set_base)(./Particles.md#method-amount)(#method-instance_cull_aabb)(#method-free_rid)(./Transform.md)。


  • multimesh_instance_get_transform_2d multimesh_instance_get_transform_2d(multimesh: RID, index: int) const

返回指定实例的Transform2D(#method-free_rid)(./Particles.md#method-visibility_aabb)(#method-instance_cull_ray)(#method-instance_set_base)(./Transform2D.md)。 在将多重网格设置为使用2D变换时使用。


  • multimesh_instance_set_color multimesh_instance_set_color(multimesh: RID, index: int, color: Color)

设置将调制此实例的颜色。 等效于MultiMesh.set_instance_color


  • multimesh_instance_set_custom_data multimesh_instance_set_custom_data(multimesh: RID, index: int, custom_data: Color)

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


  • multimesh_instance_set_transform multimesh_instance_set_transform(multimesh: RID, index: int, transform: Transform)

设置此实例的Transform(#method-instance_set_base)(./Particles.md#method-amount)(#method-instance_cull_aabb)(#method-free_rid)(./Transform.md)。 等效于MultiMesh.set_instance_transform


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

设置此实例的Transform2D(#method-free_rid)(./Particles.md#method-visibility_aabb)(#method-instance_cull_ray)(#method-instance_set_base)(./Transform2D.md)。 在2D中使用多重网格时使用。 等效于MultiMesh.set_instance_transform_2d


  • multimesh_set_as_bulk_array multimesh_set_as_bulk_array(multimesh: RID, array: PoolRealArray)

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

所有数据打包在一个大的float数组中。 数组可能如下所示:转换实例1,将颜色数据转换为实例1,将自定义数据转换为实例1,将数据转换为实例2,将颜色数据转换为实例2,以此类推。

Transform(#method-instance_set_base)(./Particles.md#method-amount)(#method-instance_cull_aabb)(#method-free_rid)(./Transform.md)存储为12个浮点数,Transform2D(#method-free_rid)(./Particles.md#method-visibility_aabb)(#method-instance_cull_ray)(#method-instance_set_base)(./Transform2D.md)存储为8个浮点数,COLOR_8BIT /CUSTOM_DATA_8BIT存储为1个浮点数(按原样为4个字节),COLOR_FLOAT /CUSTOM_DATA_FLOAT存储为4个浮点数。


  • multimesh_set_mesh multimesh_set_mesh(multimesh: RID, mesh: RID)

设置要由多重网格绘制的网格。 等效于成员MultiMesh.mesh


  • multimesh_set_visible_instances multimesh_set_visible_instances(multimesh: RID, visible: int)

设置在给定时间可见的实例数。 如果为-1,则将绘制所有已分配的实例。 等效于成员MultiMesh.visible_instance_count


  • omni_light_create omni_light_create()

创建一个新的omni light并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID可以在大多数light _ * VisualServer函数中使用。

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

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


  • particles_create particles_create()

创建一个粒子系统并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有particles _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。

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


  • particles_get_current_aabb particles_get_current_aabb(particles: RID)

计算并返回包含所有粒子的与轴对齐的边界框。 等效于[Particles.capture_aabb]。


  • particles_get_emitting particles_get_emitting(particles: RID)

如果当前将粒子设置为发射,则返回true


  • particles_is_inactive particles_is_inactive(particles: RID)

如果粒子不发光并且粒子设置为非活动,则返回true


  • particles_request_process particles_request_process(particles: RID)

将粒子系统添加到需要更新的粒子系统列表中。 更新将在下一帧或在对instance_cull_aabbinstance_cull_convex或[instance_cull_ray]的下一次调用时进行。


  • particles_restart particles_restart(particles: RID)

在下次更新时重置粒子。 等效于Particles.restart


  • particles_set_amount particles_set_amount(particles: RID, amount: int)

设置要绘制的粒子数并为其分配内存。 等效于Particles.amount


  • particles_set_custom_aabb particles_set_custom_aabb(particles: RID, aabb: AABB)

设置粒子系统的自定义轴对齐的边界框。 等效于Particles.visibility_aabb


  • particles_set_draw_order particles_set_draw_order(particles: RID, order: int)

将粒子的绘制顺序设置为ParticlesDrawOrder中的命名枚举之一。 有关选项,请参见ParticlesDrawOrder。 等效于Particles.draw_order


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

设置用于指定绘制过程的网格。 等效于成员Particles.draw_pass_1成员Particles.draw_pass_2成员Particles.draw_pass_3成员Particles.draw_pass_4


  • particles_set_draw_passes particles_set_draw_passes(particles: RID, count: int)

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


  • particles_set_emission_transform particles_set_emission_transform(particles: RID, transform: Transform)

设置粒子首次发射时将使用的Transform(#method-instance_set_base)(./Particles.md#method-amount)(#method-instance_cull_aabb)(#method-free_rid)(./Transform.md)。


  • particles_set_emitting particles_set_emitting(particles: RID, emitting: bool)

如果true,粒子将随着时间的流逝而发射。 设置为false不会重置粒子,而只会停止其发射。 等效于[Particles.mission]。


  • particles_set_explosiveness_ratio particles_set_explosiveness_ratio(particles: RID, ratio: float)

设置爆炸率。 等效于Particles.explosiveness


  • particles_set_fixed_fps particles_set_fixed_fps(particles: RID, fps: int)

设置粒子系统渲染将固定为的帧速率。 等效于[Particles.fixed_fps]。


  • particles_set_fractional_delta particles_set_fractional_delta(particles: RID, enable: bool)

如果true,则使用分数增量,以平滑粒子的运动。 等效于[Particles.fract_delta]。


  • particles_set_lifetime particles_set_lifetime(particles: RID, lifetime: float)

设置系统中每个粒子的寿命。 等效于[Particles.lifetime]。


  • particles_set_one_shot particles_set_one_shot(particles: RID, one_shot: bool)

如果true,粒子将发射一次,然后停止。 等效于[Particles.one_shot]。


  • particles_set_pre_process_time particles_set_pre_process_time(particles: RID, time: float)

设置粒子动画的预处理时间。 这使您可以延迟开始动画,直到粒子开始发光为止。 等效于[Particles.preprocess]。


  • particles_set_process_material particles_set_process_material(particles: RID, material: RID)

设置用于处理粒子的材料。 注意:这不是用于绘制材料的材料。 等效于[Particles.process_material]。


  • particles_set_randomness_ratio particles_set_randomness_ratio(particles: RID, ratio: float)

设置发射随机率。 这使粒子在其相内的发射随机化。 等效于[Particles.randomness]。


  • particles_set_speed_scale particles_set_speed_scale(particles: RID, scale: float)

设置粒子系统的速度标度。 等效于[Particles.speed_scale]。


  • particles_set_use_local_coordinates particles_set_use_local_coordinates(particles: RID, enable: bool)

如果true,则粒子使用局部坐标。 如果false,则使用全局坐标。 等效于[Particles.local_coords]。


  • reflection_probe_create reflection_probe_create()

创建一个反射探针并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有reflection_probe _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。

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


  • reflection_probe_set_as_interior reflection_probe_set_as_interior(probe: RID, enable: bool)

如果true为真,则反射将忽略天空贡献。 等效于成员ReflectionProbe.interior_enable


  • reflection_probe_set_cull_mask reflection_probe_set_cull_mask(probe: RID, layers: int)

设置此反射探针的渲染剔除蒙版。 此探针将仅渲染具有匹配的剔除蒙版的实例。 等效于ReflectionProbe.cull_mask


  • reflection_probe_set_enable_box_projection reflection_probe_set_enable_box_projection(probe: RID, enable: bool)

如果true,则使用框投影。 在某些情况下,这可以使反射看起来更正确。 等效于[成员ReflectionProbe.box_projection]。


  • reflection_probe_set_enable_shadows reflection_probe_set_enable_shadows(probe: RID, enable: bool)

如果true,则在反射探针中计算阴影。 这会使反射的计算速度变慢。 等效于[成员ReflectionProbe.enable_shadows]。


  • reflection_probe_set_extents reflection_probe_set_extents(probe: RID, extents: Vector3)

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


  • reflection_probe_set_intensity reflection_probe_set_intensity(probe: RID, intensity: float)

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


  • reflection_probe_set_interior_ambient reflection_probe_set_interior_ambient(probe: RID, color: Color)

设置为内部模式时,设置此反射探针的环境光颜色。 等效于成员ReflectionProbe.interior_ambient_color


  • reflection_probe_set_interior_ambient_energy reflection_probe_set_interior_ambient_energy(probe: RID, energy: float)

设置为内部模式时,为此反射探头设置能量倍增器,以探测环境光。 等效于成员ReflectionProbe.interior_ambient_energy


  • reflection_probe_set_interior_ambient_probe_contribution reflection_probe_set_interior_ambient_probe_contribution(probe: RID, contrib: float)

设置当设置为内部模式时,反射对此反射探针的环境光有多大影响的贡献值。 有用,以使环境光与房间的颜色匹配。 等效于成员ReflectionProbe.interior_ambient_contrib


  • reflection_probe_set_max_distance reflection_probe_set_max_distance(probe: RID, distance: float)

设置物体被剔除前与探针的最大距离。 等效于成员ReflectionProbe.max_distance


  • reflection_probe_set_origin_offset reflection_probe_set_origin_offset(probe: RID, offset: Vector3)

设置当此反射探针处于盒投影模式时要使用的原点偏移。 等效于成员ReflectionProbe.origin_offset


  • reflection_probe_set_update_mode reflection_probe_set_update_mode(probe: RID, mode: int)

设置反射探针更新的频率。 可以是一次或每帧。 有关选项,请参见[ReflectionProbeUpdateMode]。


  • request_frame_drawn_callback request_frame_drawn_callback(where: Object, method: String, userdata: Variant)

在绘制框架后,将回调计划到where上对应的名为method的回调。

回调方法只能使用1个参数,该参数将与userdata一起调用。


  • scenario_create scenario_create()

创建一个方案并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有scenario _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。

场景是所有视觉实例都存在的3D世界。


  • scenario_set_debug scenario_set_debug(scenario: RID, debug_mode: int)

设置此方案的[ScenarioDebugMode]。


  • scenario_set_environment scenario_set_environment(scenario: RID, environment: RID)

设置将用于此方案的环境。


  • scenario_set_fallback_environment scenario_set_fallback_environment(scenario: RID, environment: RID)

设置此方案要使用的后备环境。 如果未设置环境,则使用后备环境。 在内部,编辑器使用它提供默认环境。


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

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


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

设置启动映像。 颜色定义背景色。 如果scaletrue,则将缩放图像以适合屏幕尺寸。 如果use_filtertrue,则将使用线性插值对图像进行缩放。 如果use_filterfalse,则将使用最近邻插值对图像进行缩放。


  • set_debug_generate_wireframes set_debug_generate_wireframes(generate: bool)

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


  • set_default_clear_color set_default_clear_color(color: Color)

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


  • shader_create shader_create()

创建一个空的着色器并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有shader _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


  • shader_get_code shader_get_code(shader: RID) const

返回着色器的代码。


  • shader_get_default_texture_param shader_get_default_texture_param(shader: RID, name: String) const

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


  • shader_get_param_list shader_get_param_list(shader: RID) const

返回着色器的参数。


  • shader_set_code shader_set_code(shader: RID, code: String)

设置着色器的代码。


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

设置着色器的默认纹理。


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

为此骨架分配GPU缓冲区。


  • skeleton_bone_get_transform skeleton_bone_get_transform(skeleton: RID, bone: int) const

返回为此骨架的特定骨骼设置的Transform(#method-instance_set_base)(./Particles.md#method-amount)(#method-instance_cull_aabb)(#method-free_rid)(./Transform.md)集。


  • skeleton_bone_get_transform_2d skeleton_bone_get_transform_2d(skeleton: RID, bone: int) const

返回为此骨架的特定骨骼设置的Transform2D(#method-free_rid)(./Particles.md#method-visibility_aabb)(#method-instance_cull_ray)(#method-instance_set_base)(./Transform2D.md)。


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

设置此骨骼的特定骨骼的Transform(#method-instance_set_base)(./Particles.md#method-amount)(#method-instance_cull_aabb)(#method-free_rid)(./Transform.md)。


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

设置此骨架的特定骨骼的Transform2D(#method-free_rid)(./Particles.md#method-visibility_aabb)(#method-instance_cull_ray)(#method-instance_set_base)(./Transform2D.md)。


  • skeleton_create skeleton_create()

创建一个骨架并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有skeleton _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


  • skeleton_get_bone_count skeleton_get_bone_count(skeleton: RID) const

返回为此骨骼分配的骨骼数量。


  • sky_create sky_create()

创建一个空的天空并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有sky _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


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

设置天空的纹理。


  • spot_light_create spot_light_create()

创建一个聚光灯并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID可以在大多数light _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。

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


  • sync sync()

在IdeaVR 3.x中未实现。


  • texture_allocate texture_allocate(texture: RID, width: int, height: int, depth_3d: int, format: int, type: int, flags: int = 7)

为纹理分配GPU内存。


  • texture_bind texture_bind(texture: RID, number: int)

将纹理绑定到纹理插槽。


  • texture_create texture_create()

创建一个空纹理并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有texture _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


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

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


  • texture_debug_usage texture_debug_usage()

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


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

除非是CubeMap,否则返回纹理图像的副本,在这种情况下,它将在立方体的任一侧返回图像的RID(./RID.md)。


  • texture_get_depth texture_get_depth(texture: RID) const

返回纹理的深度。


  • texture_get_flags texture_get_flags(texture: RID) const

返回纹理的标志。


  • texture_get_format texture_get_format(texture: RID) const

返回纹理图像的格式。


  • texture_get_height texture_get_height(texture: RID) const

返回纹理的高度。


  • texture_get_path texture_get_path(texture: RID) const

返回纹理的路径。


  • texture_get_texid texture_get_texid(texture: RID) const

返回纹理图像的opengl id。


  • texture_get_type texture_get_type(texture: RID) const

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


  • texture_get_width texture_get_width(texture: RID) const

返回纹理的宽度。


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

设置纹理的图像数据。 如果是CubeMap,则将图像数据设置在多维数据集一侧。


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

为纹理设置数据的一部分。 警告:此函数将直接调用基础图形API,如果使用不当,可能会损坏您的纹理。


  • texture_set_flags texture_set_flags(texture: RID, flags: int)

设置纹理的标志。 有关选项,请参见[枚举TextureFlags]。


  • texture_set_path texture_set_path(texture: RID, path: String)

设置纹理的路径。


  • texture_set_shrink_all_x2_on_set_data texture_set_shrink_all_x2_on_set_data(shrink: bool)

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


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

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


  • textures_keep_original textures_keep_original(enable: bool)

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


  • viewport_attach_camera viewport_attach_camera(viewport: RID, camera: RID)

设置视口的相机。


  • viewport_attach_canvas viewport_attach_canvas(viewport: RID, canvas: RID)

设置视口的画布。


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

将视口复制到rect指定的屏幕区域。 如果[成员Viewport.render_direct_to_screen]为true,则视口不使用帧缓冲区,并且视口的内容直接呈现到屏幕上。 但是,请注意,根视口是最后绘制的,因此它将在屏幕上绘制。 因此,必须将根视口设置为一个不覆盖该视口已附加到的区域的区域。

例如,可以使用以下代码将根视口设置为完全不渲染:

func _ready():
    get_viewport().set_attach_to_screen_rect(Rect2())
    $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600))

使用此功能可能会导致重大优化,尤其是在低端设备上。 但是,这是以必须手动管理视口为代价的。 有关进一步的优化,请参见[方法viewport_set_render_direct_to_screen]。


  • viewport_create viewport_create()

创建一个空视口并将其添加到VisualServer。 可以使用返回的RID对其进行访问。 此RID将在所有viewport _ * VisualServer函数中使用。

一旦完成RID,您将要使用VisualServer的free_rid静态方法释放RID。


  • viewport_detach viewport_detach(viewport: RID)

从屏幕上分离视口。


  • viewport_get_render_info viewport_get_render_info(viewport: RID, info: int)

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


  • viewport_get_texture viewport_get_texture(viewport: RID) const

返回视口的最后一个渲染帧。


  • viewport_remove_canvas viewport_remove_canvas(viewport: RID, canvas: RID)

从画布上分离视口,反之亦然。


  • viewport_set_active viewport_set_active(viewport: RID, active: bool)

如果true,则将视口设置为活动,否则将其设置为非活动。


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

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

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


  • viewport_set_canvas_transform viewport_set_canvas_transform(viewport: RID, canvas: RID, offset: Transform2D)

设置视口画布的变换。


  • viewport_set_clear_mode viewport_set_clear_mode(viewport: RID, clear_mode: int)

设置视口的清除模式。 有关选项,请参见[ViewportClearMode]。


  • viewport_set_debug_draw viewport_set_debug_draw(viewport: RID, draw: int)

设置视口的调试绘制模式。 有关选项,请参见[ViewportDebugDraw]。


  • viewport_set_disable_3d viewport_set_disable_3d(viewport: RID, disabled: bool)

如果true,则禁用视口的3D渲染。


  • viewport_set_disable_environment viewport_set_disable_environment(viewport: RID, disabled: bool)

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


  • viewport_set_global_canvas_transform viewport_set_global_canvas_transform(viewport: RID, transform: Transform2D)

设置视口的全局转换矩阵。


  • viewport_set_hdr viewport_set_hdr(viewport: RID, enabled: bool)

如果true,则视口将呈现为hdr。


  • viewport_set_hide_canvas viewport_set_hide_canvas(viewport: RID, hidden: bool)

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


  • viewport_set_hide_scenario viewport_set_hide_scenario(viewport: RID, hidden: bool)

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


  • viewport_set_msaa viewport_set_msaa(viewport: RID, msaa: int)

设置抗锯齿模式。 有关选项,请参见[ViewportMSAA]。


  • viewport_set_parent_viewport viewport_set_parent_viewport(viewport: RID, parent_viewport: RID)

将视口的父级设置为另一个视口。


  • viewport_set_render_direct_to_screen viewport_set_render_direct_to_screen(viewport: RID, enabled: bool)

如果true,则将视口的内容直接呈现到屏幕上。 这允许进行低级优化,您可以在其中跳过将视口绘制到根视口的操作。 尽管此优化可以显着提高速度(尤其是在较旧的设备上),但要付出可用性的代价。 启用此功能后,您将无法从视口或SCREEN_TEXTURE中读取内容。 您还会失去某些窗口设置(例如各种拉伸模式)的好处。 需要注意的另一个结果是,在2D模式下,渲染是在窗口坐标中进行的,因此,如果您的视口是窗口大小的两倍,并且设置了该视口,则只会绘制适合窗口的部分, 即使您的游戏场景明显大于窗口大小,也无法自动缩放。


  • viewport_set_scenario viewport_set_scenario(viewport: RID, scenario: RID)

设置视口的场景。

该方案包含有关[ScenarioDebugMode],环境信息,反射图集等的信息。


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

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


  • viewport_set_shadow_atlas_size viewport_set_shadow_atlas_size(viewport: RID, size: int)

设置阴影图集图像的大小(用于全向和聚光灯)。 该值将四舍五入到最接近的2的幂。


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

设置视口的宽度和高度。


  • viewport_set_transparent_background viewport_set_transparent_background(viewport: RID, enabled: bool)

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


  • viewport_set_update_mode viewport_set_update_mode(viewport: RID, update_mode: int)

设置何时更新视口。 有关选项,请参见[ViewportUpdateMode]常量。


  • viewport_set_usage viewport_set_usage(viewport: RID, usage: int)

设置视口的2D /3D模式。 有关选项,请参见[ViewportUsage]常量。


  • viewport_set_use_arvr viewport_set_use_arvr(viewport: RID, use_arvr: bool)

如果为true,则视口将使用增强或虚拟现实技术。 请参阅[ARVRInterface]。


  • viewport_set_vflip viewport_set_vflip(viewport: RID, enabled: bool)

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