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.
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
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
| Setting | Supported | Notes |
|---|---|---|
| Layer Mask | ✅ Yes | |
| Render Queue Type | ✅ Yes | Opaque and Transparent supported |
| LightMode Tags | ✅ Yes |
Overrides
| Setting | Supported | Notes |
|---|---|---|
| Override Material | ✅ Yes | Index Pass can work differently |
| Override Shader | ✅ Yes | Index 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:

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 Objectsand make sure that option works well in your build.
Additional Resources
- URP Render Features Overview - Learn about other Render Features
- URP Features - General URP support information
- Optimization Guide - Tips for optimizing playables
- Unity's Official URP Documentation - External Unity documentation