Skip to main content

Render Objects Feature

The Render Objects feature is one of the most commonly used URP Render Features. It allows to override how specific objects are rendered, giving precise control over rendering order, materials, and visual appearance.

This page explains how the Render Objects feature works, what settings are supported in Unity Playworks Plugin, and provides practical examples of its usage.

note

This feature is available from Playworks Plugin version 7.1.0 and onwards

What is Render Objects?

The Render Objects feature allows to:

  • Render specific objects with custom settings
  • Override settings during rendering
  • Create effects like outlines, silhouettes, x-ray vision and etc.
  • Render objects in a separate pass with different shader or material

The feature works by creating an additional rendering pass that draws the filtered objects according to custom settings.

How Render Objects Works

The Render Objects feature depends on several key settings:

1. Object Filtering

You can filter which objects are affected using:

  • Layer Mask: Render only objects on specific layers
  • Render Queue Type: Filter by render queue (Opaque or Transparent)
  • Pass Names: Render only specific shader passes

2. Render Settings Override

You can override various rendering settings:

  • Material: Use a different material for rendering
  • Depth: Control depth testing and writing
  • Stencil: Use stencil buffer for masking effects
  • Camera: Specify camera settings
    • Positions
    • Field of view (FOV)

3. Execution Order

The Render Objects feature can be injected at different points in the rendering pipeline.

Supported render events:

  • BeforeRenderingOpaques
  • AfterRenderingOpaques
  • BeforeRenderingSkybox
  • AfterRenderingSkybox
  • BeforeRenderingTransparents
  • AfterRenderingTransparents
caution

The Unity Playworks Plugin does not support:

  • BeforeRendering
  • BeforeRenderingShadows
  • AfterRenderingShadows
  • BeforeRenderingPrePasses
  • BeforeRenderingPrepasses
  • AfterRenderingPrePasses
  • BeforeRenderingGbuffer
  • AfterRenderingGbuffer
  • BeforeRenderingDeferredLights
  • AfterRenderingDeferredLights
  • BeforeRenderingPostProcessing
  • AfterRenderingPostProcessing
  • AfterRendering

Supported Settings

The following Render Objects settings are supported in Unity Playworks Plugin:

Filters

SettingSupportedNotes
Layer Mask✅ Yes
Render Queue Type✅ YesOpaque and Transparent supported
LightMode Tags✅ Yes

Overrides

SettingSupportedNotes
Override Material✅ YesIndex Pass can work differently
Override Shader✅ YesIndex Pass can work differently
Depth✅ Yes
Stencil✅ Yes
Camera✅ Yes

Common Example of use

Example overview

Below you can see a demo example using the render objects feature:

images-medium

Click here to test the scene above in your browser.

The example is the same as provided in Unity official documentation: Example of creating a custom rendering effect via the Render Objects Renderer Feature in URP

Performance Considerations

When using Render Objects in your playables:

  • Minimize Overdraw: Rendering objects multiple times increases GPU load
  • Use Layer Masks Efficiently: Filter only the objects you need to avoid unnecessary rendering
  • Avoid Complex Override Materials: Simple shaders perform better in playables
  • Test on Target Devices: Render Features can have different performance impacts on different devices
  • Limit the Number of Features Used: Each Render Objects feature adds a render pass

Performance Tips

Do:

  • Use specific layers for Render Objects filtering
  • Keep override materials simple
  • Disable Render Features when not needed
  • Test your playable to measure impact

Don't:

  • Use Render Objects on all objects
  • Chain multiple Render Objects features unnecessarily
  • Render large numbers of objects in Render Objects

Limitations

  • Render Events: The Unity Playworks Plugin does not support all of render events provided by Unity. All supported events here
  • Override pass index: The Unity Playworks Plugin does not export all passes that are used in Unity Engine, and as a result, some indices of shader passes can be changed, so a different shader pass might be used than the one used in Unity Engine during the render process. Please check the settings of all render features Render Objects and make sure that option works well in your build.

Additional Resources