Viewport
Успадковано від: SubViewport, Window
Абстрактний базовий клас для перегляду портів. Увімкніть малюнок та взаємодію з світом ігор.
Опис
Viewport створює окремий вид на екрані або підвид всередині іншого вікна перегляду. Дочірні 2D-вузли відображатимуться на ньому, а дочірні 3D-вузли Camera3D також відображатимуться на ньому.
За бажанням, вікно перегляду може мати власний 2D- або 3D-світ, тому воно не ділиться тим, що малює, з іншими вікнами перегляду.
Вьюпорти також можуть бути аудіослухачами, тобто генерувати позиційний звук залежно від дочірньої 2D- або 3D-камери.
Крім того, вікна перегляду можна призначити різним екранам, якщо пристрої мають кілька екранів.
Нарешті, вікна перегляду також можуть поводитися як цілі рендерингу, і в цьому випадку вони не будуть видимими, якщо для малювання не використовується пов'язана текстура.
Посібники
Властивості
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
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
Цей квадрорант буде використовуватися лише одним shadow map.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_4 = 2
Цей квадрорант буде розбити на 4 і використовуватися до 4 shadow map.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_16 = 3
Цей чотиримісний буде розбити 16 способів і використовуватися до 16 shadow map.
PositionalShadowAtlasQuadrantSubdiv SHADOW_ATLAS_QUADRANT_SUBDIV_64 = 4
Цей чотиримісний буде розбити 64 способи і використовуватися до 64 shadow map.
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 MetalFX для 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.
enum MSAA: 🔗
MSAA MSAA_DISABLED = 0
Багаторазовий режим відключення. Це значення за замовчуванням, а також найшвидше налаштування.
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_MAX = 4
Представляємо розмір MSAA enum.
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 може давати чіткіші результати, ніж FXAA, але з дещо вищими витратами на продуктивність.
ScreenSpaceAA SCREEN_SPACE_AA_MAX = 3
Представляємо розмір ScreenSpaceAA enum.
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.
enum RenderInfoType: 🔗
RenderInfoType RENDER_INFO_TYPE_VISIBLE = 0
Передача в'язаного рендеру (за винятком тіней).
RenderInfoType RENDER_INFO_TYPE_SHADOW = 1
Shadow рендер. Об'єкти будуть надані кілька разів залежно від кількості вогнів з тіні та кількості спрямованих тіней.
RenderInfoType RENDER_INFO_TYPE_CANVAS = 2
Накладка канва. Це включає в себе всі 2D рендеринг.
RenderInfoType RENDER_INFO_TYPE_MAX = 3
Представляємо розмір RenderInfoType enum.
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
Об'єкти відображаються лише з кольором випромінювання з 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 у просторі екрана замість сцени, щоб ви могли чітко бачити, як вона впливає на об'єкти. Щоб цей режим відображення працював, у вашому WorldEnvironment має бути встановлено параметр Environment.ssao_enabled.
Примітка: Підтримується лише під час використання методу рендерингу Forward+.
DebugDraw DEBUG_DRAW_SSIL = 13
Малює текстуру непрямого освітлення в просторі екрана замість сцени, щоб ви могли чітко бачити, як вона впливає на об'єкти. Щоб цей режим відображення працював, у вашому WorldEnvironment має бути встановлено параметр Environment.ssil_enabled.
Примітка: Підтримується лише під час використання методу рендерингу 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
Малює буфер, який використовується для відсікання перекриття.
Примітка: Підтримується лише під час використання методів рендерингу 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 картами mipmap (або використовує найближчу карту mipmap, якщо ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter має значення true). Це робить текстуру гладкою зблизька та гладкою на відстані.
Використовуйте це для непіксельних текстур, які можна переглядати в низькому масштабі (наприклад, через масштабування Camera2D або масштабування спрайтів), оскільки міп-мапи важливі для згладжування пікселів, які менші за пікселі на екрані.
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3
Фільтр текстур зчитує з найближчого пікселя та змішує між двома найближчими картами mipmap (або використовує найближчу карту mipmap, якщо ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter має значення true). Це робить текстуру піксельною зблизька та гладкою на відстані.
Використовуйте це для непіксельних текстур, які можна переглядати в низькому масштабі (наприклад, через масштабування Camera2D або масштабування спрайтів), оскільки міп-мапи важливі для згладжування пікселів, які менші за пікселі на екрані.
DefaultCanvasItemTextureFilter DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_MAX = 4
Представляємо розмір defaultCanvasItemTextureFilter enum.
enum DefaultCanvasItemTextureRepeat: 🔗
DefaultCanvasItemTextureRepeat DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_DISABLED = 0
Відключення текстур повторення. Замість, коли читання УФів за межі 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.
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.
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.
enum VRSMode: 🔗
VRSMode VRS_DISABLED = 0
Вимкнено мінливу форму ставок.
VRSMode VRS_TEXTURE = 1
Варіабельна обробка ставок використовує фактуру. Примітка, для стереоскопічного використання текстури атласу з текстурою для кожного виду.
VRSMode VRS_XR = 2
Варіабельна текстура вимірювання подається первинною XRInterface.
VRSMode VRS_MAX = 3
Представляємо розмір VRSMode enum.
enum VRSUpdateMode: 🔗
VRSUpdateMode VRS_UPDATE_DISABLED = 0
Введення текстури для змінного струму не буде оброблятися.
VRSUpdateMode VRS_UPDATE_ONCE = 1
Введення текстури для змінного струму буде оброблятися один раз.
VRSUpdateMode VRS_UPDATE_ALWAYS = 2
Вводна текстура для змінного струму обробка буде оброблятися кожен каркас.
VRSUpdateMode VRS_UPDATE_MAX = 3
Представляємо розмір VRSUpdateMode enum.
Описи властивостей
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.
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 (sharpest) до 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, пошук не отримає вхідних заходів.
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, щоб покращити продуктивність за рахунок деталізації геометрії.
Щоб керувати цією властивістю в кореневому області перегляду, встановіть параметр проекту 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, вхідний сигнал буде відправлений лише на один об'єкт фізики в процесі пікування мишки. Якщо ви хочете отримати верхній об'єкт тільки, ви також повинні включити physics_object_picking_sort.
Якщо false, вхідний сигнал буде відправлений на всі об'єкти фізики в процесі пікування мишки.
Це стосується лише вибору об'єкта 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 біт для shadow map 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, на всіх не буде видно положення тіней. Це може значно поліпшити продуктивність на низьких рівнях систем, зменшуючи навантаження процесора та GPU (як менше, кількість дзвінків потрібно для малювання сцени без тіней).
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 рекомендує надавати користувачам такі значення як попередньо встановлені параметри: "Ultra Quality: 0.77", "Quality: 0.67", "Balanced: 0.59", "Performance: 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, як occluders залишають оглядовий порт, збільшуючи цей параметр.
Відсоток додається на кожній осі і з двох сторін. Наприклад, з за замовчуванням 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 🔗
Впливає на кінцеву різкість текстури шляхом зчитування з нижчого або вищого значення міпмапу (також називається "зміщення рівня деталізації текстури"). Від'ємні значення роблять міпмапи текстури чіткішими, але зернистішими при перегляді на відстані, тоді як позитивні значення роблять міпмапи текстури розмитішими (навіть при перегляді зблизька).
Увімкнення часового згладжування (use_taa) автоматично застосує зміщення -0.5 до цього значення, тоді як увімкнення FXAA (screen_space_aa) автоматично застосує зміщення -0.25 до цього значення. Якщо одночасно ввімкнено TAA та FXAA, до цього значення застосовується зміщення -0.75.
Примітка: Якщо scaling_3d_scale менше за 1.0 (ексклюзивно), texture_mipmap_bias використовується для налаштування автоматичного зміщення міпмапу, яке розраховується внутрішньо на основі коефіцієнта масштабування. Формула для цього така: log2(scaling_3d_scale) + mipmap_bias.
Щоб керувати цією властивістю в кореневому вікні перегляду, встановіть параметр проекту ProjectSettings.rendering/textures/default_filters/texture_mipmap_bias.
Якщо true, область перегляду має відображати свій фон прозорим.
Примітка: Через технічні обмеження деякі функції рендерингу вимкнені, коли область перегляду має прозорий фон. Наразі це стосується відбиттів у просторі екрана, підповерхневого розсіювання та глибини різкості.
Якщо значення true, використовується швидкий фільтр постобробки, щоб зробити смуги значно менш помітними. Якщо значення use_hdr_2d дорівнює значенню false, 2D-рендеринг не зазнає впливу дебендингу, якщо тільки значення Environment.background_mode не дорівнює значенню Environment.BG_CANVAS. Якщо значення use_hdr_2d дорівнює значенню true, дебендинг застосовуватиметься лише в тому випадку, якщо це кореневий Viewport, і вплине на весь 2D- та 3D-рендеринг, включаючи елементи полотна.
У деяких випадках дебендинг може призвести до дещо помітного шаблону згладжування. Рекомендується вмикати дебендинг лише тоді, коли це дійсно потрібно, оскільки шаблон згладжування зробить скріншоти, стиснуті без втрат, більшими.
Див. також ProjectSettings.rendering/anti_aliasing/quality/use_debanding та RenderingServer.viewport_set_use_debanding().
Якщо true, 2D-рендеринг буде використовувати фреймбуфер формату HDR (High Dynamic Range), що відповідає бітовій глибині 3D-фреймбуфера. При використанні рендерера Forward+ або Compatibility це буде фреймбуфер RGBA16. При використанні рендерера Mobile це буде фреймбуфер RGB10_A2.
Крім того, 2D-рендеринг відбуватиметься в лінійному колірному просторі і буде перетворено в простір sRGB безпосередньо перед виведенням на екран (якщо вікно перегляду приєднано до екрану).
Практично це означає, що кінцевий результат Viewport не буде обмежений діапазоном 0-1 і може бути використаний у 3D-рендерингу без коригування колірного простору. Це дозволяє 2D-рендерингу використовувати ефекти, що вимагають високого динамічного діапазону (наприклад, 2D-світіння), а також значно покращує вигляд ефектів, що вимагають дуже детальних градієнтів.
bool use_occlusion_culling = false 🔗
Якщо true, OccluderInstance3D вершини будуть використані для оклюзії в 3D для цього огляду. Для кореневого перегляду необхідно встановити true.
Примітка: Увімкнення оклюзії має вартість на процесорі. Якщо ви дійсно плануєте використовувати його, і подумайте, що ваша сцена може фактично скористатися від оклюзійного культування. Великі, відкриті сцени з декількома або відсутніми об'єктами, що блокують вигляд, як правило, не вигідно багато від оклюзії. Найбільші відкриті сцени, як правило, користуються більше від сітки LOD і видимості діапазонів (GeometryInstance3D.visibility_range_begin і GeometryInstance3D.visibility_range_end) у порівнянні з оклюзійними кульками.
Примітка: У зв'язку з обмеженнями пам'яті, оклюзія не підтримується за замовчуванням в шаблонах Web експорт. Увімкнути користувацькі шаблони веб-порта з module_raycast_enabled=yes.
Вмикає тимчасове згладжування для цього вікна перегляду. TAA працює шляхом тремтіння камери та накопичення зображень останніх візуалізованих кадрів, візуалізація вектора руху використовується для врахування руху камери та об’єкта.
Примітка: Реалізація ще не завершена, деякі візуальні екземпляри, як-от частинки та сітки зі шкірою, можуть відображати артефакти.
Дивіться також ProjectSettings.rendering/anti_aliasing/quality/use_taa і RenderingServer.viewport_set_use_taa().
Якщо true, пошук буде використовувати інтерфейс XR для виходу XR. При використанні цього може призвести до стереоскопічного зображення і отриманого рендеру, що виводяться до гарнітури.
Режим змінного струму (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()
Налаштовує режим оновлення для мінливої форми ставок (VRS) для перегляду порту. VRS вимагає вхідної текстури, яка буде перетворена в формат, який підтримується методом VRS. Режим оновлення визначає, як часто це відбувається. Якщо GPU не підтримує 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, якщо немає активних камер.
Camera3D get_camera_3d() const 🔗
Повернення в даний час активного 3D камери.
bool get_canvas_cull_mask_bit(layer: int) const 🔗
Повертає індивідуальний біт на маску рендерингу.
Array[Window] get_embedded_subwindows() const 🔗
Повертає список видимих вбудованих Window в порт перегляду.
Note: 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 🔗
Повертає автоматично обчислене двовимірне перетворення розтягування з урахуванням параметрів розтягування 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) 🔗
Встановлює опис даних перетягування у зручному для людини вигляді.
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, сповіщаються автоматично. Це необхідно лише під час взаємодії з вікнами перегляду не за замовчуванням, наприклад, як текстури в TextureRect або з Area3D, який пересилає події введення.
void notify_mouse_exited() 🔗
Повідомити область перегляду (Viewport), що миша залишила її область. Використовуйте цю функцію, коли вузол, який відображає область перегляду, помічає, що миша залишила область відображеної області перегляду. Див. також notify_mouse_entered().
Примітка: У більшості випадків немає потреби викликати цю функцію, оскільки вузли SubViewport, які є дочірніми вузлами SubViewportContainer, отримують сповіщення автоматично. Це необхідно лише під час взаємодії з областями перегляду не за замовчуванням, наприклад, як текстури в TextureRect або з Area3D, який пересилає вхідні події.
void push_input(event: InputEvent, in_local_coords: bool = false) 🔗
Активує задану подію event у цьому Viewport. Це можна використовувати для передачі InputEvent між viewports або для локального застосування вхідних даних, надісланих через мережу чи збережених у файлі.
Якщо 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) 🔗
Метод Helper, який викликає метод set_text() на даний момент орієнтований Control, за умови, що він визначений (наприклад, якщо зосереджений контроль Button або LineEdit).
void push_unhandled_input(event: InputEvent, in_local_coords: bool = false) 🔗
Застаріло: Use push_input() instead.
Активує задану подію event у цьому Viewport. Це можна використовувати для передачі InputEvent між вікнами перегляду або для локального застосування вхідних даних, надісланих через мережу чи збережених у файлі.
Якщо in_local_coords має значення false, позиція події знаходиться в координатах вбудовника та буде перетворена на координати вікна перегляду. Якщо in_local_coords має значення true, позиція події знаходиться в координатах вікна перегляду.
Виклик цього методу поширить виклики на дочірні вузли для наступних методів у заданому порядку:
Якщо попередній метод позначає вхідні дані як оброблені через 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.