ViewportTexture
Наследует: Texture2D < Texture < Resource < RefCounted < Object
Предоставляет содержимое Viewport в виде динамической текстуры.
Описание
ViewportTexture предоставляет содержимое Viewport как динамическую Texture2D. Это можно использовать для объединения рендеринга узлов Control, Node2D и Node3D. Например, вы можете использовать эту текстуру для отображения 3D-сцены внутри TextureRect или 2D-наложения в Sprite3D.
Чтобы получить ViewportTexture в коде, используйте метод Viewport.get_texture() на целевом окне просмотра.
Примечание: ViewportTexture всегда локальна для своей сцены (см. Resource.resource_local_to_scene). Если корень сцены не готов, он может вернуть неверные данные (см. Node.ready).
Примечание: Создание сцен, содержащих ViewportTexture высокого разрешения, может вызвать заметное подтормаживание.
Примечание: При использовании Viewport с Viewport.use_hdr_2d, установленным на true, возвращаемая текстура будет HDR-изображением, закодированным в линейном пространстве. Это может выглядеть темнее обычного при отображении непосредственно на экране. Чтобы преобразовать в гамма-пространство, вы можете сделать следующее:
img.convert(Image.FORMAT_RGBA8)
imb.linear_to_srgb()
Примечание: Некоторые узлы, такие как Decal, Light3D и PointLight2D, не поддерживают использование ViewportTexture напрямую. Чтобы использовать данные текстуры из ViewportTexture в этих узлах, вам необходимо создать ImageTexture, вызвав Texture2D.get_image() для ViewportTexture и передав результат в ImageTexture.create_from_image(). Это преобразование — медленная операция, поэтому ее не следует выполнять в каждом кадре.
Обучающие материалы
Свойства
|
Описания свойств
NodePath viewport_path = NodePath("") 🔗
Путь к узлу Viewport для отображения. Это относительно локального корня сцены (см. Resource.get_local_scene()), не к узлам, которые используют эту текстуру.
Примечание: В редакторе этот путь автоматически обновляется, когда целевой viewport или один из его предков переименовывается или перемещается. Во время выполнения этот путь может не обновляться автоматически, если корень сцены не может быть найден.