menu_bookDocumentation
RenderOptions: Game, Overlay, Bloom, AfterUI Render Layers — and Renderer.Attributes for Shader Parameters
RenderOptions: Render Layers for SceneObjects
RenderOptions controls which render layers a Renderer component's SceneObject appears in. It's exposed as a property on all Renderer subclasses.Render Layers
CSHARP
// Access via any Renderer component
renderer.RenderOptions.Game = true; // default — renders in the main game layer
renderer.RenderOptions.Overlay = false; // renders above everything else (no depth test)
renderer.RenderOptions.Bloom = false; // contributes to the bloom effect
renderer.RenderOptions.AfterUI = false; // renders after UI (e.g., crosshairs, HUD elements)Common Patterns
CSHARP
// Weapon viewmodel — render above world geometry
weaponRenderer.RenderOptions.Overlay = true;
// Glowing object — contribute to bloom
glowRenderer.RenderOptions.Bloom = true;
// Shadow-only object (invisible but casts shadows)
// Use ModelRenderer.ShadowRenderType.ShadowsOnly instead
// Render after UI (e.g., a 3D cursor)
cursorRenderer.RenderOptions.AfterUI = true;Renderer.Attributes
Renderer.Attributes provides access to the SceneObject's RenderAttributes for setting shader parameters:CSHARP
// Set a shader parameter on the renderer
renderer.Attributes.Set( "g_flGlowAmount", 1.0f );
renderer.Attributes.Set( "g_vTintColor", Color.Red );
renderer.Attributes.GrabFrameTexture( "ColorBuffer" ); // copy backbuffer to textureAttributes are not saved to disk and are not cloned. They persist as long as the SceneObject exists.
ExecuteBefore / ExecuteAfter
CSHARP
// Execute a CommandList immediately before/after this object renders
renderer.ExecuteBefore = myCommandList;
renderer.ExecuteAfter = myCommandList;These are executed on the render thread, not the main thread.
Was this helpful?