VisualServer¶
Inherits: Object
Servidor para cualquier cosa visible.
Descripción¶
Servidor para cualquier cosa visible. El servidor de renderizado es el backend de la API para todo lo visible. Todo el sistema de la escena se monta en él para mostrar.
El servidor de renderizado es completamente opaco, los internos son completamente específicos de la implementación y no se puede acceder a ellos.
El servidor de renderizado puede ser usado para evitar el sistema de escenas por completo.
Los recursos se crean usando las funciones *_create
.
Todos los objetos se dibujan en una vista. Se puede utilizar la Viewport adjunta al SceneTree o se puede crear una por uno mismo con el viewport_create. Cuando se utiliza un escenario o lienzo personalizado, el escenario o lienzo debe adjuntarse a la ventana de visualización utilizando viewport_set_scenario o viewport_attach_canvas.
En 3D, todos los objetos visuales deben estar asociados a un escenario. El escenario es una representación visual del mundo. Si se accede al servidor de renderizado desde un juego en ejecución, se puede acceder al escenario desde el árbol de la escena desde cualquier nodo Spatial con Spatial.get_world. De lo contrario, se puede crear un escenario con scenario_create.
De manera similar, en 2D, se necesita un lienzo para dibujar todos los elementos del lienzo.
En 3D, todos los objetos visibles están compuestos por un recurso y una instancia. Un recurso puede ser una malla, un sistema de partículas, una luz o cualquier otro objeto en 3D. Para ser visibles, los recursos deben ser adjuntados a una instancia usando el instance_set_base. La instancia también debe ser adjuntada al escenario usando instance_set_scenario para ser visible.
En 2D, todos los objetos visibles son una especie de lienzo. Para ser visible, un elemento de lienzo debe ser el hijo de un lienzo unido a una ventana de visualización, o debe ser el hijo de otro elemento de lienzo que eventualmente se une al lienzo.
Tutoriales¶
Propiedades¶
Métodos¶
Señales¶
frame_post_draw ( )
Emitted at the end of the frame, after the VisualServer has finished updating all the Viewports.
frame_pre_draw ( )
Emitted at the beginning of the frame, before the VisualServer updates all the Viewports.
Enumeraciones¶
enum CubeMapSide:
CUBEMAP_LEFT = 0 --- Marks the left side of a cubemap.
CUBEMAP_RIGHT = 1 --- Marks the right side of a cubemap.
CUBEMAP_BOTTOM = 2 --- Marks the bottom side of a cubemap.
CUBEMAP_TOP = 3 --- Marks the top side of a cubemap.
CUBEMAP_FRONT = 4 --- Marks the front side of a cubemap.
CUBEMAP_BACK = 5 --- Marks the back side of a cubemap.
enum TextureType:
TEXTURE_TYPE_2D = 0 --- Normal texture with 2 dimensions, width and height.
TEXTURE_TYPE_CUBEMAP = 2 --- Texture made up of six faces, can be looked up with a
vec3
in shader.TEXTURE_TYPE_2D_ARRAY = 3 --- An array of 2-dimensional textures.
TEXTURE_TYPE_3D = 4 --- A 3-dimensional texture with width, height, and depth.
enum TextureFlags:
TEXTURE_FLAG_MIPMAPS = 1 --- Generates mipmaps, which are smaller versions of the same texture to use when zoomed out, keeping the aspect ratio.
TEXTURE_FLAG_REPEAT = 2 --- Repeats the texture (instead of clamp to edge).
TEXTURE_FLAG_FILTER = 4 --- Uses a magnifying filter, to enable smooth zooming in of the texture.
TEXTURE_FLAG_ANISOTROPIC_FILTER = 8 --- Uses anisotropic mipmap filtering. Generates smaller versions of the same texture with different aspect ratios.
This results in better-looking textures when viewed from oblique angles.
TEXTURE_FLAG_CONVERT_TO_LINEAR = 16 --- Converts the texture to the sRGB color space.
TEXTURE_FLAG_MIRRORED_REPEAT = 32 --- Repeats the texture with alternate sections mirrored.
TEXTURE_FLAG_USED_FOR_STREAMING = 2048 --- Texture is a video surface.
TEXTURE_FLAGS_DEFAULT = 7 --- Default flags. TEXTURE_FLAG_MIPMAPS, TEXTURE_FLAG_REPEAT and TEXTURE_FLAG_FILTER are enabled.
enum ShaderMode:
SHADER_SPATIAL = 0 --- Shader es un shader 3D.
SHADER_CANVAS_ITEM = 1 --- Shader es un shader 2D.
SHADER_PARTICLES = 2 --- Shader es un shader de partículas.
SHADER_MAX = 3 --- Representa el tamaño del enum ShaderMode.
enum ArrayType:
ARRAY_VERTEX = 0 --- El array es un array de vértices.
ARRAY_NORMAL = 1 --- El array es un array normales.
ARRAY_TANGENT = 2 --- El Array es una array de tangentes.
ARRAY_COLOR = 3 --- El Array es un array de colores.
ARRAY_TEX_UV = 4 --- El Array es un array de coordenadas UV.
ARRAY_TEX_UV2 = 5 --- El Array es un array de coordenadas UV para las segundas coordenadas UV.
ARRAY_BONES = 6 --- El Array contiene información sobre los huesos.
ARRAY_WEIGHTS = 7 --- El Array contiene la información de pesos.
ARRAY_INDEX = 8 --- El Array es un array de índices.
ARRAY_MAX = 9 --- Representa el tamaño del enum ArrayType.
enum ArrayFormat:
ARRAY_FORMAT_VERTEX = 1 --- Bandera usada para marcar un array de vértices.
ARRAY_FORMAT_NORMAL = 2 --- Bandera usada para marcar una array de normales.
ARRAY_FORMAT_TANGENT = 4 --- Bandera usada para marcar un array de tangentes.
ARRAY_FORMAT_COLOR = 8 --- Bandera usada para marcar un array de colores.
ARRAY_FORMAT_TEX_UV = 16 --- Bandera usada para marcar un conjunto de coordenadas UV.
ARRAY_FORMAT_TEX_UV2 = 32 --- Bandera usada para marcar un array de coordenadas UV para las segundas coordenadas UV.
ARRAY_FORMAT_BONES = 64 --- Bandera usada para marcar un array con información de huesos.
ARRAY_FORMAT_WEIGHTS = 128 --- Bandera usada para marcar un array de pesos.
ARRAY_FORMAT_INDEX = 256 --- Bandera usada para marcar un array de índices.
ARRAY_COMPRESS_VERTEX = 512 --- Flag used to mark a compressed (half float) vertex array.
ARRAY_COMPRESS_NORMAL = 1024 --- Flag utilizada para marcar un array normal comprimido (real).
ARRAY_COMPRESS_TANGENT = 2048 --- Flag utilizada para marcar un array tangencial comprimido (real).
ARRAY_COMPRESS_COLOR = 4096 --- Flag usada para marcar una array de colores comprimida (real).
ARRAY_COMPRESS_TEX_UV = 8192 --- Flag usada para marcar un array de coordenadas UV comprimidas (real).
ARRAY_COMPRESS_TEX_UV2 = 16384 --- Flag usada para marcar un array de coordenadas UV comprimidas (real) para las segundas coordenadas UV.
ARRAY_COMPRESS_BONES = 32768 --- Flag used to mark a compressed bone array.
ARRAY_COMPRESS_WEIGHTS = 65536 --- Flag used to mark a compressed (half float) weight array.
ARRAY_COMPRESS_INDEX = 131072 --- Flag usada para marcar un array de índices comprimida.
ARRAY_FLAG_USE_2D_VERTICES = 262144 --- Flag usada para marcar que el array contiene vértices 2D.
ARRAY_FLAG_USE_16_BIT_BONES = 524288 --- Flag used to mark that the array uses 16-bit bones instead of 8-bit.
ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION = 2097152 --- Flag used to mark that the array uses an octahedral representation of normal and tangent vectors rather than cartesian.
ARRAY_COMPRESS_DEFAULT = 2194432 --- Used to set flags ARRAY_COMPRESS_NORMAL, ARRAY_COMPRESS_TANGENT, ARRAY_COMPRESS_COLOR, ARRAY_COMPRESS_TEX_UV, ARRAY_COMPRESS_TEX_UV2, ARRAY_COMPRESS_WEIGHTS, and ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION quickly.
enum PrimitiveType:
PRIMITIVE_POINTS = 0 --- Primitiva para dibujar vagones de puntos.
PRIMITIVE_LINES = 1 --- Primitiva para dibujar vagones de líneas.
PRIMITIVE_LINE_STRIP = 2 --- Primitiva para dibujar consiste en una franja de líneas de principio a fin.
PRIMITIVE_LINE_LOOP = 3 --- Primitive to draw consists of a line loop (a line strip with a line between the last and the first vertex).
PRIMITIVE_TRIANGLES = 4 --- Primitiva para dibujar vagones de triángulos.
PRIMITIVE_TRIANGLE_STRIP = 5 --- Primitiva para dibujar consiste en una tira de triángulo (los últimos 3 vértices siempre se combinan para formar un triángulo).
PRIMITIVE_TRIANGLE_FAN = 6 --- Primitive to draw consists of a triangle strip (the last 2 vertices are always combined with the first to make a triangle).
PRIMITIVE_MAX = 7 --- Representa el tamaño del enum PrimitiveType.
enum BlendShapeMode:
BLEND_SHAPE_MODE_NORMALIZED = 0 --- Las formas de la mezcla se normalizan.
BLEND_SHAPE_MODE_RELATIVE = 1 --- Las formas de la mezcla son relativas al peso base.
enum LightType:
LIGHT_DIRECTIONAL = 0 --- Es una luz direccional (sol).
LIGHT_OMNI = 1 --- Es una luz omnipresente.
LIGHT_SPOT = 2 --- Es un foco de luz.
enum LightParam:
LIGHT_PARAM_ENERGY = 0 --- La energía de la luz.
LIGHT_PARAM_INDIRECT_ENERGY = 1 --- Secondary multiplier used with indirect light (light bounces).
LIGHT_PARAM_SIZE = 2 --- The light's size, currently only used for soft shadows in baked lightmaps.
LIGHT_PARAM_SPECULAR = 3 --- La influencia de la luz en la especularidad.
LIGHT_PARAM_RANGE = 4 --- El rango de la luz.
LIGHT_PARAM_ATTENUATION = 5 --- La atenuación de la luz.
LIGHT_PARAM_SPOT_ANGLE = 6 --- El ángulo del foco.
LIGHT_PARAM_SPOT_ATTENUATION = 7 --- La atenuación del foco.
LIGHT_PARAM_CONTACT_SHADOW_SIZE = 8 --- Scales the shadow color.
LIGHT_PARAM_SHADOW_MAX_DISTANCE = 9 --- La distancia máxima a la que las sombras se renderizarán.
LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET = 10 --- Proporción de atlas de sombras ocupados por la primera división.
LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET = 11 --- Proporción del atlas de las sombras ocupado por la segunda división.
LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET = 12 --- Proporción del atlas de las sombras ocupado por la tercera división. La cuarta división ocupa el resto.
LIGHT_PARAM_SHADOW_NORMAL_BIAS = 13 --- Sesgo normal usado para compensar la búsqueda de sombras por el objeto normal. Puede ser usado para arreglar artefactos de auto-sombra.
LIGHT_PARAM_SHADOW_BIAS = 14 --- Predisponer la búsqueda de sombras para arreglar los artefactos que se ensombrecen a sí mismos.
LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE = 15 --- Increases bias on further splits to fix self-shadowing that only occurs far away from the camera.
LIGHT_PARAM_MAX = 16 --- Representa el tamaño del enum LightParam.
enum LightBakeMode:
LIGHT_BAKE_DISABLED = 0
LIGHT_BAKE_INDIRECT = 1
LIGHT_BAKE_ALL = 2
enum LightOmniShadowMode:
LIGHT_OMNI_SHADOW_DUAL_PARABOLOID = 0 --- Usar un mapa de sombras paraboloide doble para las luces omnidireccionales.
LIGHT_OMNI_SHADOW_CUBE = 1 --- Usa un mapa de cubo de sombras para las luces omnidireccionales. Más lento pero de mejor calidad que el paraboloide dual.
enum LightOmniShadowDetail:
LIGHT_OMNI_SHADOW_DETAIL_VERTICAL = 0 --- Use more detail vertically when computing shadow map.
LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL = 1 --- Use more detail horizontally when computing shadow map.
enum LightDirectionalShadowMode:
LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL = 0 --- Usar proyección de sombra ortogonal para la luz direccional.
LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS = 1 --- Use 2 divisiones para la proyección de sombras cuando use luz direccional.
LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS = 2 --- Use 4 divisiones para la proyección de sombras cuando use luz direccional.
enum LightDirectionalShadowDepthRangeMode:
LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE = 0 --- Mantiene las sombras estables a medida que la cámara se mueve, pero tiene una resolución efectiva más baja.
LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED = 1 --- Optimizar el uso de los mapas de sombra, aumentando la resolución efectiva. Pero puede dar lugar a que las sombras se muevan o parpadeen ligeramente.
enum ViewportUpdateMode:
VIEWPORT_UPDATE_DISABLED = 0 --- No actualice el viewport.
VIEWPORT_UPDATE_ONCE = 1 --- Actualiza el viewport una vez y luego ponlo en desactivado.
VIEWPORT_UPDATE_WHEN_VISIBLE = 2 --- Actualice el viewport siempre que sea visible.
VIEWPORT_UPDATE_ALWAYS = 3 --- Siempre actualiza el viewport.
enum ViewportClearMode:
VIEWPORT_CLEAR_ALWAYS = 0 --- El viewport siempre se limpia antes de dibujar.
VIEWPORT_CLEAR_NEVER = 1 --- El viewport nunca se limpia antes de dibujar.
VIEWPORT_CLEAR_ONLY_NEXT_FRAME = 2 --- El viewport se borra una vez, luego el modo de borrado se establece en VIEWPORT_CLEAR_NEVER.
enum ViewportMSAA:
VIEWPORT_MSAA_DISABLED = 0 --- El antialiasing multimuestra está desactivado.
VIEWPORT_MSAA_2X = 1 --- Multisample antialiasing is set to 2×.
VIEWPORT_MSAA_4X = 2 --- Multisample antialiasing is set to 4×.
VIEWPORT_MSAA_8X = 3 --- Multisample antialiasing is set to 8×.
VIEWPORT_MSAA_16X = 4 --- Multisample antialiasing is set to 16×.
VIEWPORT_MSAA_EXT_2X = 5 --- Multisample antialiasing is set to 2× on external texture. Special mode for GLES2 Android VR (Oculus Quest and Go).
VIEWPORT_MSAA_EXT_4X = 6 --- Multisample antialiasing is set to 4× on external texture. Special mode for GLES2 Android VR (Oculus Quest and Go).
enum ViewportUsage:
VIEWPORT_USAGE_2D = 0 --- The Viewport does not render 3D but samples.
VIEWPORT_USAGE_2D_NO_SAMPLING = 1 --- The Viewport does not render 3D and does not sample.
VIEWPORT_USAGE_3D = 2 --- The Viewport renders 3D with effects.
VIEWPORT_USAGE_3D_NO_EFFECTS = 3 --- The Viewport renders 3D but without effects.
enum ViewportRenderInfo:
VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME = 0 --- Número de objetos dibujados en un solo fotograma.
VIEWPORT_RENDER_INFO_VERTICES_IN_FRAME = 1 --- Número de vértices dibujados en un solo fotograma.
VIEWPORT_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME = 2 --- Número de cambios materiales durante este fotograma.
VIEWPORT_RENDER_INFO_SHADER_CHANGES_IN_FRAME = 3 --- El número de cambios de shader durante este fotograma.
VIEWPORT_RENDER_INFO_SURFACE_CHANGES_IN_FRAME = 4 --- El número de cambios en la superficie durante este fotograma.
VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME = 5 --- Número de llamadas de dibujo durante este fotograma.
VIEWPORT_RENDER_INFO_2D_ITEMS_IN_FRAME = 6 --- Number of 2d items drawn this frame.
VIEWPORT_RENDER_INFO_2D_DRAW_CALLS_IN_FRAME = 7 --- Number of 2d draw calls during this frame.
VIEWPORT_RENDER_INFO_MAX = 8 --- Representa el tamaño del enum ViewportRenderInfo.
enum ViewportDebugDraw:
VIEWPORT_DEBUG_DRAW_DISABLED = 0 --- El dibujado de depuración está desactivado. Configuración predeterminada.
VIEWPORT_DEBUG_DRAW_UNSHADED = 1 --- Debug draw sets objects to unshaded.
VIEWPORT_DEBUG_DRAW_OVERDRAW = 2 --- Overwrites clear color to
(0,0,0,0)
.VIEWPORT_DEBUG_DRAW_WIREFRAME = 3 --- El dibujado de depuración dibuja objetos en un marco de alambre.
enum ScenarioDebugMode:
SCENARIO_DEBUG_DISABLED = 0 --- No utilice el modo de depuración.
SCENARIO_DEBUG_WIREFRAME = 1 --- Dibujar todos los objetos como modelos de malla de alambre.
SCENARIO_DEBUG_OVERDRAW = 2 --- Dibuja todos los objetos de manera que se vea cuánto se está sobregirando. El sobregirado se produce cuando se dibuja y sombrea una sección de píxeles y luego otro objeto la cubre. Para optimizar una escena, debes reducir el sobregirado.
SCENARIO_DEBUG_SHADELESS = 3 --- Dibuja todos los objetos sin sombrear. Equivale a poner todos los objetos shaders en
unshaded
.
enum InstanceType:
INSTANCE_NONE = 0 --- La instancia no tiene un tipo.
INSTANCE_MESH = 1 --- La instancia es una malla.
INSTANCE_MULTIMESH = 2 --- La instancia es una multimalla.
INSTANCE_IMMEDIATE = 3 --- La instancia es una geometría inmediata.
INSTANCE_PARTICLES = 4 --- El caso es un emisor de partículas.
INSTANCE_LIGHT = 5 --- La instancia es una luz.
INSTANCE_REFLECTION_PROBE = 6 --- La instancia es una sonda de reflexión.
INSTANCE_GI_PROBE = 7 --- El caso es una sonda GI.
INSTANCE_LIGHTMAP_CAPTURE = 8 --- The instance is a lightmap capture.
INSTANCE_MAX = 9 --- Representa el tamaño del enumInstanceType.
INSTANCE_GEOMETRY_MASK = 30 --- Una combinación de las banderas de las instancias de la geometría (malla, multimesh, inmediata y partículas).
enum InstanceFlags:
INSTANCE_FLAG_USE_BAKED_LIGHT = 0 --- Permite que la instancia se utilice en la iluminación del cocinado.
INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = 1 --- Cuando se establece, pide manualmente dibujar la geometría en el siguiente fotograma.
INSTANCE_FLAG_MAX = 2 --- Representa el tamaño del enum InstanceFlags.
enum ShadowCastingSetting:
SHADOW_CASTING_SETTING_OFF = 0 --- Deshabilita sombras de esta instancia.
SHADOW_CASTING_SETTING_ON = 1 --- Proyecta sombras de esta instancia.
SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2 --- Deshabilitar la selección de la cara posterior cuando se renderice la sombra del objeto. Esto es un poco más lento pero puede resultar en sombras más correctas.
SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3 --- Sólo se muestran las sombras del objeto. El objeto en sí no será dibujado.
enum NinePatchAxisMode:
NINE_PATCH_STRETCH = 0 --- El nine patch se estira donde es necesario.
NINE_PATCH_TILE = 1 --- El nine patch se llena de tiles donde sea necesario.
NINE_PATCH_TILE_FIT = 2 --- El nine patch se llena de tiles donde sea necesario y se estira un poco si es necesario.
enum CanvasLightMode