Skip to content

渲染目标

渲染目标(Render Target)是渲染管线的输出终点。它被抽象为承载绘制结果的容器 —— 无论是用于中间处理的离屏纹理,还是最终呈现给玩家的屏幕画面,本质上都是渲染目标的一种形态。

使用 regRT 函数,可以帮助我们快速创建一个相机(并返回一个句柄)。

export const screen = regRT("screen", r => {});

regRT 接受两个参数。

regRT(
"screen",
r => { } //(可选)
);
  • screen 是渲染目标的名称,可以任意指定(但不能与其他渲染目标重名)。
  • 第二个参数则是渲染目标的配置函数,可以在这里指定渲染目标的属性。
    我们只需要修改 r => { ... } 内部的内容;这里的 r 是一个构建器,可以任意指定其名称。

regRT 函数会返回一个渲染目标句柄,可以通过这个句柄来引用这个渲染目标。

export const screen = regRT("screen");
  • screen 是一个渲染目标句柄,其名称可以任意指定(但不能与其他句柄重复)。
  • export const 表示 screen 是一个全局变量,可以在其他文件中引用。

regRT 的第二个参数(可选)是一个配置函数,可以在这里指定渲染目标的属性。

widthheight 属性用于指定渲染目标的空间尺寸。

r => {
r.width = 1920;
r.height = 1080;
};
  • 对于 screen 而言,可以修改为你期望的游戏视口大小。
  • 对于其他用作离屏渲染的渲染目标,可以修改为你期望的渲染尺寸。

默认值为 19201080

samples 采样数量(通常为 0, 2, 4, 8)。

  • 默认为 0,不开启 MSAA(多重采样抗锯齿)。
  • 如果使用了复杂的 3D 图形,可以设置为 48 来降低锯齿感。
r => {
r.samples = 0;
};

在默认项目下,ShxNovel 会自动注册一个名为 screen 的渲染目标,并作为默认输出。

对于简单的 VN 应用来说,可能并不需要额外的渲染目标,这个章节的主要功能是帮助创作者了解渲染目标的用途,并了解 ShxNovel 注册场景(以及其他对象)的基本语法。

但如果您需要更复杂的演出,请在未来参考 渲染管线,在其中利用场景来构建更复杂的演出。

@TODO