渲染纹理
中级 设计 程序员
通过渲染纹理(Render textures),你可以将摄像机的视图输出到纹理,并在场景中的物体上使用该纹理。例如,你可以用它在同一场景中的电视屏幕上显示场景的某个部分,比如监控摄像头画面。
API 详情请参阅纹理与渲染纹理。
1. 创建额外的摄像机插槽
摄像机插槽(camera slots)将图形合成器与场景中的摄像机关联起来。要使用新的摄像机,你需要为其添加一个摄像机插槽。有关摄像机插槽的更多信息,请参阅摄像机插槽。
在 Asset View(默认位于底部窗格)中,双击 Graphics Compositor 资产。

图形合成器编辑器随之打开。

在左侧 Camera slots 下方,点击
(Add)。
Game Studio 会添加一个新的摄像机插槽。
Tip
要重命名摄像机插槽,请在列表中双击它并输入新名称。

2. 创建摄像机并绑定到插槽
在场景中,为你想作为摄像机的实体添加 camera component。

调整实体位置,使摄像机拍摄到你想渲染到纹理的场景区域。
在实体的 Property Grid 中,通过复选框启用 Camera 组件。

在 Camera 组件属性中,于 Slot 下方选择你在上一步创建的插槽。

3. 创建渲染目标纹理
在 Asset View 中,点击 Add asset,选择 Texture > Render target。

Game Studio 会向你的项目资产中添加一个 render target 纹理。

4. 将渲染目标纹理放入场景
你可以通过多种方式使用渲染目标纹理。
示例 1:在材质中使用渲染目标纹理
在材质属性中,于 Shading 下方的 Diffuse map 旁边,点击
(Replace)并选择 Texture。
点击
(Select an asset)。选择 Render texture 资产并点击 OK。

示例 2:在精灵组件中使用渲染目标纹理
创建一个实体,并将其放置在你想显示纹理的位置。
选中该实体,在 Property Grid 中点击 Add component,添加一个 sprite 组件。

在精灵组件属性中,于 Source 旁边点击
(Replace)并选择 Texture。
点击
(Select an asset)。Select an asset 窗口随之打开。
选择 Render texture 资产并点击 OK。

如果你不希望纹理是半透明的,请在 Source 属性下取消勾选 Is transparent 复选框。

5. 配置图形合成器
要在场景中显示渲染纹理,你至少需要两个渲染器:
- 一个用于渲染主摄像机
- 一个用于将第二个摄像机渲染到渲染纹理
本页介绍从零开始实现这一目标的最简单方式,即使用两台摄像机和两个渲染器。根据你的管线,你可能需要创建不同的配置。
Warning
这些说明涉及删除游戏入口点的现有渲染器。你可能需要备份项目,以便之后恢复管线。
在图形合成器编辑器中,选择 Entry points 节点。

在右侧的 Property Grid 中,于 Game renderer 旁边点击
(Replace)并选择 None,以删除现有渲染器。
点击
(Replace)并选择 Scene renderer collection。
这样你就可以为游戏入口点设置多个渲染器。
1. 渲染主摄像机
在 Game renderer 下方的 Children 旁边,点击
(Add)并选择 Camera renderer。
在 Camera 旁边,点击
(Replace)并选择你的主游戏摄像机。
在 Child 旁边,选择主游戏摄像机对应的渲染器(例如 forward renderer)。

2. 渲染纹理
在 Game renderer 下方的 Add to Children 旁边,点击
(Add)并选择 Camera renderer。
Game Studio 会向子级列表中添加一个 camera renderer。

展开第二个 camera renderer。

在 Camera 旁边,点击
(Replace)并选择你想渲染到纹理的摄像机。
在 Child 旁边,点击
(Replace)并选择 RenderTextureSceneRenderer。
在 RenderTextureSceneRenderer 下方的 Child 旁边,点击
(Replace)并选择主游戏摄像机对应的渲染器(例如 forward renderer)。
在 Render texture 旁边,点击
(Select an asset)。Select an asset 窗口随之打开。
选择渲染纹理并点击 OK。

Game Studio 会将渲染纹理添加到渲染器中。

现在你的游戏已准备好将摄像机渲染到场景中的纹理中。
设置渲染遮罩
你可以使用**渲染遮罩(render mask)**过滤渲染纹理中要渲染哪些组。
在 Render mask 旁边,点击 Change values,然后选择你想让摄像机渲染的渲染组。

更多信息请参阅渲染组与遮罩。
示例
有关在项目中渲染到纹理的示例,请参阅 Stride 自带的 Animation 示例。