使用渲染目标纹理

使用 Render Target Texture 将内容渲染到纹理或仅对应用程序的一部分应用抗锯齿。您可以像使用其他纹理一样使用渲染目标纹理。例如,您可以在 Texture Brush 中使用它,或在 Image 节点中用作图像。

请参阅 应用抗锯齿功能 和 纹理 (Textures)。

例如,如果您的 Kanzi 应用程序有多个场景,可以使用渲染目标纹理在当前场景中显示其他场景的内容。

将内容渲染到纹理

要将内容渲染到纹理:

  1. 在 Library 按 Alt 并右键单击 Materials and Textures 中选择 Render Target Texture。

    ../../_images/create-render-target-texture.png
  2. 在 Node Tree 中创建或选择一个2D节点,其内容是您想要渲染到纹理的。

    例如,选择一个包含您要渲染到纹理的内容的 Viewport 2D 节点。

    ../../_images/prefab-for-render-target-texture.png
  3. 在 Node Tree 中,选择您在上一步中创建或选择的节点,并在 Properties 中添加和设置:

    • 将 Render Target 到您想要渲染所选节点内容的 Render Target Texture。

    • Off-Screen Rendering 并启用该属性。

    ../../_images/layer-render-target-property.png
  4. (可选) To set Kanzi to render the content to the texture only once, in the Properties add the Caching Mode property and set it to Enabled.

    通过这种方式,您可以设置 Kanzi 来缓存节点,并从缓存图像中继续渲染该节点。例如,为一个节点启用缓存,以便您希望 Kanzi 仅在应用程序启动时创建一次渲染目标纹理。请参阅 缓存 2D 节点。

    ../../_images/caching-mode-enabled.png
  5. 将您在第一步中创建的 Render Target Texture 应用于您希望显示第二步中创建的节点内容的节点。

    您可以在 Texture Brush 中使用 Render Target Texture,或作为图像在 Image 节点中使用。

    例如:

    1. 在 Node Tree 按 Alt 并右键单击 中选择 Empty Node 2D。

    2. 在 Node Tree 中选择 Empty Node 2D 节点,在 Properties 中添加 Background Brush 属性,并在下拉菜单中选择 + Texture Brush。

      ../../_images/select-create-texture-brush.png
    3. 在 Background Brush 属性旁边,点击 image0,并将 Texture Brush 的 Brush Texture 属性设置为您想在第一步中创建的 Empty Node 2D 中显示的 Render Target Texture。

      ../../_images/image-property-render-target-texture.png
    4. 在 Node Tree 中选择 Empty Node 2D,并在 Properties 中添加并设置 Layout Width 和 Layout Height 属性为您希望显示 Render Target Texture 内容的大小。

  6. 在 Library 中选择 Render Target Texture 的 (可选)。

    在 Properties 中,您可以设置 Render Target 的 Height 和 Width,或者使用 Automatic 设置根据使用该节点的大小来确定 Render Target 的大小。您尚不能在渲染通道中使用此属性。

    ../../_images/render-target-automatic-size.png

    使用 Texture Settings 属性来控制纹理过滤。首先,将 Mipmap Mode 属性设置为您要使用的 mipmap 模式。然后将 Minification Filter 和 Magnification Filter 属性设置为 Linear。请注意,使用 mipmaps 会增加内存使用。

    通常设置纹理过滤的最佳起点是设置:

    • Minification Filter 到 Linear

    • Magnification Filter 到 Linear

    • Mipmap Mode 设置为 Nearest。如果您确定纹理不会被缩小,请选择 Base,否则请先使用 Nearest。例如,Render Target Texture 的默认值为 Base。使用此设置时,纹理没有 mipmap 级别,并且始终对基础级别进行采样。请参阅 使用 mipmap。

    ../../_images/texture-settings-properties.png

    请注意,某些纹理格式在高于 2.0 的 OpenGL ES 版本中可用。要设置 OpenGL ES 版本,在主菜单中选择 Project > Properties,并在 Properties 中设置 Target Graphics API 属性。

    ../../_images/project-properties.png ../../_images/target-graphics-api-opengl-es-30.png

    例如,将 Target Graphics API 属性设置为 OpenGL ES 3.0,导入 .dds 格式的 HDR 和浮点图像,并设置纹理的颜色格式。请参阅 在 Kanzi 中使用 OpenGL ES 3.0+。

    Mipmap Mode

    Nearest 示例

    Linear 示例

    Base

    样本数:1

    使用纹理中最接近的像素。此组合等同于点采样。它返回所有组合中最粗糙的结果,并且在缩小时可能导致锯齿。

    放大纹理时使用此组合可以得到非常清晰的结果。

    样本数:4

    在纹理中四个最近的像素之间进行插值。

    此组合可用于放大渐变。然而,不要将其用于缩小。

    Nearest

    样本数:1

    有助于纹理缓存并有助于减少混叠。然而,当纹理用于平面表面时,它可能会产生明显的过渡。

    当您想要良好的性能,但目标平台无法提供更好的质量时,可以使用此组合。

    此组合通常是最快的。

    样本数:4

    从两个 mipmap 级别取两个样本并在这些样本之间进行插值。

    将此组合用作起点。

    此组合通常具有最高性价比。

    如果您确定不存在缩小,可以将 Mipmap Mode 设置为 Base。

    Linear

    样本数:2

    从两个 mipmap 级别取一个样本并在这些样本之间进行插值。

    需要特殊效果时使用此组合。例如,要实现边缘光效果。

    样本数:8

    从两个 mipmap 级别取四个样本并在这些样本之间进行插值。

    当您需要最好的质量,且平台足够强大,能够轻松渲染结果,则使用此组合。

    此组合对性能的负面影响最大。

Render Target Texture 属性类型

有关渲染目标纹理可用属性类型的列表,请参阅 渲染目标纹理 (Render Target Texture) 和 纹理 (Texture)。

另请参阅

应用抗锯齿功能

缓存 2D 节点

使用单个纹理

使用环境纹理贴图