Viewport
Наследуется от: SubViewport, Window
Абстрактный базовый класс для вьюпортов (viewports). Инкапсулирует рисование и взаимодействие с игровым миром.
Описание
Viewport создает другой вид на экране или подвид внутри другого viewport. Дочерние 2D-узлы будут отображаться на нем, и дочерние 3D-узлы Camera3D также будут визуализироваться на нем.
При желании viewport может иметь свой собственный 2D- или 3D-мир, поэтому он не делится тем, что он рисует, с другими viewport.
Viewports также могут быть выбраны в качестве аудиослушателей, поэтому они генерируют позиционный звук в зависимости от дочерней 2D- или 3D-камеры.
Кроме того, viewports можно назначать разным экранам, если у устройств несколько экранов.
Наконец, viewports также могут вести себя как цели рендеринга, в этом случае они не будут видны, если для рисования не используется связанная текстура.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
physics_interpolation_mode |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Методы
Сигналы
gui_focus_changed(node: Control) 🔗
Выдается, когда узел управления захватывает фокус клавиатуры.
Примечание: Потеря фокуса узлом управления не приводит к выдаче этого сигнала.
size_changed() 🔗
Выдается при изменении размера области просмотра, будь то изменение размера окна или каким-либо другим способом.
Перечисления
enum PositionalShadowAtlasQuadrantSubdiv: 🔗
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED = 0
Этот квадрант не будет использоваться.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_1 = 1
Этот квадрант будет использоваться только одной картой теней.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_4 = 2
Этот квадрант будет разделен на 4 части и использован для 4 карт теней.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_16 = 3
Этот квадрант будет разделен на 16 частей и будет использоваться для 16 карт теней.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_64 = 4
Этот квадрант будет разделен на 64 части и будет использоваться для 64 карт теней.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_256 = 5
Этот квадрант будет разделен на 256 частей и использован до 256 карт теней. Если positional_shadow_atlas_size не очень высок, тени в этом квадранте будут иметь очень низкое разрешение.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_1024 = 6
Этот квадрант будет разделен на 1024 части и использован до 1024 карт теней. Если positional_shadow_atlas_size не очень высок, тени в этом квадранте будут иметь очень низкое разрешение.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_MAX = 7
Представляет размер перечисления PositionalShadowAtlasQuadrantSubdiv.
enum Scaling3DMode: 🔗
Scaling3DMode SCALING_3D_MODE_BILINEAR = 0
Использовать билинейное масштабирование для 3D-буфера области просмотра. Величину масштабирования можно задать с помощью scaling_3d_scale. Значения меньше 1.0 приведут к недостаточной выборке, а значения больше 1.0 приведут к избыточной выборке. Значение 1.0 отключает масштабирование.
Scaling3DMode SCALING_3D_MODE_FSR = 1
Используйте масштабирование AMD FidelityFX Super Resolution 1.0 для 3D-буфера области просмотра. Величину масштабирования можно задать с помощью scaling_3d_scale. Значения меньше 1.0 приведут к масштабированию области просмотра с помощью FSR. Значения больше 1.0 не поддерживаются, и вместо этого будет использоваться билинейная понижающая дискретизация. Значение 1.0 отключает масштабирование.
Scaling3DMode SCALING_3D_MODE_FSR2 = 2
Используйте масштабирование AMD FidelityFX Super Resolution 2.2 для 3D-буфера области просмотра. Величину масштабирования можно задать с помощью scaling_3d_scale. Значения меньше 1.0 приведут к масштабированию области просмотра с использованием FSR2. Значения больше 1.0 не поддерживаются, и вместо этого будет использоваться билинейная понижающая дискретизация. Значение 1.0 будет использовать FSR2 при собственном разрешении в качестве решения TAA.
Scaling3DMode SCALING_3D_MODE_METALFX_SPATIAL = 3
Используйте MetalFX spatial upscaler для 3D-буфера области просмотра.
Величину масштабирования можно задать с помощью scaling_3d_scale.
Значения меньше 1.0 приведут к масштабированию области просмотра с помощью MetalFX. Значения больше 1.0 не поддерживаются, и вместо них будет использоваться билинейная понижающая дискретизация. Значение 1.0 отключает масштабирование.
Дополнительная информация: MetalFX.
Примечание: Поддерживается только при использовании драйвера рендеринга Metal, что ограничивает этот режим масштабирования macOS и iOS.
Scaling3DMode SCALING_3D_MODE_METALFX_TEMPORAL = 4
Используйте MetalFX temporal upscaler для 3D-буфера области просмотра.
Величину масштабирования можно задать с помощью scaling_3d_scale. Чтобы определить минимальный масштаб ввода, используйте метод RenderingDevice.limit_get() с RenderingDevice.LIMIT_METALFX_TEMPORAL_SCALER_MIN_SCALE.
Значения меньше 1.0 приведут к масштабированию области просмотра с помощью MetalFX. Значения больше 1.0 не поддерживаются, и вместо этого будет использоваться билинейная понижающая дискретизация. Значение 1.0 будет использовать MetalFX в собственном разрешении в качестве решения TAA.
Дополнительная информация: MetalFX.
Примечание: Поддерживается только при использовании драйвера рендеринга Metal, что ограничивает этот режим масштабирования macOS и iOS.
Scaling3DMode SCALING_3D_MODE_MAX = 5
Представляет размер перечисления Scaling3DMode.
enum MSAA: 🔗
MSAA MSAA_DISABLED = 0
Режим сглаживания Multisample отключен. Это значение по умолчанию, а также самая быстрая настройка.
MSAA MSAA_2X = 1
Используйте 2× Multisample Antialiasing. Это имеет умеренные затраты производительности. Это помогает заметно уменьшить алиасинг, но 4× MSAA все равно выглядит значительно лучше.
MSAA MSAA_4X = 2
Использовать 4× Multisample Antialiasing. Это значительно снижает производительность и, как правило, является хорошим компромиссом между производительностью и качеством.
MSAA MSAA_8X = 3
Используйте 8× Multisample Antialiasing. Это очень дорого обходится производительности. Разница между 4× и 8× MSAA не всегда может быть видна в реальных игровых условиях. Вероятно, не поддерживается на слабом и старом оборудовании.
MSAA MSAA_MAX = 4
Представляет размер перечисления MSAA.
enum AnisotropicFiltering: 🔗
AnisotropicFiltering ANISOTROPY_DISABLED = 0
Анизотропная фильтрация отключена.
AnisotropicFiltering ANISOTROPY_2X = 1
Используйте 2-кратную анизотропную фильтрацию.
AnisotropicFiltering ANISOTROPY_4X = 2
Использовать 4× анизотропную фильтрацию. Это значение по умолчанию.
AnisotropicFiltering ANISOTROPY_8X = 3
Используйте 8-кратную анизотропную фильтрацию.
AnisotropicFiltering ANISOTROPY_16X = 4
Используйте 16-кратную анизотропную фильтрацию.
AnisotropicFiltering ANISOTROPY_MAX = 5
Представляет размер перечисления AnisotropicFiltering.
enum ScreenSpaceAA: 🔗
ScreenSpaceAA SCREEN_SPACE_AA_DISABLED = 0
Не выполняйте сглаживание при полноэкранной постобработке.
ScreenSpaceAA SCREEN_SPACE_AA_FXAA = 1
Использует быстрое приблизительное сглаживание. FXAA — популярный метод сглаживания в экранном пространстве, который быстр, но делает изображение размытым, особенно при низком разрешении. Он может работать относительно хорошо при больших разрешениях, таких как 1440p и 4K.
ScreenSpaceAA SCREEN_SPACE_AA_SMAA = 2
Использовать субпиксельное морфологическое сглаживание (SMAA). SMAA может давать более чёткие результаты, чем FXAA, но требует несколько больших затрат производительности.
ScreenSpaceAA SCREEN_SPACE_AA_MAX = 3
Представляет размер перечисления ScreenSpaceAA.
enum RenderInfo: 🔗
RenderInfo RENDER_INFO_OBJECTS_IN_FRAME = 0
Количество объектов в кадре.
RenderInfo RENDER_INFO_PRIMITIVES_IN_FRAME = 1
Количество вершин в кадре.
RenderInfo RENDER_INFO_DRAW_CALLS_IN_FRAME = 2
Количество вызовов отрисовки в кадре.
RenderInfo RENDER_INFO_MAX = 3
Представляет размер перечисления RenderInfo.
enum RenderInfoType: 🔗
RenderInfoType RENDER_INFO_TYPE_VISIBLE = 0
Видимый проход рендеринга (без теней).
RenderInfoType RENDER_INFO_TYPE_SHADOW = 1
Проход рендеринга теней. Объекты будут рендериться несколько раз в зависимости от количества источников света с тенями и количества направленных теневых разделений.
RenderInfoType RENDER_INFO_TYPE_CANVAS = 2
Рендеринг элемента Canvas (холст). Сюда входит весь 2D-рендеринг.
RenderInfoType RENDER_INFO_TYPE_MAX = 3
Представляет размер перечисления RenderInfoType.
enum DebugDraw: 🔗
DebugDraw DEBUG_DRAW_DISABLED = 0
Объекты отображаются нормально.
DebugDraw DEBUG_DRAW_UNSHADED = 1
Объекты отображаются без световой информации.
DebugDraw DEBUG_DRAW_LIGHTING = 2
Объекты отображаются без текстур и только с информацией об освещении.
Примечание: При использовании этого режима отладки рисования, пользовательские шейдеры игнорируются, поскольку все материалы в сцене временно используют отладочный материал. Это означает, что результат функций пользовательских шейдеров (например, смещение вершин) больше не будет виден при использовании этого режима отладки рисования.
DebugDraw DEBUG_DRAW_OVERDRAW = 3
Объекты отображаются полупрозрачными с аддитивным смешиванием, так что вы можете видеть, где они рисуются друг над другом. Более высокая перерисовка означает, что вы тратите производительность на рисование пикселей, которые скрыты за другими.
Примечание: При использовании этого режима отладки отрисовки, пользовательские шейдеры игнорируются, поскольку все материалы в сцене временно используют отладочный материал. Это означает, что результат функций пользовательских шейдеров (например, смещение вершин) больше не будет виден при использовании этого режима отладки отрисовки.
DebugDraw DEBUG_DRAW_WIREFRAME = 4
Объекты отображаются как каркасные модели.
Примечание: RenderingServer.set_debug_generate_wireframes() необходимо вызывать перед загрузкой любых сеток, чтобы каркасы были видны при использовании рендерера совместимости.
DebugDraw DEBUG_DRAW_NORMAL_BUFFER = 5
Объекты отображаются без информации об освещении, а их текстуры заменяются обычным отображением.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_VOXEL_GI_ALBEDO = 6
Объекты отображаются только со значением альбедо из VoxelGI. Требуется как минимум один видимый узел VoxelGI, который был запечен для получения видимого эффекта.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_VOXEL_GI_LIGHTING = 7
Объекты отображаются только со значением освещения из VoxelGI. Требуется как минимум один видимый узел VoxelGI, который был запечен для получения видимого эффекта.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_VOXEL_GI_EMISSION = 8
Объекты отображаются только с цветом излучения (emission) от VoxelGI. Требуется как минимум один видимый узел VoxelGI, который был запечен для получения видимого эффекта.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_SHADOW_ATLAS = 9
Рисует атлас теней, в котором хранятся тени от OmniLight3D-ов и SpotLight3D-ов в верхнем левом квадранте Viewport.
DebugDraw DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS = 10
Рисует атлас теней, в котором хранятся тени от DirectionalLight3D в верхнем левом квадранте Viewport.
DebugDraw DEBUG_DRAW_SCENE_LUMINANCE = 11
Рисует буфер яркости сцены (если доступен) в верхнем левом квадранте Viewport.
Примечание: Поддерживается только при использовании методов рендеринга Forward+ или Mobile.
DebugDraw DEBUG_DRAW_SSAO = 12
Рисует текстуру экранного пространства Ambient Occlusion вместо сцены, чтобы вы могли четко видеть, как она влияет на объекты. Чтобы этот режим отображения работал, необходимо установить Environment.ssao_enabled в вашем WorldEnvironment.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_SSIL = 13
Рисует текстуру непрямого освещения экранного пространства вместо сцены, чтобы вы могли четко видеть, как она влияет на объекты. Чтобы этот режим отображения работал, необходимо установить Environment.ssil_enabled в WorldEnvironment.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_PSSM_SPLITS = 14
Окрашивает каждое разделение PSSM для DirectionalLight3D в сцене в другой цвет, чтобы вы могли видеть, где находятся разделения. По порядку (от самого близкого к самому дальнему от камеры) они окрашены в красный, зеленый, синий и желтый цвет.
Примечание: При использовании этого режима отладки отрисовки, пользовательские шейдеры игнорируются, поскольку все материалы в сцене временно используют отладочный материал. Это означает, что результат функций пользовательских шейдеров (например, смещение вершин) больше не будет виден при использовании этого режима отладки отрисовки.
Примечание: Поддерживается только при использовании методов рендеринга Forward+ или Mobile.
DebugDraw DEBUG_DRAW_DECAL_ATLAS = 15
Рисует атлас декалей, используемый Decal-ями и текстурами проектора света в верхнем левом квадранте Viewport.
Примечание: Поддерживается только при использовании методов рендеринга Forward+ или Mobile.
DebugDraw DEBUG_DRAW_SDFGI = 16
Рисует каскады, используемые для визуализации глобального освещения поля расстояний со знаком (SDFGI).
Ничего не делает, если Environment.sdfgi_enabled текущей среды имеет значение false.
Примечание: Поддерживается только при использовании метода визуализации Forward+.
DebugDraw DEBUG_DRAW_SDFGI_PROBES = 17
Отображает зонды, используемые для глобального освещения с учетом знаковых расстояний (SDFGI).
В редакторе щелчок левой кнопкой мыши по зонду отобразит дополнительные яркие точки, показывающие информацию о его перекрытии. Белая точка означает, что свет в точке вообще не перекрыт, а красная точка означает, что свет полностью перекрыт. Возможны промежуточные значения.
Ничего не делает, если параметр Environment.sdfgi_enabled текущей среды имеет значение false.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_GI_BUFFER = 18
Рисует буфер, используемый для глобального освещения из VoxelGI или SDFGI. Требует включения VoxelGI (по крайней мере одного видимого запеченного узла VoxelGI) или SDFGI (Environment.sdfgi_enabled) для видимого эффекта.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_DISABLE_LOD = 19
Рисует все объекты с наивысшим полигоном независимо от их расстояния от камеры. Низкий уровень детализации (LOD) не применяется.
DebugDraw DEBUG_DRAW_CLUSTER_OMNI_LIGHTS = 20
Рисует кластер, используемый узлами OmniLight3D для оптимизации рендеринга света.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_CLUSTER_SPOT_LIGHTS = 21
Рисует кластер, используемый узлами SpotLight3D для оптимизации рендеринга света.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_CLUSTER_DECALS = 22
Рисует кластер, используемый узлами Decal для оптимизации рендеринга декалей.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_CLUSTER_REFLECTION_PROBES = 23
Рисует кластер, используемый узлами ReflectionProbe для оптимизации зондов отражения.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_OCCLUDERS = 24
Рисует буфер, используемый для отбраковки окклюзии (occlusion culling).
Примечание: Поддерживается только при использовании методов рендеринга Forward+ или Mobile.
DebugDraw DEBUG_DRAW_MOTION_VECTORS = 25
Рисует векторные линии на области просмотра, чтобы обозначить движение пикселей между кадрами.
Примечание: Поддерживается только при использовании метода рендеринга Forward+.
DebugDraw DEBUG_DRAW_INTERNAL_BUFFER = 26
Рисует внутренний буфер разрешения сцены в линейном цветовом пространстве перед применением тональной компрессии или постобработки.
Примечание: Поддерживается только при использовании методов рендеринга Forward+ или Mobile.
enum DefaultCanvasItemTextureFilter: 🔗
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST = 0
Фильтр текстуры считывает только ближайший пиксель. Это делает текстуру пикселизированной вблизи и зернистой на расстоянии (из-за того, что mip-карты не сэмплируются).
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR = 1
Фильтр текстуры смешивает ближайшие 4 пикселя. Это делает текстуру гладкой вблизи и зернистой на расстоянии (из-за того, что mip-карты не сэмплируются).
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 2
Фильтр текстуры смешивает ближайшие 4 пикселя и ближайшие 2 mip-карты (или использует ближайшую mip-карту, если ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter имеет значение true). Это делает текстуру гладкой вблизи и гладкой на расстоянии.
Используйте это для текстур непиксельной графики, которые можно просматривать в низком масштабе (например, из-за масштабирования Camera2D или масштабирования спрайтов), поскольку mip-карты важны для сглаживания пикселей, которые меньше пикселей на экране.
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3
Фильтр текстуры считывает данные с ближайшего пикселя и смешивает данные между двумя ближайшими mip-картами (или использует ближайшую mip-карту, если ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter имеет значение true). Это делает текстуру пикселизированной вблизи и гладкой на расстоянии.
Используйте это для текстур, не являющихся пиксельным искусством, которые можно просматривать в низком масштабе (например, из-за масштабирования Camera2D или масштабирования спрайтов), поскольку mip-карты важны для сглаживания пикселей, которые меньше пикселей на экране.
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_MAX = 4
Представляет размер перечисления DefaultCanvasItemTextureFilter.
enum DefaultCanvasItemTextureRepeat: 🔗
DefaultCanvasItemTextureRepeat DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_DISABLED = 0
Отключает повторение текстур. Вместо этого при считывании UV за пределами диапазона 0-1 значение будет прижато к краю текстуры, что приведет к растянутому виду границ текстуры.
DefaultCanvasItemTextureRepeat DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_ENABLED = 1
Позволяет текстуре повторяться, когда координаты UV выходят за пределы диапазона 0-1. При использовании одного из режимов линейной фильтрации это может привести к появлению артефактов на краях текстуры, когда сэмплер фильтрует края текстуры.
DefaultCanvasItemTextureRepeat DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MIRROR = 2
При повторении переворачивайте текстуру так, чтобы края совпадали, а не резко менялись.
DefaultCanvasItemTextureRepeat DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MAX = 3
Представляет размер перечисления DefaultCanvasItemTextureRepeat.
enum SDFOversize: 🔗
SDFOversize SDF_OVERSIZE_100_PERCENT = 0
Поле расстояния со знаком охватывает только собственный прямоугольник области просмотра.
SDFOversize SDF_OVERSIZE_120_PERCENT = 1
Поле расстояния со знаком расширяется, охватывая 20% размера области просмотра вокруг границ.
SDFOversize SDF_OVERSIZE_150_PERCENT = 2
Поле расстояния со знаком расширяется, охватывая 50% размера области просмотра вокруг границ.
SDFOversize SDF_OVERSIZE_200_PERCENT = 3
Поле расстояния со знаком расширяется, охватывая 100% (в два раза) размера области просмотра вокруг границ.
SDFOversize SDF_OVERSIZE_MAX = 4
Представляет размер перечисления SDFOversize.
enum SDFScale: 🔗
SDFScale SDF_SCALE_100_PERCENT = 0
Поле знакового расстояния отображается в полном разрешении.
SDFScale SDF_SCALE_50_PERCENT = 1
Поле знакового расстояния отображается с разрешением, равным половине разрешения этой области просмотра.
SDFScale SDF_SCALE_25_PERCENT = 2
Поле знакового расстояния отображается с разрешением, равным четверти разрешения этой области просмотра.
SDFScale SDF_SCALE_MAX = 3
Представляет размер перечисления SDFScale.
enum VRSMode: 🔗
VRSMode VRS_DISABLED = 0
Функция затенения с переменной скоростью (VRS) отключена.
VRSMode VRS_TEXTURE = 1
Variable Rate Shading использует текстуру. Обратите внимание, для стереоскопического используйте атлас текстур с текстурой для каждого вида.
VRSMode VRS_XR = 2
Текстура Variable Rate Shading предоставляется первичным XRInterface.
VRSMode VRS_MAX = 3
Представляет размер перечисления VRSMode.
enum VRSUpdateMode: 🔗
VRSUpdateMode VRS_UPDATE_DISABLED = 0
Входная текстура для затенения с переменной скоростью не будет обработана.
VRSUpdateMode VRS_UPDATE_ONCE = 1
Входная текстура для затенения с переменной скоростью будет обработана один раз.
VRSUpdateMode VRS_UPDATE_ALWAYS = 2
Входная текстура для затенения с переменной скоростью будет обрабатываться в каждом кадре.
VRSUpdateMode VRS_UPDATE_MAX = 3
Представляет размер перечисления VRSUpdateMode.
Описания свойств
AnisotropicFiltering anisotropic_filtering_level = 2 🔗
void set_anisotropic_filtering_level(value: AnisotropicFiltering)
AnisotropicFiltering get_anisotropic_filtering_level()
Устанавливает максимальное количество выборок при использовании анизотропной фильтрации текстур (как степень двойки). Большее количество выборок приведет к более резким текстурам под косыми углами, но это более затратно для вычисления. Значение 0 принудительно отключает анизотропную фильтрацию, даже для материалов, где она включена.
Уровень анизотропной фильтрации также влияет на декали и проекторы света, если они настроены на использование анизотропной фильтрации. См. ProjectSettings.rendering/textures/decals/filter и ProjectSettings.rendering/textures/light_projectors/filter.
Примечание: В 3D, чтобы эта настройка имела эффект, установите BaseMaterial3D.texture_filter на BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC или BaseMaterial3D.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC для материалов.
Примечание: В 2D, чтобы эта настройка имела эффект, установите CanvasItem.texture_filter на CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC или CanvasItem.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC на узле CanvasItem, отображающем текстуру (или в CanvasTexture). Однако анизотропная фильтрация редко бывает полезна в 2D, поэтому включайте ее для текстур в 2D только в том случае, если это создает значимую визуальную разницу.
bool audio_listener_enable_2d = false 🔗
Если true, область просмотра будет обрабатывать 2D-аудиопотоки.
bool audio_listener_enable_3d = false 🔗
Если true, область просмотра будет обрабатывать 3D-аудиопотоки.
int canvas_cull_mask = 4294967295 🔗
Слои рендеринга, в которых этот Viewport отображает узлы CanvasItem.
Примечание: CanvasItem не наследует слои видимости своих родительских элементов. Подробности см. в описании CanvasItem.visibility_layer.
DefaultCanvasItemTextureFilter canvas_item_default_texture_filter = 1 🔗
void set_default_canvas_item_texture_filter(value: DefaultCanvasItemTextureFilter)
DefaultCanvasItemTextureFilter get_default_canvas_item_texture_filter()
Режим фильтрации по умолчанию, используемый узлами CanvasItem в этом окне просмотра.
DefaultCanvasItemTextureRepeat canvas_item_default_texture_repeat = 0 🔗
void set_default_canvas_item_texture_repeat(value: DefaultCanvasItemTextureRepeat)
DefaultCanvasItemTextureRepeat get_default_canvas_item_texture_repeat()
Режим повтора по умолчанию, используемый узлами CanvasItem в этом окне просмотра.
Transform2D canvas_transform 🔗
void set_canvas_transform(value: Transform2D)
Transform2D get_canvas_transform()
Преобразование холста вьюпорта, полезное для изменения положения на экране всех дочерних CanvasItem. Это относительно глобального преобразования холста вьюпорта.
Режим наложения для тестирования визуализированной геометрии в целях отладки.
Отключить 3D-рендеринг (но сохранить 2D-рендеринг).
Определяет, насколько резким будет увеличенное изображение при использовании режима увеличения FSR. Резкость уменьшается вдвое с каждым целым числом. Значения варьируются от 0,0 (максимальная резкость) до 2,0. Значения выше 2,0 не будут иметь видимого значения.
Чтобы управлять этим свойством в корневом окне просмотра, задайте настройку проекта ProjectSettings.rendering/scaling_3d/fsr_sharpness.
Transform2D global_canvas_transform 🔗
void set_global_canvas_transform(value: Transform2D)
Transform2D get_global_canvas_transform()
Глобальное преобразование холста вьюпорта. Преобразование холста относительно этого.
bool gui_disable_input = false 🔗
Если true, область просмотра не будет получать входные (Input) события.
Минимальное расстояние, на которое должен переместиться курсор мыши при нажатии, прежде чем начнется операция перетаскивания.
bool gui_embed_subwindows = false 🔗
Если true, подокна (всплывающие окна и диалоги) будут встроены в окно приложения как узлы, подобные элементам управления. Если false, они будут отображаться как отдельные окна, управляемые операционной системой.
bool gui_snap_controls_to_pixels = true 🔗
Если true, элементы управления графическим интерфейсом в области просмотра будут располагаться идеально по пикселям.
bool handle_input_locally = true 🔗
Если true, эта область просмотра будет отмечать входящие события ввода как обработанные ею самой. Если false, это будет сделано первой родительской областью просмотра, которая настроена на локальную обработку ввода.
SubViewportContainer автоматически установит это свойство в false для Viewport, содержащегося внутри него.
См. также set_input_as_handled() и is_input_handled().
float mesh_lod_threshold = 1.0 🔗
Автоматическое смещение LOD для использования сеток, визуализируемых в Viewport (аналогично ReflectionProbe.mesh_lod_threshold). Более высокие значения будут использовать менее подробные версии сеток, которые имеют сгенерированные вариации LOD. Если установлено значение 0.0, автоматический LOD отключен. Увеличьте mesh_lod_threshold, чтобы повысить производительность за счет детализации геометрии.
Чтобы управлять этим свойством в корневом viewport, задайте настройку проекта ProjectSettings.rendering/mesh_lod/lod_change/threshold_pixels.
Примечание: mesh_lod_threshold не влияет на диапазоны видимости GeometryInstance3D (также известные как «ручной» LOD или иерархический LOD).
Режим сглаживания с несколькими выборками для рендеринга 2D/Canvas. Более высокое число приводит к более гладким краям за счет значительного ухудшения производительности. Значение MSAA_2X или MSAA_4X является наилучшим, если только вы не нацелены на очень высокопроизводительные системы. Это не влияет на сглаживание, вызванное шейдером, или сглаживание текстур.
См. также ProjectSettings.rendering/anti_aliasing/quality/msaa_2d и RenderingServer.viewport_set_msaa_2d().
Режим сглаживания мультисэмпла для 3D-рендеринга. Более высокое число приводит к более гладким краям за счет значительного ухудшения производительности. Значение MSAA_2X или MSAA_4X является лучшим, если только вы не нацелены на очень высокопроизводительные системы. См. также билинейное масштабирование 3D scaling_3d_mode для суперсэмплинга, которое обеспечивает более высокое качество, но гораздо более затратно. Это не влияет на сглаживание, вызванное шейдером, или сглаживание текстур.
См. также ProjectSettings.rendering/anti_aliasing/quality/msaa_3d и RenderingServer.viewport_set_msaa_3d().
Если true и выполняется одно из следующих условий: установлены SubViewport.size_2d_override_stretch и SubViewport.size_2d_override, установлен Window.content_scale_factor и включено масштабирование, установлен oversampling_override, включены передискретизация шрифта и DPITexture.
float oversampling_override = 0.0 🔗
Если значение больше нуля, это значение используется как коэффициент передискретизации шрифта, в противном случае передискретизация равна масштабу области просмотра.
Если true, область просмотра будет использовать уникальную копию World3D, определенную в world_3d.
bool physics_object_picking = false 🔗
Если true, объекты, отображаемые областью просмотра, становятся предметами процесса выбора мышью.
Примечание: Количество одновременно выбираемых объектов ограничено 64, и они выбираются в неопределенном порядке, который может быть разным в каждом процессе выбора.
bool physics_object_picking_first_only = false 🔗
void set_physics_object_picking_first_only(value: bool)
bool get_physics_object_picking_first_only()
Если true, сигнал input_event будет отправлен только одному физическому объекту в процессе выбора мыши. Если вы хотите получить только верхний объект, вы также должны включить physics_object_picking_sort.
Если false, сигнал input_event будет отправлен всем физическим объектам в процессе выбора мыши.
Это применимо только к выбору объекта 2D CanvasItem.
bool physics_object_picking_sort = false 🔗
Если true, объекты получают события выбора мыши, отсортированные в первую очередь по их CanvasItem.z_index и во вторую очередь по их положению в дереве сцены. Если false, порядок не определен.
Примечание: Этот параметр отключен по умолчанию из-за его потенциально дорогостоящих вычислительных затрат.
Примечание: Сортировка происходит после выбора выбираемых объектов. Из-за ограничения в 64 одновременно выбираемых объекта не гарантируется, что объект с наивысшим CanvasItem.z_index получит событие выбора.
bool positional_shadow_atlas_16_bits = true 🔗
Используйте 16 бит для карты глубины тени omni/spot. Включение этого параметра приводит к снижению точности теней и может привести к появлению акне в тенях, но может привести к повышению производительности на некоторых устройствах.
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
Величина подразделения первого квадранта на теневом атласе.
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
Величина подразделения второго квадранта на теневом атласе.
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
Величина подразделения третьего квадранта на теневом атласе.
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
Величина подразделения четвертого квадранта на теневом атласе.
int positional_shadow_atlas_size = 2048 🔗
Разрешение теневого атласа (используется для всенаправленного и точечного освещения). Значение округляется до ближайшей степени 2.
Примечание: Если установлено значение 0, позиционные тени вообще не будут видны. Это может значительно повысить производительность на слабых системах за счет снижения нагрузки как на ЦП, так и на ГП (поскольку для отрисовки сцены без теней требуется меньше вызовов отрисовки).
Scaling3DMode scaling_3d_mode = 0 🔗
void set_scaling_3d_mode(value: Scaling3DMode)
Scaling3DMode get_scaling_3d_mode()
Устанавливает режим масштабирования 3D. Билинейный масштаб рендерит с разным разрешением для либо недостаточной, либо избыточной выборки области просмотра. FidelityFX Super Resolution 1.0, сокращенно FSR, — это технология масштабирования, которая создает высококачественные изображения с высокой частотой кадров с помощью пространственно-ориентированного алгоритма масштабирования. FSR немного дороже билинейного, но обеспечивает значительно более высокое качество изображения. FSR следует использовать там, где это возможно.
Чтобы управлять этим свойством в корневой области просмотра, задайте настройку проекта ProjectSettings.rendering/scaling_3d/mode.
float scaling_3d_scale = 1.0 🔗
Масштабирует буфер 3D-рендеринга на основе размера области просмотра, использует фильтр изображения, указанный в ProjectSettings.rendering/scaling_3d/mode, для масштабирования выходного изображения до полного размера области просмотра. Значения ниже 1.0 можно использовать для ускорения 3D-рендеринга за счет качества (недостаточная выборка). Значения выше 1.0 допустимы только для билинейного режима и могут использоваться для улучшения качества 3D-рендеринга за счет высокой производительности (суперсэмплинг). См. также ProjectSettings.rendering/anti_aliasing/quality/msaa_3d для сглаживания с несколькими выборками, которое значительно дешевле, но сглаживает только края полигонов.
При использовании масштабирования FSR AMD рекомендует предоставлять пользователям следующие значения в качестве предустановленных параметров «Ультра качество: 0,77», «Качество: 0,67», «Сбалансированное: 0,59», «Производительность: 0,5» вместо предоставления всего масштаба.
Чтобы управлять этим свойством в корневом окне просмотра, задайте настройку проекта ProjectSettings.rendering/scaling_3d/scale.
ScreenSpaceAA screen_space_aa = 0 🔗
void set_screen_space_aa(value: ScreenSpaceAA)
ScreenSpaceAA get_screen_space_aa()
Устанавливает используемый метод сглаживания экранного пространства. Сглаживание экранного пространства работает путем выборочного размывания краев в шейдере постобработки. Оно отличается от MSAA, который берет несколько образцов покрытия при рендеринге объектов. Методы сглаживания экранного пространства обычно быстрее, чем MSAA, и сглаживают зеркальное сглаживание, но, как правило, делают сцены размытыми.
См. также ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa и RenderingServer.viewport_set_screen_space_aa().
SDFOversize sdf_oversize = 1 🔗
void set_sdf_oversize(value: SDFOversize)
SDFOversize get_sdf_oversize()
Управляет тем, какая часть исходного размера области просмотра должна быть покрыта 2D-полем расстояния со знаком. Этот SDF может быть выбран в шейдерах CanvasItem и также используется для столкновения GPUParticles2D. Более высокие значения позволяют учитывать части окклюдеров, расположенных за пределами области просмотра, в сгенерированном поле расстояния со знаком, за счет производительности. Если вы заметили, что частицы падают через LightOccluder2D, когда окклюдеры покидают область просмотра, увеличьте этот параметр.
Процент добавляется на каждой оси и с обеих сторон. Например, при значении по умолчанию SDF_OVERSIZE_120_PERCENT поле расстояния со знаком будет покрывать 20% размера области просмотра за пределами области просмотра с каждой стороны (сверху, справа, снизу, слева).
Масштаб разрешения для использования в 2D-поле расстояний со знаком. Более высокие значения приводят к более точному и стабильному полю расстояний со знаком при движении камеры, за счет производительности.
bool snap_2d_transforms_to_pixel = false 🔗
Если true, узлы CanvasItem будут внутренне привязаны к полным пикселям. Их положение все еще может быть субпиксельным, но десятичные знаки не будут иметь эффекта. Это может привести к более четкому виду за счет менее плавного движения, особенно если включено сглаживание Camera2D.
bool snap_2d_vertices_to_pixel = false 🔗
Если true, вершины узлов CanvasItem будут привязаны к полным пикселям. Влияет только на конечные положения вершин, а не на преобразования. Это может привести к более четкому виду за счет менее плавного движения, особенно если включено сглаживание Camera2D.
float texture_mipmap_bias = 0.0 🔗
Влияет на окончательную резкость текстуры, считывая с более низкой или более высокой mip-карты (также называется «смещением уровня детализации текстуры»). Отрицательные значения делают текстуры с mip-картой более резкими, но более зернистыми при просмотре на расстоянии, в то время как положительные значения делают текстуры с mip-картой более размытыми (даже при просмотре вблизи).
Включение временного сглаживания (use_taa) автоматически применит смещение -0.5 к этому значению, а включение FXAA (screen_space_aa) автоматически применит смещение -0.25 к этому значению. Если TAA и FXAA включены одновременно, к этому значению применяется смещение -0.75.
Примечание: Если scaling_3d_scale ниже 1.0 (исключительно), texture_mipmap_bias используется для настройки автоматического смещения mipmap, которое вычисляется внутренне на основе коэффициента масштабирования. Формула для этого: log2(scaling_3d_scale) + mipmap_bias.
Чтобы управлять этим свойством в корневом окне просмотра, задайте настройку проекта ProjectSettings.rendering/textures/default_filters/texture_mipmap_bias.
Если true, то фон окна просмотра должен быть прозрачным.
Примечание: Из-за технических ограничений некоторые функции рендеринга отключаются, когда окно просмотра имеет прозрачный фон. В настоящее время это относится к отражениям в экранном пространстве, рассеиванию под поверхностью и глубине резкости (DOF).
При использовании рендереров Mobile или Forward+ установите параметр use_debanding, чтобы включить или отключить функцию устранения полос в этом Viewport. Если use_hdr_2d имеет значение false, 2D-рендеринг не затрагивается устранением полос, если только Environment.background_mode не имеет значения Environment.BG_CANVAS. Если use_hdr_2d имеет значение true, устранение полос будет применяться только в том случае, если это корневой Viewport, и повлияет на весь 2D и 3D рендеринг, включая элементы холста.
Параметр use_debanding не оказывает никакого эффекта при использовании метода рендеринга Compatibility. Мобильный рендерер также может использовать сглаживание материалов, которое можно установить с помощью RenderingServer.material_set_use_debanding() или настроить с помощью ProjectSettings.rendering/anti_aliasing/quality/use_debanding.
См. также ProjectSettings.rendering/anti_aliasing/quality/use_debanding, RenderingServer.material_set_use_debanding() и RenderingServer.viewport_set_use_debanding().
Если true, 2D-рендеринг будет использовать буфер кадров в формате RGBA16 с высоким динамическим диапазоном (HDR). Кроме того, 2D-рендеринг будет выполняться на линейных значениях и будет преобразован с использованием соответствующей функции преобразования непосредственно перед выводом на экран (если область просмотра подключена к экрану).
На практике это означает, что конечный результат области просмотра не будет ограничен диапазоном 0-1 и может использоваться в 3D-рендеринге без корректировки цветового кодирования. Это позволяет 2D-рендерингу использовать преимущества эффектов, требующих высокого динамического диапазона (например, 2D-свечение), а также существенно улучшает внешний вид эффектов, требующих высокодетализированных градиентов.
bool use_occlusion_culling = false 🔗
Если true, узлы OccluderInstance3D будут использоваться для отсечения окклюзии в 3D для этого окна просмотра. Для корневого окна просмотра ProjectSettings.rendering/occlusion_culling/use_occlusion_culling вместо этого должно быть установлено на true.
Примечание: Включение отсечения окклюзии имеет затраты на ЦП. Включайте отсечение окклюзии только в том случае, если вы действительно планируете его использовать, и подумайте, может ли ваша сцена действительно выиграть от отсечения окклюзии. Большие открытые сцены с небольшим количеством или без объектов, блокирующих вид, как правило, не получат большой выгоды от отсечения окклюзии. Большие открытые сцены, как правило, больше выигрывают от LOD сетки и диапазонов видимости (GeometryInstance3D.visibility_range_begin и GeometryInstance3D.visibility_range_end) по сравнению с отсечением окклюзии.
Примечание: Из-за ограничений памяти occlusion culling не поддерживается по умолчанию в шаблонах веб-экспорта. Его можно включить, скомпилировав пользовательские шаблоны веб-экспорта с module_raycast_enabled=yes.
Включает временное сглаживание для этого окна просмотра. TAA работает путем дрожания камеры и накопления изображений последних отрисованных кадров, рендеринг вектора движения используется для учета движения камеры и объекта.
Примечание: Реализация еще не завершена, некоторые визуальные экземпляры, такие как частицы и сетки со скинами, могут показывать артефакты.
См. также ProjectSettings.rendering/anti_aliasing/quality/use_taa и RenderingServer.viewport_set_use_taa().
Если true, область просмотра будет использовать основной интерфейс XR для рендеринга вывода XR. Когда это применимо, это может привести к стереоскопическому изображению и полученному рендеру, выводимому на гарнитуру.
Режим Variable Rate Shading (VRS), используемый для этого окна просмотра. Обратите внимание, если оборудование не поддерживает VRS, это свойство игнорируется.
Текстура, используемая, когда vrs_mode установлен на VRS_TEXTURE.
Текстура должна использовать формат сжатия без потерь, чтобы цвета можно было точно сопоставить. Следующие плотности VRS сопоставляются с различными цветами, причем более яркие цвета представляют более низкий уровень точности затенения:
- 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 - Не поддерживается на большинстве оборудования
- 8×4 = rgb(255, 170, 0) - #ffaa00 - Не поддерживается на большинстве оборудования
- 8×8 = rgb(255, 255, 0) - #ffff00 - Не поддерживается на большинстве оборудования
VRSUpdateMode vrs_update_mode = 1 🔗
void set_vrs_update_mode(value: VRSUpdateMode)
VRSUpdateMode get_vrs_update_mode()
Устанавливает режим обновления для Variable Rate Shading (VRS) для области просмотра. VRS требует, чтобы входная текстура была преобразована в формат, используемый методом VRS, поддерживаемым оборудованием. Режим обновления определяет, как часто это происходит. Если графический процессор не поддерживает VRS или VRS не включен, это свойство игнорируется.
Пользовательский World2D, который можно использовать в качестве источника 2D-среды.
Пользовательский World3D, который можно использовать в качестве источника 3D-среды.
Описания метода
World2D find_world_2d() const 🔗
Возвращает первый допустимый World2D для данного окна просмотра, выполняя поиск по свойству world_2d самого себя и любого предка окна просмотра.
World3D find_world_3d() const 🔗
Возвращает первый допустимый World3D для данного окна просмотра, выполняя поиск по свойству world_3d самого себя и любого предка окна просмотра.
AudioListener2D get_audio_listener_2d() const 🔗
Возвращает текущий активный прослушиватель 2D-аудио. Возвращает null, если нет активных прослушивателей 2D-аудио, в этом случае активная 2D-камера будет рассматриваться как прослушиватель.
AudioListener3D get_audio_listener_3d() const 🔗
Возвращает текущий активный прослушиватель 3D-аудио. Возвращает null, если нет активных прослушивателей 3D-аудио, в этом случае активная 3D-камера будет рассматриваться как прослушиватель.
Camera2D get_camera_2d() const 🔗
Возвращает текущую активную 2D-камеру. Возвращает null, если активных камер нет.
Примечание: Если этот метод вызывается, когда в редакторе активна система Переопределения камеры, он вернет внутренне управляемую камеру переопределения. Поэтому рекомендуется избегать кэширования возвращаемого значения или перед использованием убедиться, что кэшированное значение по-прежнему является допустимым экземпляром и текущей камерой. См. @GlobalScope.is_instance_valid() и Camera2D.is_current().
Camera3D get_camera_3d() const 🔗
Возвращает текущую активную 3D-камеру. Возвращает null, если активных камер нет.
Примечание: Если этот метод вызывается, когда в редакторе активна система Переопределения камеры, он вернет внутренне управляемую камеру переопределения. Поэтому рекомендуется избегать кэширования возвращаемого значения или перед использованием проверять, является ли кэшированное значение допустимым экземпляром и текущей камерой. См. @GlobalScope.is_instance_valid() и Camera3D.current.
bool get_canvas_cull_mask_bit(layer: int) const 🔗
Возвращает отдельный бит в маске слоя рендеринга.
Array[Window] get_embedded_subwindows() const 🔗
Возвращает список видимых встроенных Window внутри области просмотра.
Примечание: Window внутри других областей просмотра не будут перечислены.
Transform2D get_final_transform() const 🔗
Возвращает преобразование из системы координат области просмотра в систему координат средства внедрения.
Vector2 get_mouse_position() const 🔗
Возвращает положение мыши в этом Viewport, используя систему координат этого Viewport.
float get_oversampling() const 🔗
Возвращает коэффициент передискретизации области просмотра.
PositionalShadowAtlasQuadrantSubdiv get_positional_shadow_atlas_quadrant_subdiv(quadrant: int) const 🔗
Возвращает позиционное подразделение квадранта теневого атласа указанного квадранта.
int get_render_info(type: RenderInfoType, info: RenderInfo) 🔗
Возвращает статистику рендеринга указанного типа.
Transform2D get_screen_transform() const 🔗
Возвращает преобразование из координат области просмотра в экранные координаты содержащего ее окна оконного менеджера.
Transform2D get_stretch_transform() const 🔗
Возвращает автоматически вычисленное 2D-преобразование растяжения, принимая во внимание настройки растяжения Viewport. Конечное значение умножается на Window.content_scale_factor, но только для корневого окна просмотра. Если этот метод вызывается для SubViewport (например, в дереве сцены с SubViewportContainer и SubViewport), коэффициент масштабирования корневого окна не будет применен. Используя Transform2D.get_scale() для возвращаемого значения, это можно использовать для компенсации масштабирования при масштабировании узла Camera2D или для уменьшения масштаба TextureRect до пиксельного совершенства независимо от автоматически вычисленного коэффициента масштабирования.
Примечание: Из-за того, как работает масштабирование пикселей, масштаб возвращаемого преобразования по осям X и Y может немного отличаться, даже если Window.content_scale_aspect установлен в режим, который сохраняет соотношение сторон пикселей. Если Window.content_scale_aspect равен Window.CONTENT_SCALE_ASPECT_IGNORE, масштабы X и Y могут отличаться значительно.
ViewportTexture get_texture() const 🔗
Возвращает текстуру области просмотра.
Примечание: При попытке сохранить текущую текстуру (например, в файл) она может оказаться полностью чёрной или устаревшей, если используется слишком рано, особенно если используется, например, в Node._ready(). Чтобы убедиться в правильности полученной текстуры, можно дождаться сигнала 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");
}
Примечание: Если use_hdr_2d имеет значение true, возвращаемая текстура будет представлять собой HDR-изображение, использующее линейное кодирование.
RID get_viewport_rid() const 🔗
Возвращает RID области просмотра из RenderingServer.
Rect2 get_visible_rect() const 🔗
Возвращает видимый прямоугольник в глобальных экранных координатах.
void gui_cancel_drag() 🔗
Отменяет операцию перетаскивания, которая была ранее запущена с помощью Control._get_drag_data() или принудительно запущена с помощью Control.force_drag().
Variant gui_get_drag_data() const 🔗
Возвращает данные перетаскивания из графического интерфейса пользователя, которые ранее возвращались Control._get_drag_data().
String gui_get_drag_description() const 🔗
Возвращает удобочитаемое описание данных перетаскивания, используемое в вспомогательных приложениях.
Control gui_get_focus_owner() const 🔗
Возвращает текущий сфокусированный Control в этом окне просмотра. Если нет сфокусированного Control, возвращает null.
Control gui_get_hovered_control() const 🔗
Возвращает Control, над которым в данный момент находится мышь в этом окне просмотра. Если ни один Control не имеет курсора, возвращает null.
Обычно это листовой узел Control или самый глубокий уровень поддерева, который заявляет наведение. Это очень полезно при использовании вместе с Node.is_ancestor_of(), чтобы определить, находится ли мышь в дереве элементов управления.
bool gui_is_drag_successful() const 🔗
Возвращает true, если операция перетаскивания прошла успешно.
bool gui_is_dragging() const 🔗
Возвращает true, если операция перетаскивания в данный момент выполняется и где действие сброса может произойти в этом окне просмотра.
Альтернатива Node.NOTIFICATION_DRAG_BEGIN и Node.NOTIFICATION_DRAG_END, когда вы предпочитаете опрос значения.
void gui_release_focus() 🔗
Удаляет фокус с текущего сфокусированного Control в этом окне просмотра. Если фокуса нет ни у одного Control, ничего не делает.
void gui_set_drag_description(description: String) 🔗
Устанавливает удобочитаемое описание данных перетаскивания в значение description, используемое в вспомогательных приложениях.
bool is_input_handled() const 🔗
Возвращает, был ли обработан текущий InputEvent. События ввода не обрабатываются, пока не будет вызван set_input_as_handled() в течение жизненного цикла InputEvent.
Обычно это делается как часть методов обработки ввода, таких как Node._input(), Control._gui_input() или других, а также в соответствующих обработчиках сигналов.
Если handle_input_locally установлен в false, этот метод попытается найти первую родительскую область просмотра, которая настроена на локальную обработку ввода, и вместо этого вернет его значение для is_input_handled().
void notify_mouse_entered() 🔗
Сообщите Viewport, что мышь вошла в его область. Используйте эту функцию перед отправкой InputEventMouseButton или InputEventMouseMotion в Viewport с помощью push_input(). См. также notify_mouse_exited().
Примечание: В большинстве случаев нет необходимости вызывать эту функцию, поскольку узлы SubViewport, которые являются дочерними элементами SubViewportContainer, уведомляются автоматически. Это необходимо только при взаимодействии с viewport нестандартными способами, например, как текстуры в TextureRect или с Area3D, который пересылает события ввода.
void notify_mouse_exited() 🔗
Сообщить Viewport, что мышь покинула его область. Используйте эту функцию, когда узел, отображающий viewport, замечает, что мышь покинула область отображаемого viewport. См. также notify_mouse_entered().
Примечание: В большинстве случаев нет необходимости вызывать эту функцию, поскольку узлы SubViewport, которые являются дочерними элементами SubViewportContainer, уведомляются автоматически. Это необходимо только при взаимодействии с viewports нестандартными способами, например, как текстуры в TextureRect или с Area3D, который пересылает события ввода.
void push_input(event: InputEvent, in_local_coords: bool = false) 🔗
Запускает заданное event в этом Viewport. Это можно использовать для передачи InputEvent между viewport или для локального применения входных данных, отправленных по сети или сохраненных в файле.
Если in_local_coords имеет значение false, позиция события находится в координатах встраиваемого устройства и будет преобразована в координаты viewport. Если in_local_coords имеет значение true, позиция события находится в координатах viewport.
Хотя этот метод служит той же цели, что и Input.parse_input_event(), он не переназначает указанное event на основе настроек проекта, таких как ProjectSettings.input_devices/pointing/emulate_touch_from_mouse.
Вызов этого метода распространит вызовы на дочерние узлы для следующих методов в указанном порядке:
Control._gui_input() для узлов Control
Если более ранний метод помечает ввод как обработанный с помощью set_input_as_handled(), любой более поздний метод в этом списке не будет вызван.
Если ни один из методов не обрабатывает событие и physics_object_picking равен true, событие используется для выбора физического объекта.
void push_text_input(text: String) 🔗
Вспомогательный метод, который вызывает метод set_text() для текущего сфокусированного элемента управления Control, при условии, что он определен (например, если сфокусированный элемент управления — Button или LineEdit).
void push_unhandled_input(event: InputEvent, in_local_coords: bool = false) 🔗
Устарело: Use push_input() instead.
Запускает заданное event в этом Viewport. Это можно использовать для передачи InputEvent между viewport или для локального применения входных данных, отправленных по сети или сохраненных в файле.
Если in_local_coords равно false, позиция события находится в координатах встраиваемого устройства и будет преобразована в координаты viewport. Если in_local_coords равно true, позиция события находится в координатах viewport.
Вызов этого метода распространит вызовы дочерних узлов для следующих методов в указанном порядке:
Если более ранний метод помечает ввод как обработанный с помощью set_input_as_handled(), любой более поздний метод в этом списке не будет вызван.
Если ни один из методов не обрабатывает событие и physics_object_picking равен true, событие используется для выбора физического объекта.
Примечание: Этот метод не распространяет события ввода на встроенные Window или SubViewport.
void set_canvas_cull_mask_bit(layer: int, enable: bool) 🔗
Установить/снять отдельные биты на маске слоя рендеринга. Это упрощает редактирование слоев этого Viewport.
void set_input_as_handled() 🔗
Предотвращает дальнейшее распространение входных данных вверх по SceneTree.
Примечание: Это не влияет на методы в Input, только на способ распространения событий.
void set_positional_shadow_atlas_quadrant_subdiv(quadrant: int, subdiv: PositionalShadowAtlasQuadrantSubdiv) 🔗
Устанавливает количество подразделов для использования в указанном квадранте. Большее количество подразделов позволяет иметь больше теней в сцене одновременно, но снижает качество теней. Хорошей практикой является наличие квадрантов с различным количеством подразделов и как можно меньшим количеством подразделов.
void update_mouse_cursor_state() 🔗
Принудительно мгновенно обновлять дисплей на основе текущего положения курсора мыши. Это включает обновление формы курсора мыши и отправку необходимых сигналов Control.mouse_entered, CollisionObject2D.mouse_entered, CollisionObject3D.mouse_entered и Window.mouse_entered и их соответствующих аналогов mouse_exited.
void warp_mouse(position: Vector2) 🔗
Перемещает указатель мыши в указанную позицию в этом Viewport, используя систему координат этого Viewport.
Примечание: warp_mouse() поддерживается только в Windows, macOS и Linux. Он не действует на Android, iOS и Web.