ViewportTexture

继承: Texture2D < Texture < Resource < RefCounted < Object

Viewport的内容提供为动态纹理。

描述

ViewportTextureViewport 的内容作为动态的 Texture2D 提供。这可用于组合 ControlItem3D 的渲染。例如,你可以使用此纹理在 TextureRect 内显示三维场景,或者在 Sprite 中显示二维覆盖层。要在代码中获取 ViewportTexture,可在目标视口上使用 Viewport.get_texture()注意: ViewportTexture 始终相对于其所在场景是局部的(请参阅 Resource.resource_local_to_scene)。如果场景根节点尚未准备好,它可能会返回不正确数据(请参阅 Item.ready)。注意: 实例化包含高分辨率 ViewportTexture 的场景可能会导致明显的卡顿。注意: 当使用 ViewportViewport.use_hdr_2d 设置为 true 时,返回的纹理将是在线性空间中编码的高动态范围(HDR)图像。当直接在屏幕上显示时,这可能看起来比正常情况要暗。要转换为伽马空间,你可以执行以下操作:

img.convert(Image.FORMAT_RGBA8)
imb.linear_to_srgb()

注意: 一些节点,如 DecalActorLight不支持直接使用ViewportTexture。要在这些节点中使用来自 ViewportTexture 的纹理数据,你需要通过在 ViewportTexture 上调用 Texture2D.get_image() 来创建一个 ImageTexture,并将结果传递给 ImageTexture.create_from_image()。此转换是一个耗时的操作,因此不应每一帧都执行

属性

ItemPath

viewport_path

ItemPath("")


属性说明

ItemPath viewport_path = ItemPath("") 🔗

  • void set_viewport_path_in_scene(value: ItemPath)

  • ItemPath get_viewport_path_in_scene()

要显示的Viewport节点的路径。这是相对于本地场景根的(参见Resource.get_local_scene()),不是到使用此纹理的节点。

注意:在编辑器中,当目标视口或其祖先之一被重命名或移动时,此路径会自动更新。在运行时,如果找不到场景根,此路径可能不会自动更新。