Render textures

IntermediateDesignerProgrammer

With render textures, you can send a camera's view to a texture and use the texture on objects in your scene. For example, you can use this to display part of your scene on a TV screen in the same scene, such as security camera footage.

For API details, see Textures and render textures.

1. Create an extra camera slot

Camera slots link the graphics compositor to the cameras in your scene. You need to add a camera slot for a new camera to use. For more information about camera slots, see Camera slots.

  • In the Asset View (in the bottom pane by default), double-click the Graphics Compositor asset.

Graphics Compositor asset

The graphics compositor editor opens.

Graphics Compositor editor

  • On the left, under Camera slots, click Green plus button (Add).

Camera slots

Game Studio adds a new camera slot.

Tip

To rename a camera slot, double-click it in the list and type a new name.Name a camera slot

2. Create a camera and bind it to the slot

  • In your scene, add a camera component to the entity you want to be your camera.

Add camera component

  • Position the entity so the camera captures the area of the scene you want to render to a texture.

  • In the entity Property Grid, enable the Camera component using the checkbox.

Enable camera component

  • in the Camera component properties, under Slot, select the slot you created in the previous step.

Select camera slot

3. Create a render target texture

In the Asset View, click Add asset and select Texture > Render target.

Add render target

Game Studio adds a render target texture to your project assets.

Render texture

4. Place the render target texture in the scene

There are various ways you can use the render target texture.

Example 1: Use the render target texture in a material

  • In the material properties, under Shading, next to Diffuse map, click Blue arrow button (Replace) and select Texture.

Select texture

  • Click Hand icon (Select an asset).

  • Select the Render texture asset and click OK.

Select render frame

Example 2: Use the render target texture in a sprite component

  • Create an entity and position it where you want to display the texture.

  • With the entity selected, in the Property Grid, click Add component and add a sprite component.

Add sprite component

  • In the sprite component properties, next to Source, click Blue arrow button (Replace) and select Texture.

Select sprite source

  • Click Hand icon (Select an asset).

    The Select an asset window opens.

  • Select the Render texture asset and click OK.

Select render frame

  • If you don't want the texture to be semi-transparent, under the Source properties, clear the Is transparent checkbox.

Clear-is-transparent

5. Set up the graphics compositor

To display a render texture in your scene, you need at least two renderers:

  • one to render your main camera
  • one to render the second camera to the render textureThis page describes the simplest way to do this from scratch, using two cameras and two renderers. Depending on your pipeline, you might need to create a different setup.
Warning

These instructions involve deleting your existing renderers for the game entry point. You might want to make a backup of your project in case you want to restore your pipeline afterwards.

  • In the graphics compositor editor, select the Entry points node.

Entry points node

  • In the Property Grid on the right, next to Game renderer, click Blue arrow button (Replace) and select None to delete your existing renderers.

Cleared game renderers

  • Click Blue arrow button (Replace) and select Scene renderer collection.

Select scene renderer collection

This lets you set multiple renderers for the game entry point.

1. Render the main camera

  • Under Game renderer, next to Children, click Green plus button (Add) and select Camera renderer.

Select camera renderer

  • Next to Camera, click Blue arrow button (Replace) and select your main game camera.

Select main camera

  • Next to Child, select the renderer for your main game camera (eg the forward renderer).

Select forward render

2. Render the texture

  • Under Game renderer, next to Add to Children, click Green plus button (Add) and select Camera renderer.

Select camera renderer

Game Studio adds a camera renderer to the list of children.

Second camera renderer

  • Expand the second camera renderer.

Expand second renderer

  • Next to Camera, click Blue arrow button (Replace) and select the camera you want to render to a texture.

Select texture camera

  • Next to Child, click Blue arrow button (Replace) and select RenderTextureSceneRenderer.

Select render texture scene renderer

  • Under the RenderTextureSceneRenderer, next to Child, click Blue arrow button (Replace) and select the renderer for your main game camera (eg the forward renderer).

Select forward renderer

  • Next to Render texture, click Hand icon (Select an asset).

    The Select an asset window opens.

  • Select the render texture and click OK.

Select render texture

Game Studio adds the render texture to the renderer.

Render texture added

Your game is now ready to render the camera to the texture in the scene.

Set a render mask

You can use the render mask to filter which groups are rendered in the render texture.

Next to Render mask, click Change values and select the render groups you want the camera to render.

Render mask

For more information, see Render groups and masks.

Sample

For an example of rendering to a texture in a project, see the Animation sample included with Xenko.

See also