Viewport
Heredado por: SubViewport, Window
Clase base abstracta para viewports. Encapsula el dibujo y la interacción con un mundo de juego.
Descripción
Un Viewport crea una vista diferente en la pantalla, o una subvista dentro de otro viewport. Los nodos 2D hijos se mostrarán en él, y los nodos 3D hijos de Camera3D también se renderizarán en él.
Opcionalmente, un viewport puede tener su propio mundo 2D o 3D, de modo que no comparte lo que dibuja con otros viewports.
Los viewports también pueden optar por ser escuchas de audio, por lo que generan audio posicional dependiendo de una cámara 2D o 3D hija de él.
Además, los viewports se pueden asignar a diferentes pantallas en caso de que los dispositivos tengan múltiples pantallas.
Finalmente, los viewports también pueden comportarse como objetivos de renderizado, en cuyo caso no serán visibles a menos que se utilice la textura asociada para dibujar.
Tutoriales
Propiedades
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
physics_interpolation_mode |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Métodos
Señales
gui_focus_changed(node: Control) 🔗
Emitida cuando un nodo Control toma el foco del teclado.
Nota: Que un nodo Control pierda el foco no causa que esta señal sea emitida.
size_changed() 🔗
Emitida cuando se cambia el tamaño del viewport, ya sea cambiando el tamaño de la ventana o por algún otro medio.
Enumeraciones
enum PositionalShadowAtlasQuadrantSubdiv: 🔗
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED = 0
Este cuadrante no será utilizado.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_1 = 1
Este cuadrante sólo será usado por un mapa de sombras.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_4 = 2
Este cuadrante se dividirá en 4 y será usado por hasta 4 mapas de sombras.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_16 = 3
Este cuadrante se dividirá en 16 partes y será utilizado por hasta 16 mapas de sombras.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_64 = 4
Este cuadrante se dividirá en 64 partes y será utilizado por hasta 64 mapas de sombras.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_256 = 5
Este cuadrante se dividirá en 256 partes y será utilizado por hasta 256 mapas de sombras. A menos que el valor de positional_shadow_atlas_size sea muy alto, las sombras en este cuadrante tendrán muy baja resolución.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_1024 = 6
Este cuadrante se dividirá en 1024 partes y será utilizado por hasta 1024 mapas de sombras. A menos que el valor de positional_shadow_atlas_size sea muy alto, las sombras en este cuadrante tendrán muy baja resolución.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_MAX = 7
Representa el tamaño del enum PositionalShadowAtlasQuadrantSubdiv.
enum Scaling3DMode: 🔗
Scaling3DMode SCALING_3D_MODE_BILINEAR = 0
Usa escalado bilineal para el búfer 3D del viewport. La cantidad de escalado se puede establecer usando scaling_3d_scale. Valores menores que 1.0 resultarán en submuestreo mientras que valores mayores a 1.0 resultarán en sobremuestreo. Un valor de 1.0 deshabilita el escalado.
Scaling3DMode SCALING_3D_MODE_FSR = 1
Usa el reescalado AMD FidelityFX Super Resolution 1.0 para el búfer 3D del viewport. La cantidad de escalado se puede establecer usando scaling_3d_scale. Valores menores a 1.0 resultarán en que el viewport sea reescalado usando FSR. Valores mayores a 1.0 no son soportados y en su lugar se usará un submuestreo bilineal. Un valor de 1.0 deshabilita el escalado.
Scaling3DMode SCALING_3D_MODE_FSR2 = 2
Utiliza el upscaling AMD FidelityFX Super Resolution 2.2 para el búfer 3D del viewport. La cantidad de escalado se puede establecer utilizando scaling_3d_scale. Los valores menores que 1.0 harán que el viewport se escale utilizando FSR2. Los valores mayores que 1.0 no son compatibles y, en su lugar, se utilizará el submuestreo bilineal. Un valor de 1.0 utilizará FSR2 a resolución nativa como una solución TAA.
Scaling3DMode SCALING_3D_MODE_METALFX_SPATIAL = 3
Usa el reescalador espacial MetalFX para el búfer 3D del viewport.
La cantidad de escalado se puede establecer usando scaling_3d_scale.
Valores menores a 1.0 resultarán en que el viewport sea reescalado usando MetalFX. Valores mayores a 1.0 no son soportados y en su lugar se usará submuestreo bilineal. Un valor de 1.0 deshabilita el escalado.
Más información: MetalFX.
Nota: Sólo soportado cuando el controlador de renderizado Metal está en uso, lo que limita este modo de escalado a macOS e iOS.
Scaling3DMode SCALING_3D_MODE_METALFX_TEMPORAL = 4
Utiliza el reescalador temporal MetalFX para el búfer 3D del viewport.
La cantidad de escalado se puede establecer utilizando scaling_3d_scale. Para determinar la escala de entrada mínima, utiliza el método RenderingDevice.limit_get() con RenderingDevice.LIMIT_METALFX_TEMPORAL_SCALER_MIN_SCALE.
Los valores inferiores a 1.0 harán que el viewport se escale utilizando MetalFX. Los valores mayores que 1.0 no son compatibles y en su lugar se utilizará el submuestreo bilineal. Un valor de 1.0 utilizará MetalFX en la resolución nativa como una solución TAA.
Más información: MetalFX.
Nota: Sólo se admite cuando se utiliza el controlador de renderizado Metal, lo que limita este modo de escalado a macOS e iOS.
Scaling3DMode SCALING_3D_MODE_MAX = 5
Representa el tamaño del enum Scaling3DMode.
enum MSAA: 🔗
MSAA MSAA_DISABLED = 0
Modo de antialiasing multisample desactivado. Este es el valor predeterminado, y también la configuración más rápida.
MSAA MSAA_2X = 1
Usar antialiasing multisample 2×. Esto tiene un coste de rendimiento moderado. Ayuda a reducir el aliasing notablemente, pero el MSAA 4× sigue viéndose sustancialmente mejor.
MSAA MSAA_4X = 2
Usar antialiasing multisample 4×. Esto tiene un coste de rendimiento significativo, y generalmente es un buen compromiso entre rendimiento y calidad.
MSAA MSAA_8X = 3
Usar antialiasing multisample 8×. Esto tiene un coste de rendimiento muy alto. La diferencia entre MSAA 4× y 8× puede no ser siempre visible en condiciones de juego reales. Probablemente no sea compatible con hardware de gama baja o antiguo.
MSAA MSAA_MAX = 4
Representa el tamaño del enum MSAA.
enum AnisotropicFiltering: 🔗
AnisotropicFiltering ANISOTROPY_DISABLED = 0
El filtrado anisotrópico está desactivado.
AnisotropicFiltering ANISOTROPY_2X = 1
Usar filtrado anisotrópico 2×.
AnisotropicFiltering ANISOTROPY_4X = 2
Usar filtrado anisotrópico 4×. Este es el valor predeterminado.
AnisotropicFiltering ANISOTROPY_8X = 3
Usar filtrado anisotrópico 8×.
AnisotropicFiltering ANISOTROPY_16X = 4
Usar filtrado anisotrópico 16×.
AnisotropicFiltering ANISOTROPY_MAX = 5
Representa el tamaño del enum AnisotropicFiltering.
enum ScreenSpaceAA: 🔗
ScreenSpaceAA SCREEN_SPACE_AA_DISABLED = 0
No realizar ningún antialiasing en el post-procesamiento de pantalla completa.
ScreenSpaceAA SCREEN_SPACE_AA_FXAA = 1
Usar antialiasing aproximado rápido. FXAA es un método popular de antialiasing en el espacio de la pantalla, que es rápido pero hará que la imagen se vea borrosa, especialmente en resoluciones más bajas. Aún puede funcionar relativamente bien en resoluciones grandes como 1440p y 4K.
ScreenSpaceAA SCREEN_SPACE_AA_SMAA = 2
Usar antialiasing morfológico de subpíxeles. SMAA puede producir resultados más claros que FXAA, pero con un coste de rendimiento ligeramente superior.
ScreenSpaceAA SCREEN_SPACE_AA_MAX = 3
Representa el tamaño del enum ScreenSpaceAA.
enum RenderInfo: 🔗
RenderInfo RENDER_INFO_OBJECTS_IN_FRAME = 0
Cantidad de objetos en el fotograma.
RenderInfo RENDER_INFO_PRIMITIVES_IN_FRAME = 1
Cantidad de vértices en el fotograma.
RenderInfo RENDER_INFO_DRAW_CALLS_IN_FRAME = 2
Cantidad de llamadas de dibujo en el fotograma.
RenderInfo RENDER_INFO_MAX = 3
Representa el tamaño del enum RenderInfo.
enum RenderInfoType: 🔗
RenderInfoType RENDER_INFO_TYPE_VISIBLE = 0
Pase de renderizado visible (excluidas las sombras).
RenderInfoType RENDER_INFO_TYPE_SHADOW = 1
Paso de renderizado de sombras. Los objetos se renderizarán varias veces dependiendo de la cantidad de luces con sombras y el número de divisiones de sombras direccionales.
RenderInfoType RENDER_INFO_TYPE_CANVAS = 2
Renderizado de elementos del canvas. Esto incluye todo el renderizado 2D.
RenderInfoType RENDER_INFO_TYPE_MAX = 3
Representa el tamaño del enum RenderInfoType.
enum DebugDraw: 🔗
DebugDraw DEBUG_DRAW_DISABLED = 0
Los objetos se muestran normalmente.
DebugDraw DEBUG_DRAW_UNSHADED = 1
Los objetos se muestran sin información de la luz.
DebugDraw DEBUG_DRAW_LIGHTING = 2
Los objetos se muestran sin texturas y solo con información de iluminación.
Nota: Al usar este modo de dibujo de depuración, los shaders personalizados se ignoran, ya que todos los materiales de la escena utilizan temporalmente un material de depuración. Esto significa que el resultado de las funciones de sombreado personalizadas (como el desplazamiento de vértices) ya no será visible cuando se utilice este modo de dibujo de depuración.
DebugDraw DEBUG_DRAW_OVERDRAW = 3
Los objetos se muestran semitransparentes con mezcla aditiva para que puedas ver dónde se dibujan unos encima de otros. Un sobredibujado más alto significa que estás malgastando rendimiento dibujando píxeles que se ocultan detrás de otros.
Nota: Al usar este modo de dibujo de depuración, los shaders personalizados se ignoran, ya que todos los materiales de la escena utilizan temporalmente un material de depuración. Esto significa que el resultado de las funciones de sombreado personalizadas (como el desplazamiento de vértices) ya no será visible cuando se utilice este modo de dibujo de depuración.
DebugDraw DEBUG_DRAW_WIREFRAME = 4
Los objetos se muestran como modelos de alambre (wireframe).
Nota: Se debe llamar a RenderingServer.set_debug_generate_wireframes() antes de cargar cualquier malla para que los wireframes sean visibles cuando se utiliza el renderizador de Compatibility.
DebugDraw DEBUG_DRAW_NORMAL_BUFFER = 5
Los objetos se muestran sin información de iluminación y sus texturas son reemplazadas por el mapeo de normales.
Nota: Solo es compatible cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_VOXEL_GI_ALBEDO = 6
Los objetos se muestran solo con el valor albedo de los VoxelGI. Requiere al menos un nodo VoxelGI visible que haya sido procesado para tener un efecto visible.
Nota: Solo se admite cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_VOXEL_GI_LIGHTING = 7
Los objetos se muestran solo con el valor de iluminación de los VoxelGI. Requiere al menos un nodo VoxelGI visible que haya sido procesado para tener un efecto visible.
Nota: Solo se admite cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_VOXEL_GI_EMISSION = 8
Los objetos se muestran solo con el color de emisión de los VoxelGI. Requiere al menos un nodo VoxelGI visible que haya sido procesado para tener un efecto visible.
Nota: Solo se admite cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_SHADOW_ATLAS = 9
Dibuja el atlas de sombras que almacena las sombras de las OmniLight3D y SpotLight3D en el cuadrante superior izquierdo del Viewport.
DebugDraw DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS = 10
Dibuja el atlas de sombras que almacena las sombras de los DirectionalLight3D en el cuadrante superior izquierdo del Viewport.
DebugDraw DEBUG_DRAW_SCENE_LUMINANCE = 11
Dibuja el búfer de luminancia de la escena (si está disponible) en el cuadrante superior izquierdo del Viewport.
Nota: Solo es compatible cuando se utilizan los métodos de renderizado Forward+ o Mobile.
DebugDraw DEBUG_DRAW_SSAO = 12
Dibuja la textura de oclusión ambiental del espacio de la pantalla en lugar de la escena, para que pueda ver claramente cómo está afectando a los objetos. Para que este modo de visualización funcione, debe tener Environment.ssao_enabled establecido en su WorldEnvironment.
Nota: Sólo se admite cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_SSIL = 13
Dibuja la textura de iluminación indirecta del espacio de la pantalla en lugar de la escena, para que pueda ver claramente cómo está afectando a los objetos. Para que este modo de visualización funcione, debe tener Environment.ssil_enabled establecido en su WorldEnvironment.
Nota: Sólo se admite cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_PSSM_SPLITS = 14
Colorea cada división PSSM para los DirectionalLight3D en la escena con un color diferente para que puedas ver dónde están las divisiones. En orden (desde el más cercano al más lejano de la cámara), se colorean de rojo, verde, azul y amarillo.
Nota: Cuando se utiliza este modo de dibujo de depuración, se ignoran los shaders personalizados, ya que todos los materiales de la escena utilizan temporalmente un material de depuración. Esto significa que el resultado de las funciones de shader personalizadas (como el desplazamiento de vértices) ya no será visible cuando se utilice este modo de dibujo de depuración.
Nota: Solo se admite cuando se utilizan los métodos de renderizado Forward+ o Mobile.
DebugDraw DEBUG_DRAW_DECAL_ATLAS = 15
Dibuja el atlas de calcomanías utilizado por los Decals y las texturas del proyector de luz en el cuadrante superior izquierdo del Viewport.
Nota: Sólo se admite cuando se utilizan los métodos de renderizado Forward+ o Mobile.
DebugDraw DEBUG_DRAW_SDFGI = 16
Dibuja las cascadas utilizadas para renderizar la iluminación global del campo de distancia firmado (SDFGI).
No hace nada si el Environment.sdfgi_enabled del entorno actual es false.
Nota: Sólo se admite cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_SDFGI_PROBES = 17
Dibuja las sondas utilizadas para la iluminación global del campo de distancia firmado (SDFGI).
No hace nada si el Environment.sdfgi_enabled del entorno actual es false.
Nota: Sólo se admite cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_GI_BUFFER = 18
Dibuja el búfer utilizado para la iluminación global de VoxelGI o SDFGI. Requiere que VoxelGI (al menos un nodo VoxelGI procesado visible) o SDFGI (Environment.sdfgi_enabled) estén habilitados para tener un efecto visible.
Nota: Sólo se admite cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_DISABLE_LOD = 19
Dibuja todos los objetos con su mayor número de polígonos, independientemente de su distancia a la cámara. No se aplica ningún nivel de detalle bajo (LOD).
DebugDraw DEBUG_DRAW_CLUSTER_OMNI_LIGHTS = 20
Dibuja el clúster utilizado por los nodos OmniLight3D para optimizar el renderizado de la luz.
Nota: Solo es compatible cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_CLUSTER_SPOT_LIGHTS = 21
Dibuja el clúster utilizado por los nodos SpotLight3D para optimizar el renderizado de la luz.
Nota: Solo es compatible cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_CLUSTER_DECALS = 22
Dibuja el clúster utilizado por los nodos Decal para optimizar el renderizado de calcomanías.
Nota: Solo es compatible cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_CLUSTER_REFLECTION_PROBES = 23
Dibuja el clúster utilizado por los nodos ReflectionProbe para optimizar las sondas de reflexión.
Nota: Solo es compatible cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_OCCLUDERS = 24
Dibuja el búfer utilizado para la oclusión.
Nota: Solo es compatible cuando se utilizan los métodos de renderizado Forward+ o Mobile.
DebugDraw DEBUG_DRAW_MOTION_VECTORS = 25
Dibuja líneas vectoriales sobre el viewport para indicar el movimiento de los píxeles entre fotogramas.
Nota: Solo es compatible cuando se utiliza el método de renderizado Forward+.
DebugDraw DEBUG_DRAW_INTERNAL_BUFFER = 26
Dibuja el búfer de resolución interna de la escena en un espacio de color lineal antes de que se aplique el mapeo de tonos o el post-procesado.
Nota: Solo es compatible cuando se utilizan los métodos de renderizado Forward+ o Mobile.
enum DefaultCanvasItemTextureFilter: 🔗
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST = 0
The texture filter reads from the nearest pixel only. This makes the texture look pixelated from up close, and grainy from a distance (due to mipmaps not being sampled).
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR = 1
The texture filter blends between the nearest 4 pixels. This makes the texture look smooth from up close, and grainy from a distance (due to mipmaps not being sampled).
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 2
The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is true). This makes the texture look smooth from up close, and smooth from a distance.
Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to Camera2D zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3
The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is true). This makes the texture look pixelated from up close, and smooth from a distance.
Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to Camera2D zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_MAX = 4
Representa el tamaño del enum DefaultCanvasItemTextureFilter.
enum DefaultCanvasItemTextureRepeat: 🔗
DefaultCanvasItemTextureRepeat DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_DISABLED = 0
Desactiva la repetición de texturas. En su lugar, al leer UVs fuera del rango 0-1, el valor se sujetará al borde de la textura, resultando en un aspecto estirado en los bordes de la textura.
DefaultCanvasItemTextureRepeat DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_ENABLED = 1
Enables the texture to repeat when UV coordinates are outside the 0-1 range. If using one of the linear filtering modes, this can result in artifacts at the edges of a texture when the sampler filters across the edges of the texture.
DefaultCanvasItemTextureRepeat DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MIRROR = 2
Invierte la textura al repetirla para que el borde se alinee en lugar de cambiar bruscamente.
DefaultCanvasItemTextureRepeat DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MAX = 3
Representa el tamaño del enum DefaultCanvasItemTextureRepeat.
enum SDFOversize: 🔗
SDFOversize SDF_OVERSIZE_100_PERCENT = 0
El campo de distancia con signo solo cubre el propio rectángulo del viewport.
SDFOversize SDF_OVERSIZE_120_PERCENT = 1
El campo de distancia con signo se expande para cubrir el 20% del tamaño del viewport alrededor de los bordes.
SDFOversize SDF_OVERSIZE_150_PERCENT = 2
El campo de distancia con signo se expande para cubrir el 50% del tamaño del viewport alrededor de los bordes.
SDFOversize SDF_OVERSIZE_200_PERCENT = 3
El campo de distancia con signo se expande para cubrir el 100% (el doble) del tamaño del viewport alrededor de los bordes.
SDFOversize SDF_OVERSIZE_MAX = 4
Representa el tamaño del enum SDFOversize.
enum SDFScale: 🔗
SDFScale SDF_SCALE_100_PERCENT = 0
El campo de distancia con signo se renderiza a resolución completa.
SDFScale SDF_SCALE_50_PERCENT = 1
El campo de distancia con signo se renderiza a la mitad de la resolución de este viewport.
SDFScale SDF_SCALE_25_PERCENT = 2
El campo de distancia con signo se renderiza a un cuarto de la resolución de este viewport.
SDFScale SDF_SCALE_MAX = 3
Representa el tamaño del enum SDFScale.
enum VRSMode: 🔗
VRSMode VRS_DISABLED = 0
El sombreado de tasa variable está desactivado.
VRSMode VRS_TEXTURE = 1
El sombreado de tasa variable utiliza una textura. Nota: para uso estereoscópico, utiliza un atlas de texturas con una textura para cada vista.
VRSMode VRS_XR = 2
La textura del sombreado de tasa variable es suministrada por la XRInterface principal.
VRSMode VRS_MAX = 3
Representa el tamaño del enum VRSMode.
enum VRSUpdateMode: 🔗
VRSUpdateMode VRS_UPDATE_DISABLED = 0
La textura de entrada para el sombreado de velocidad variable no se procesará.
VRSUpdateMode VRS_UPDATE_ONCE = 1
La textura de entrada para el sombreado de velocidad variable se procesará una vez.
VRSUpdateMode VRS_UPDATE_ALWAYS = 2
La textura de entrada para el sombreado de velocidad variable se procesará en cada frame.
VRSUpdateMode VRS_UPDATE_MAX = 3
Representa el tamaño del enum VRSUpdateMode.
Descripciones de Propiedades
AnisotropicFiltering anisotropic_filtering_level = 2 🔗
void set_anisotropic_filtering_level(value: AnisotropicFiltering)
AnisotropicFiltering get_anisotropic_filtering_level()
Sets the maximum number of samples to take when using anisotropic filtering on textures (as a power of two). A higher sample count will result in sharper textures at oblique angles, but is more expensive to compute. A value of 0 forcibly disables anisotropic filtering, even on materials where it is enabled.
The anisotropic filtering level also affects decals and light projectors if they are configured to use anisotropic filtering. See ProjectSettings.rendering/textures/decals/filter and ProjectSettings.rendering/textures/light_projectors/filter.
Note: In 3D, for this setting to have an effect, set BaseMaterial3D.texture_filter to BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC or BaseMaterial3D.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC on materials.
Note: In 2D, for this setting to have an effect, set CanvasItem.texture_filter to CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC or CanvasItem.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC on the CanvasItem node displaying the texture (or in CanvasTexture). However, anisotropic filtering is rarely useful in 2D, so only enable it for textures in 2D if it makes a meaningful visual difference.
bool audio_listener_enable_2d = false 🔗
Si es true, el viewport procesará streams de audio en 2D.
bool audio_listener_enable_3d = false 🔗
Si es true, el viewport procesará streams de audio en 3D.
int canvas_cull_mask = 4294967295 🔗
Las capas de renderizado en las que este Viewport renderiza nodos CanvasItem.
DefaultCanvasItemTextureFilter canvas_item_default_texture_filter = 1 🔗
void set_default_canvas_item_texture_filter(value: DefaultCanvasItemTextureFilter)
DefaultCanvasItemTextureFilter get_default_canvas_item_texture_filter()
Establece el modo de filtro predeterminado que utilizan los CanvasItem en este Viewport.
DefaultCanvasItemTextureRepeat canvas_item_default_texture_repeat = 0 🔗
void set_default_canvas_item_texture_repeat(value: DefaultCanvasItemTextureRepeat)
DefaultCanvasItemTextureRepeat get_default_canvas_item_texture_repeat()
Establece el modo de repetición predeterminado que utilizan los CanvasItem en este Viewport.
Transform2D canvas_transform 🔗
void set_canvas_transform(value: Transform2D)
Transform2D get_canvas_transform()
La transformación del canvas del viewport, útil para cambiar las posiciones en pantalla de todos los CanvasItems hijos. Esto es relativo a la transformación global del canvas del viewport.
El modo de superposición para la prueba renderizó la geometría con fines de depuración.
Desactiva el renderizado 3D (pero mantiene el renderizado 2D).
Determina la nitidez de la imagen sobreescalada al usar el modo de sobreescalado FSR. La nitidez se reduce a la mitad con cada número entero. Los valores van de 0.0 (máxima nitidez) a 2.0. Los valores por encima de 2.0 no supondrán una diferencia visible.
Para controlar esta propiedad en el viewport raíz, establece la configuración de proyecto ProjectSettings.rendering/scaling_3d/fsr_sharpness.
Transform2D global_canvas_transform 🔗
void set_global_canvas_transform(value: Transform2D)
Transform2D get_global_canvas_transform()
La transformación del canvas global del viewport. La transformación del canvas es relativa a esto.
bool gui_disable_input = false 🔗
Si es true, el viewport no recibirá eventos de entrada.
bool gui_embed_subwindows = false 🔗
Si es true, las sub-ventanas (ventanas emergentes y diálogos) se incrustarán dentro de la ventana de la aplicación como nodos de tipo control. Si es false, aparecerán como ventanas separadas manejadas por el sistema operativo.
bool gui_snap_controls_to_pixels = true 🔗
Si es true, los controles GUI en el viewport colocarán los píxeles perfectamente.
bool handle_input_locally = true 🔗
Si es true, este viewport marcará los eventos de entrada entrantes como manejados por sí mismo. Si es false, esto lo hará en su lugar el primer viewport padre que esté configurado para manejar la entrada localmente.
Un SubViewportContainer establecerá automáticamente esta propiedad a false para el Viewport contenido dentro de él.
Véase también set_input_as_handled() e is_input_handled().
float mesh_lod_threshold = 1.0 🔗
El sesgo LOD automático que se utilizará para las mallas renderizadas dentro del Viewport (esto es análogo a ReflectionProbe.mesh_lod_threshold). Los valores más altos utilizarán versiones menos detalladas de las mallas que tienen variaciones LOD generadas. Si se establece en 0.0, el LOD automático se desactiva. Aumente mesh_lod_threshold para mejorar el rendimiento a costa del detalle de la geometría.
Para controlar esta propiedad en el viewport raíz, establezca el ajuste del proyecto ProjectSettings.rendering/mesh_lod/lod_change/threshold_pixels.
Nota: mesh_lod_threshold no afecta a los rangos de visibilidad de GeometryInstance3D (también conocidos como LOD "manual" o LOD jerárquico).
El modo de antialiasing multisample para el renderizado 2D/Canvas. Un número mayor resulta en bordes más suaves a costa de un rendimiento significativamente peor. Un valor de MSAA_2X o MSAA_4X es lo mejor a menos que se trate de sistemas de muy alta gama. Esto no tiene ningún efecto sobre el aliasing inducido por el sombreador o el aliasing de la textura.
Véase también ProjectSettings.rendering/anti_aliasing/quality/msaa_2d y RenderingServer.viewport_set_msaa_2d().
El modo de antialiasing multisample para el renderizado 3D. Un número mayor resulta en bordes más suaves a costa de un rendimiento significativamente peor. Un valor de MSAA_2X o MSAA_4X es mejor a menos que se trate de sistemas de muy alta gama. Véase también el escalado bilineal 3D scaling_3d_mode para el supersampling, que proporciona mayor calidad pero es mucho más costoso. Esto no tiene ningún efecto sobre el aliasing inducido por el sombreador o el aliasing de la textura.
Véase también ProjectSettings.rendering/anti_aliasing/quality/msaa_3d y RenderingServer.viewport_set_msaa_3d().
Si es true y se cumple una de las siguientes condiciones: se establecen SubViewport.size_2d_override_stretch y SubViewport.size_2d_override, se establece Window.content_scale_factor y el escalado está activado, se establece oversampling_override, se activa el sobremuestreo de fuentes y el sobremuestreo de DPITexture.
float oversampling_override = 0.0 🔗
Si es mayor que cero, este valor se utiliza como factor de sobremuestreo de la fuente, de lo contrario, el sobremuestreo es igual a la escala del viewport.
Si es true, el viewport utilizará una copia única del World3D definido en world_3d.
bool physics_object_picking = false 🔗
Si es true, los objetos renderizados por el viewport se convierten en sujetos del proceso de selección del ratón.
Nota: El número de objetos seleccionables simultáneamente está limitado a 64 y se seleccionan en un orden no determinista, que puede ser diferente en cada proceso de selección.
bool physics_object_picking_first_only = false 🔗
void set_physics_object_picking_first_only(value: bool)
bool get_physics_object_picking_first_only()
Si es true, la señal input_event solo se enviará a un objeto físico en el proceso de selección del ratón. Si quieres obtener solo el objeto superior, también debes habilitar physics_object_picking_sort.
Si es false, se enviará una señal input_event a todos los objetos físicos en el proceso de selección del ratón.
Esto se aplica solo a la selección de objetos 2D CanvasItem.
bool physics_object_picking_sort = false 🔗
Si es true, los objetos reciben los eventos de selección del ratón ordenados principalmente por su CanvasItem.z_index y secundariamente por su posición en el árbol de escenas. Si es false, el orden es indeterminado.
Nota: Esta configuración está deshabilitada por defecto debido a su potencial costo computacional.
Nota: La ordenación ocurre después de seleccionar los objetos seleccionables. Debido a la limitación de 64 objetos seleccionables simultáneamente, no se garantiza que el objeto con el CanvasItem.z_index más alto reciba el evento de selección.
bool positional_shadow_atlas_16_bits = true 🔗
Use 16 bits for the omni/spot shadow depth map. Enabling this results in shadows having less precision and may result in shadow acne, but can lead to performance improvements on some devices.
PositionalShadowAtlasQuadrantSubdiv positional_shadow_atlas_quad_0 = 2 🔗
void set_positional_shadow_atlas_quadrant_subdiv(quadrant: int, subdiv: PositionalShadowAtlasQuadrantSubdiv)
PositionalShadowAtlasQuadrantSubdiv get_positional_shadow_atlas_quadrant_subdiv(quadrant: int) const
La cantidad de subdivisión del primer cuadrante del atlas de las sombras.
PositionalShadowAtlasQuadrantSubdiv positional_shadow_atlas_quad_1 = 2 🔗
void set_positional_shadow_atlas_quadrant_subdiv(quadrant: int, subdiv: PositionalShadowAtlasQuadrantSubdiv)
PositionalShadowAtlasQuadrantSubdiv get_positional_shadow_atlas_quadrant_subdiv(quadrant: int) const
La cantidad de subdivisión del segundo cuadrante en el atlas de las sombras.
PositionalShadowAtlasQuadrantSubdiv positional_shadow_atlas_quad_2 = 3 🔗
void set_positional_shadow_atlas_quadrant_subdiv(quadrant: int, subdiv: PositionalShadowAtlasQuadrantSubdiv)
PositionalShadowAtlasQuadrantSubdiv get_positional_shadow_atlas_quadrant_subdiv(quadrant: int) const
La cantidad de subdivisión del tercer cuadrante en el atlas de las sombras.
PositionalShadowAtlasQuadrantSubdiv positional_shadow_atlas_quad_3 = 4 🔗
void set_positional_shadow_atlas_quadrant_subdiv(quadrant: int, subdiv: PositionalShadowAtlasQuadrantSubdiv)
PositionalShadowAtlasQuadrantSubdiv get_positional_shadow_atlas_quadrant_subdiv(quadrant: int) const
La cantidad de subdivisión del cuarto cuadrante en el atlas de las sombras.
int positional_shadow_atlas_size = 2048 🔗
La resolución del atlas de las sombras (usado para luces omni y spot). El valor se redondea a la potencia de 2 más cercana.
Nota: Si se establece a 0, ninguna sombra posicional será visible. Esto puede mejorar el rendimiento significativamente en sistemas de gama baja al reducir tanto la carga de la CPU como la de la GPU (ya que se necesitan menos llamadas de dibujado para dibujar la escena sin sombras).
Scaling3DMode scaling_3d_mode = 0 🔗
void set_scaling_3d_mode(value: Scaling3DMode)
Scaling3DMode get_scaling_3d_mode()
Establece el modo de escalado 3D. El escalado bilineal renderiza a una resolución diferente para submuestrear o sobremuestrear el viewport. FidelityFX Super Resolution 1.0, abreviado como FSR, es una tecnología de reescalado que produce imágenes de alta calidad a velocidades de fotogramas rápidas mediante el uso de un algoritmo de reescalado espacialmente consciente. FSR es ligeramente más caro que el bilineal, pero produce una calidad de imagen significativamente mayor. FSR debe utilizarse siempre que sea posible.
Para controlar esta propiedad en el viewport raíz, establece la configuración del proyecto ProjectSettings.rendering/scaling_3d/mode.
float scaling_3d_scale = 1.0 🔗
Escala el búfer de renderizado 3D basándose en el tamaño del viewport. Utiliza un filtro de imagen especificado en ProjectSettings.rendering/scaling_3d/mode para escalar la imagen de salida al tamaño completo del viewport. Los valores inferiores a 1.0 pueden utilizarse para acelerar el renderizado 3D a costa de la calidad (submuestreo). Los valores superiores a 1.0 sólo son válidos para el modo bilineal y pueden utilizarse para mejorar la calidad del renderizado 3D a un alto coste de rendimiento (sobremuestreo). Véase también ProjectSettings.rendering/anti_aliasing/quality/msaa_3d para el antialiasing multi-muestra, que es significativamente más barato, pero sólo suaviza los bordes de los polígonos.
Cuando se utiliza el escalado FSR, AMD recomienda exponer los siguientes valores como opciones preestablecidas para los usuarios "Ultra Calidad: 0.77", "Calidad: 0.67", "Balanceado: 0.59", "Rendimiento: 0.5" en lugar de exponer la escala completa.
Para controlar esta propiedad en el viewport raíz, establece el ajuste del proyecto ProjectSettings.rendering/scaling_3d/scale.
ScreenSpaceAA screen_space_aa = 0 🔗
void set_screen_space_aa(value: ScreenSpaceAA)
ScreenSpaceAA get_screen_space_aa()
Establece el método de antialiasing del espacio de pantalla utilizado. El antialiasing del espacio de pantalla funciona difuminando selectivamente los bordes en un sombreador de post-proceso. Difiere del MSAA que toma múltiples muestras de cobertura al renderizar objetos. Los métodos AA del espacio de pantalla son típicamente más rápidos que el MSAA y suavizarán el aliasing especular, pero tienden a hacer que las escenas aparezcan borrosas.
Véase también ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa y RenderingServer.viewport_set_screen_space_aa().
SDFOversize sdf_oversize = 1 🔗
void set_sdf_oversize(value: SDFOversize)
SDFOversize get_sdf_oversize()
Controla qué parte del tamaño del viewport original debe ser cubierta por el campo de distancia firmado 2D. Este SDF puede ser muestreado en shaders CanvasItem y también se utiliza para la colisión de GPUParticles2D. Los valores más altos permiten que las porciones de los oclusores situados fuera del viewport se tengan en cuenta en el campo de distancia firmado generado, a costa del rendimiento. Si observas que las partículas caen a través de los LightOccluder2Ds cuando los oclusores salen del viewport, aumenta este ajuste.
El porcentaje se añade en cada eje y en ambos lados. Por ejemplo, con el SDF_OVERSIZE_120_PERCENT por defecto, el campo de distancia firmado cubrirá el 20% del tamaño del viewport fuera del viewport en cada lado (arriba, derecha, abajo, izquierda).
La escala de resolución a usar para el campo de distancia con signo 2D. Valores más altos conducen a un campo de distancia con signo más preciso y más estable a medida que la cámara se mueve, a costa del rendimiento.
bool snap_2d_transforms_to_pixel = false 🔗
Si es true, los nodos CanvasItem se ajustarán internamente a píxeles completos. Su posición aún puede ser sub-pixel, pero los decimales no tendrán efecto. Esto puede llevar a una apariencia más nítida a costa de un movimiento menos suave, especialmente cuando el suavizado de Camera2D está habilitado.
bool snap_2d_vertices_to_pixel = false 🔗
Si es true, los vértices de los nodos CanvasItem se ajustarán a píxeles completos. Solo afecta las posiciones finales de los vértices, no las transformaciones. Esto puede llevar a una apariencia más nítida a costa de un movimiento menos suave, especialmente cuando el suavizado de Camera2D está habilitado.
float texture_mipmap_bias = 0.0 🔗
Afecta la nitidez final de la textura leyendo de un mipmap inferior o superior (también llamado "sesgo LOD de la textura"). Los valores negativos hacen que las texturas mipmapped sean más nítidas pero más granuladas cuando se ven a distancia, mientras que los valores positivos hacen que las texturas mipmapped sean más borrosas (incluso de cerca).
Activar el antialiasing temporal (use_taa) aplicará automáticamente un desplazamiento de -0.5 a este valor, mientras que activar FXAA (screen_space_aa) aplicará automáticamente un desplazamiento de -0.25 a este valor. Si tanto TAA como FXAA están activados al mismo tiempo, se aplica un desplazamiento de -0.75 a este valor.
Nota: Si scaling_3d_scale es inferior a 1.0 (exclusivo), texture_mipmap_bias se utiliza para ajustar el sesgo mipmap automático que se calcula internamente en función del factor de escala. La fórmula para esto es log2(scaling_3d_scale) + mipmap_bias.
Para controlar esta propiedad en el viewport raíz, establece el ajuste del proyecto ProjectSettings.rendering/textures/default_filters/texture_mipmap_bias.
If true, the viewport should render its background as transparent.
Note: Due to technical limitations, certain rendering features are disabled when a viewport has a transparent background. This currently applies to screen-space reflections, subsurface scattering, and depth of field.
Si es true, utiliza un filtro rápido de postprocesamiento para hacer que el banding sea significativamente menos visible. Si use_hdr_2d es false, el renderizado 2D no se ve afectado por el debanding a menos que el Environment.background_mode sea Environment.BG_CANVAS. Si use_hdr_2d es true, el debanding solo se aplicará si este es el Viewport raíz y afectará a todo el renderizado 2D y 3D, incluidos los elementos del canvas.
En algunos casos, el debanding puede introducir un patrón de dithering ligeramente perceptible. Se recomienda activar el debanding solo cuando sea realmente necesario, ya que el patrón de dithering hará que las capturas de pantalla comprimidas sin pérdida sean más grandes.
Véase también ProjectSettings.rendering/anti_aliasing/quality/use_debanding y RenderingServer.viewport_set_use_debanding().
Si es true, el renderizado 2D utilizará un framebuffer de formato de alto rango dinámico (HDR) que coincida con la profundidad de bits del framebuffer 3D. Cuando se utiliza el renderizador Forward+ o el de Compatibilidad, este será un framebuffer RGBA16. Cuando se utiliza el renderizador Mobile, será un framebuffer RGB10_A2.
Además, el renderizado 2D tendrá lugar en el espacio de color lineal y se convertirá al espacio sRGB inmediatamente antes de blittear a la pantalla (si el Viewport está adjunto a la pantalla).
En la práctica, esto significa que el resultado final del Viewport no se limitará al rango 0-1 y se podrá utilizar en el renderizado 3D sin ajustes del espacio de color. Esto permite que el renderizado 2D aproveche los efectos que requieren un alto rango dinámico (por ejemplo, el brillo 2D), así como mejora sustancialmente la apariencia de los efectos que requieren gradientes muy detallados.
bool use_occlusion_culling = false 🔗
Si es true, los nodos OccluderInstance3D se podrán utilizar para el culling por oclusión en 3D para este viewport. Para el viewport raíz, en su lugar se debe establecer ProjectSettings.rendering/occlusion_culling/use_occlusion_culling a true.
Nota: Activar el culling por oclusión tiene un coste en la CPU. Sólo activa el culling por oclusión si realmente planeas usarlo, y piensa si tu escena puede realmente beneficiarse del culling por oclusión. Las escenas grandes y abiertas con pocos o ningún objeto que bloquee la vista generalmente no se benefician mucho del culling por oclusión. Las escenas grandes y abiertas generalmente se benefician más del LOD de la malla y los rangos de visibilidad (GeometryInstance3D.visibility_range_begin y GeometryInstance3D.visibility_range_end) en comparación con el culling por oclusión.
Nota: Debido a las limitaciones de memoria, el culling por oclusión no es compatible por defecto en las plantillas de exportación Web. Se puede activar compilando plantillas de exportación Web personalizadas con module_raycast_enabled=yes.
Activa el antialiasing temporal para este viewport. TAA funciona haciendo vibrar la cámara y acumulando las imágenes de los últimos fotogramas renderizados, se utiliza el renderizado de vectores de movimiento para tener en cuenta el movimiento de la cámara y de los objetos.
Nota: La implementación aún no está completa, algunas instancias visuales como las partículas y las mallas skinneadas pueden mostrar artefactos.
Véase también ProjectSettings.rendering/anti_aliasing/quality/use_taa y RenderingServer.viewport_set_use_taa().
Si es true, el viewport utilizará la interfaz XR principal para renderizar la salida XR. Cuando sea aplicable, esto puede resultar en una imagen estereoscópica y el renderizado resultante se enviará a un casco.
El modo de Sombreado de Tasa Variable (VRS) que se utiliza para este viewport. Nota, si el hardware no soporta VRS esta propiedad se ignora.
Textura a usar cuando vrs_mode se establece en VRS_TEXTURE.
La textura debe usar un formato de compresión sin pérdida para que los colores se puedan emparejar con precisión. Las siguientes densidades de VRS se asignan a varios colores, donde los colores más brillantes representan un nivel más bajo de precisión de sombreado:
- 1×1 = rgb(0, 0, 0) - #000000
- 1×2 = rgb(0, 85, 0) - #005500
- 2×1 = rgb(85, 0, 0) - #550000
- 2×2 = rgb(85, 85, 0) - #555500
- 2×4 = rgb(85, 170, 0) - #55aa00
- 4×2 = rgb(170, 85, 0) - #aa5500
- 4×4 = rgb(170, 170, 0) - #aaaa00
- 4×8 = rgb(170, 255, 0) - #aaff00 - No soportado en la mayoría del hardware
- 8×4 = rgb(255, 170, 0) - #ffaa00 - No soportado en la mayoría del hardware
- 8×8 = rgb(255, 255, 0) - #ffff00 - No soportado en la mayoría del hardware
VRSUpdateMode vrs_update_mode = 1 🔗
void set_vrs_update_mode(value: VRSUpdateMode)
VRSUpdateMode get_vrs_update_mode()
Establece el modo de actualización del Sombreado de Tasa Variable (VRS) para el viewport. El VRS requiere que la textura de entrada sea convertida al formato utilizable por el método VRS soportado por el hardware. El modo de actualización define la frecuencia con que esto ocurre. Si la GPU no soporta VRS, o el VRS no está habilitado, esta propiedad es ignorada.
La World2D personalizada que puede ser usada como fuente de entorno 2D.
El World3D personalizado que se puede usar como fuente de entorno 3D.
Descripciones de Métodos
World2D find_world_2d() const 🔗
Devuelve el primer World2D válido para este viewport, buscando en la propiedad world_2d de sí mismo y de cualquier ancestro Viewport.
World3D find_world_3d() const 🔗
Devuelve el primer World3D válido para este viewport, buscando en la propiedad world_3d de sí mismo y de cualquier ancestro Viewport.
AudioListener2D get_audio_listener_2d() const 🔗
Devuelve el oyente de audio 2D activo. Devuelve null si no hay oyentes de audio 2D activos, en cuyo caso la cámara 2D activa será tratada como oyente.
AudioListener3D get_audio_listener_3d() const 🔗
Devuelve el oyente de audio 3D activo. Devuelve null si no hay oyentes de audio 3D activos, en cuyo caso la cámara 3D activa será tratada como oyente.
Camera2D get_camera_2d() const 🔗
Devuelve la cámara 2D actualmente activa. Devuelve null si no hay cámaras activas.
Camera3D get_camera_3d() const 🔗
Devuelve la cámara 3D actualmente activa.
bool get_canvas_cull_mask_bit(layer: int) const 🔗
Devuelve un bit individual en la máscara de capa de renderizado.
Array[Window] get_embedded_subwindows() const 🔗
Devuelve una lista de las Windows embebidas visibles dentro del viewport.
Nota: Las Windows dentro de otros viewports no serán listadas.
Transform2D get_final_transform() const 🔗
Devuelve la transformación del sistema de coordenadas del viewport al sistema de coordenadas del embebedor.
Vector2 get_mouse_position() const 🔗
Devuelve la posición del ratón en este Viewport utilizando el sistema de coordenadas de este Viewport.
float get_oversampling() const 🔗
Devuelve el factor de sobremuestreo del viewport.
PositionalShadowAtlasQuadrantSubdiv get_positional_shadow_atlas_quadrant_subdiv(quadrant: int) const 🔗
Devuelve la subdivisión del cuadrante del atlas de sombras posicionales del cuadrante especificado.
int get_render_info(type: RenderInfoType, info: RenderInfo) 🔗
Devuelve estadísticas de representación del tipo dado.
Transform2D get_screen_transform() const 🔗
Devuelve la transformación de las coordenadas del Viewport a las coordenadas de la pantalla de la ventana del gestor de ventanas que la contiene.
Transform2D get_stretch_transform() const 🔗
Devuelve la transformación de estiramiento 2D calculada automáticamente, teniendo en cuenta los ajustes de estiramiento del Viewport. El valor final se multiplica por Window.content_scale_factor, pero sólo para el viewport raíz. Si este método se llama en un SubViewport (por ejemplo, en un árbol de escena con SubViewportContainer y SubViewport), el factor de escala de la ventana raíz no se aplicará. Usando Transform2D.get_scale() en el valor devuelto, esto puede ser usado para compensar el escalado al hacer zoom en un nodo Camera2D, o para escalar un TextureRect para que sea perfecto en píxeles independientemente del factor de escala calculado automáticamente.
Nota: Debido a cómo funciona el escalado de píxeles, la escala X e Y de la transformación devuelta puede diferir ligeramente, incluso cuando Window.content_scale_aspect se establece en un modo que conserva la relación de aspecto de los píxeles. Si Window.content_scale_aspect es Window.CONTENT_SCALE_ASPECT_IGNORE, la escala X e Y puede diferir significativamente.
ViewportTexture get_texture() const 🔗
Devuelve la textura del viewport.
Nota: Al intentar almacenar la textura actual (por ejemplo, en un archivo), puede que esté completamente negra u obsoleta si se utiliza demasiado pronto, especialmente cuando se utiliza, por ejemplo, en Node._ready(). Para asegurarse de que la textura que obtiene es correcta, puede esperar la señal RenderingServer.frame_post_draw.
func _ready():
await RenderingServer.frame_post_draw
$Viewport.get_texture().get_image().save_png("user://Screenshot.png")
public async override void _Ready()
{
await ToSignal(RenderingServer.Singleton, RenderingServer.SignalName.FramePostDraw);
var viewport = GetNode<Viewport>("Viewport");
viewport.GetTexture().GetImage().SavePng("user://Screenshot.png");
}
Nota: Cuando use_hdr_2d es true, la textura devuelta será una imagen HDR codificada en espacio lineal.
RID get_viewport_rid() const 🔗
Devuelve el RID del viewport del RenderingServer.
Rect2 get_visible_rect() const 🔗
Returns the visible rectangle in global screen coordinates.
void gui_cancel_drag() 🔗
Cancela la operación de arrastre que se inició previamente a través de Control._get_drag_data() o se forzó con Control.force_drag().
Variant gui_get_drag_data() const 🔗
Devuelve los datos de arrastre de la GUI, que fueron previamente devueltos por Control._get_drag_data().
String gui_get_drag_description() const 🔗
Devuelve la descripción legible por humanos de los datos de arrastre.
Control gui_get_focus_owner() const 🔗
Devuelve el Control actualmente enfocado dentro de este viewport. Si no hay ningún Control enfocado, devuelve null.
Control gui_get_hovered_control() const 🔗
Devuelve el Control sobre el que el ratón está actualmente en este viewport. Si ningún Control tiene el cursor, devuelve null.
Típicamente el nodo Control hoja o el nivel más profundo del subárbol que reclama el hover. Esto es muy útil cuando se usa junto con Node.is_ancestor_of() para encontrar si el ratón está dentro de un árbol de control.
bool gui_is_drag_successful() const 🔗
Devuelve true si la operación de arrastre es exitosa.
bool gui_is_dragging() const 🔗
Devuelve true si una operación de arrastre está actualmente en curso y donde la acción de soltar podría ocurrir en este viewport.
Alternativa a Node.NOTIFICATION_DRAG_BEGIN y Node.NOTIFICATION_DRAG_END cuando se prefiere sondear el valor.
void gui_release_focus() 🔗
Quita el foco del Control actualmente enfocado dentro de este viewport. Si ningún Control tiene el foco, no hace nada.
void gui_set_drag_description(description: String) 🔗
Establece la descripción legible por humanos de los datos de arrastre.
bool is_input_handled() const 🔗
Devuelve si el InputEvent actual ha sido manejado. Los eventos de entrada no se manejan hasta que se ha llamado a set_input_as_handled() durante la vida útil de un InputEvent.
Esto se hace normalmente como parte de los métodos de manejo de entrada como Node._input(), Control._gui_input() u otros, así como en los manejadores de señales correspondientes.
Si handle_input_locally se establece en false, este método intentará encontrar el primer viewport padre que esté configurado para manejar la entrada localmente, y devolverá su valor para is_input_handled() en su lugar.
void notify_mouse_entered() 🔗
Informa al Viewport de que el ratón ha entrado en su área. Utiliza esta función antes de enviar un InputEventMouseButton o InputEventMouseMotion al Viewport con push_input(). Véase también notify_mouse_exited().
Nota: En la mayoría de los casos, no es necesario llamar a esta función porque los nodos SubViewport que son hijos de SubViewportContainer son notificados automáticamente. Esto sólo es necesario cuando se interactúa con viewports de forma no predeterminada, por ejemplo, como texturas en TextureRect o con un Area3D que reenvía los eventos de entrada.
void notify_mouse_exited() 🔗
Informa al Viewport de que el ratón ha salido de su área. Utiliza esta función cuando el nodo que muestra el viewport note que el ratón ha salido del área del viewport mostrado. Véase también notify_mouse_entered().
Nota: En la mayoría de los casos, no es necesario llamar a esta función porque los nodos SubViewport que son hijos de SubViewportContainer son notificados automáticamente. Esto sólo es necesario cuando se interactúa con viewports de forma no predeterminada, por ejemplo, como texturas en TextureRect o con un Area3D que reenvía los eventos de entrada.
void push_input(event: InputEvent, in_local_coords: bool = false) 🔗
Activa el event dado en este Viewport. Esto puede ser usado para pasar un InputEvent entre viewports, o para aplicar localmente entradas que fueron enviadas por la red o guardadas en un archivo.
Si in_local_coords es false, la posición del evento está en las coordenadas del incrustador y será convertida a coordenadas del viewport. Si in_local_coords es true, la posición del evento está en coordenadas del viewport.
Aunque este método tiene un propósito similar a Input.parse_input_event(), no reasigna el event especificado basado en los ajustes del proyecto como ProjectSettings.input_devices/pointing/emulate_touch_from_mouse.
Llamar a este método propagará las llamadas a los nodos hijo para los siguientes métodos en el orden dado:
Control._gui_input() para nodos Control
Si un método anterior marca la entrada como manejada vía set_input_as_handled(), cualquier método posterior en esta lista no será llamado.
Si ninguno de los métodos maneja el evento y physics_object_picking es true, el evento es usado para la selección de objetos de física.
void push_text_input(text: String) 🔗
Método auxiliar que llama al método set_text() en el Control actualmente enfocado, siempre que esté definido (por ejemplo, si el Control enfocado es Button o LineEdit).
void push_unhandled_input(event: InputEvent, in_local_coords: bool = false) 🔗
Obsoleto: Use push_input() instead.
Activa el event dado en este Viewport. Esto puede ser usado para pasar un InputEvent entre viewports, o para aplicar localmente entradas que fueron enviadas por la red o guardadas en un archivo.
Si in_local_coords es false, la posición del evento está en las coordenadas del incrustador y será convertida a coordenadas del viewport. Si in_local_coords es true, la posición del evento está en coordenadas del viewport.
Llamar a este método propagará las llamadas a los nodos hijo para los siguientes métodos en el orden dado:
Si un método anterior marca la entrada como manejada vía set_input_as_handled(), cualquier método posterior en esta lista no será llamado.
Si ninguno de los métodos maneja el evento y physics_object_picking es true, el evento es usado para la selección de objetos de física.
Nota: Este método no propaga los eventos de entrada a Windows o SubViewports incrustados.
void set_canvas_cull_mask_bit(layer: int, enable: bool) 🔗
Establece o borra bits individuales en la máscara de la capa de renderizado. Esto simplifica la edición de las capas de este Viewport.
void set_input_as_handled() 🔗
Impide que la entrada se propague más abajo en el SceneTree.
Nota: Esto no afecta a los métodos en Input, sólo a la forma en que se propagan los eventos.
void set_positional_shadow_atlas_quadrant_subdiv(quadrant: int, subdiv: PositionalShadowAtlasQuadrantSubdiv) 🔗
Establece el número de subdivisiones a utilizar en el cuadrante especificado. Un mayor número de subdivisiones permite tener más sombras en la escena a la vez, pero reduce la calidad de las sombras. Una buena práctica es tener cuadrantes con un número variable de subdivisiones y tener el menor número posible de subdivisiones.
void update_mouse_cursor_state() 🔗
Fuerza la actualización instantánea de la visualización basándose en la posición actual del cursor del ratón. Esto incluye la actualización de la forma del cursor del ratón y el envío de las señales necesarias Control.mouse_entered, CollisionObject2D.mouse_entered, CollisionObject3D.mouse_entered y Window.mouse_entered y sus contrapartes mouse_exited.
void warp_mouse(position: Vector2) 🔗
Mueve el puntero del ratón a la posición especificada en este Viewport utilizando el sistema de coordenadas de este Viewport.
Nota: warp_mouse() sólo es compatible con Windows, macOS y Linux. No tiene ningún efecto en Android, iOS y Web.